I even tried to use long int in place of int but then the compiler takes too much time to execute and still doesn't give any output.
I'm using CS50's IDE.
Here's my code that's causing the problem:
int sum_alt = 0;
int sum_rest = 0;
int total = 0;
for(int i = 1; i < count; i=+2)
{
int temp = number[i] * 2;
sum_alt = sum_alt + temp;
}
for(int i = 0; i <= count; i=+2)
{
int temp = number[i];
sum_rest = sum_rest + temp;
}
total = sum_rest + sum_alt;
How to resolve this problem?
Here's the full code:
#include <stdio.h>
#include <cs50.h>
int main(void)
{
long long Cardnumber;
//Typos correction + User input
do
{
Cardnumber = get_long_long("Number: ");
}
while(Cardnumber < 0);
int count = 0;
long long counter = Cardnumber;
//To count the number of digits
while(counter != 0)
{
counter = counter / 10;
count++;
}
//Declaring an array for cardnumber
printf("%i", count);
int number[count];
if((count != 13) && (count != 15) && (count != 16))
{
printf("INVALID\n");
}
for(int access = 0; access < count; access++)
{
number[access] = Cardnumber % 10;
Cardnumber = Cardnumber / 10;
}
int originalnumber[count];
for(int i = 0; i < count; i++)
{
originalnumber[i] = number[i];
}
long long int sum_alt = 0;
long long int sum_rest = 0;
long long int total = 0;
for(int i = 1; i < count; i=+2)
{
int temp = number[i] * 2;
sum_alt = sum_alt + temp;
}
for(int i = 0; i < count; i=+2)
{
int temp = number[i];
sum_rest = sum_rest + temp;
}
total = sum_rest + sum_alt;
if(total % 10 == 0)
{
if(((count == 13) || (count == 16)))
{
if((originalnumber[12] == 4) || originalnumber[15] == 4)
{
printf("VISA\n");
}
else if(originalnumber[15]== 5)
{
if(originalnumber[14] == 1 || originalnumber[14]== 2 || originalnumber[14] == 3 || originalnumber[14] == 4 || originalnumber[14] == 5)
{
printf("MASTERCARD\n");
}
}
else
{
printf("INVALID\n");
}
}
else if (count == 15)
{
if(originalnumber[15] == 3)
{
if(originalnumber[15] == 4 || originalnumber[15] == 7)
{
printf("AMERICAN EXPRESS\n");
}
else
{
printf("INVALID\n");
}
}
else
{
printf("INVALID\n");
}
}
}
else
{
printf("INVALID\n");
}
}
PS. I don't get the reason why CS50's IDE is taking so much time for computation.