Это моя реализация алгоритма LUHN В моем коде для ввода я хочу создать массив значений, длина которых может варьироваться в зависимости от пользовательского ввода. ниже - это то, что я пытался, но, похоже, не работает ... также, если мне нужно использовать функцию malloc, как я могу ее использовать? кроме того, что все работает нормально, также предлагайте некоторые оптимизации, которые могут быть сделаны.Как создать массив с неопределенным размером?
#include<stdio.h>
int main()
{ char a[100];
int sum=0,c=0,i;
printf("enter the card you use\n");
scanf("%16s",&a[i]);
for(int m=0;a[m]!='\0';m++){
c++;
}
for(int j=0;j<c;j++){
int k,l;
if(j%2==0){
k=a[j]%10;
l=a[j]/10;
a[j]=k+l;
sum=sum + a[j];
}
else{
sum = sum + 2*a[j];
}
}
if(sum % 10 ==0 && c==13)
printf("VISA\n");
else if(sum % 10==0 && c==16)
printf("MASTERCARD\n");
else if(sum % 10==0 && c==15)
printf("AMERICAN EXPRESSWAY\n");
else
printf("INVALID\n");
return 0;
}
использовать указатели, поиск таНоса. – Andromeda
http://en.wikipedia.org/wiki/C_dynamic_memory_allocation – someuser
определить массив после того, как пользователь вводит размер массива или выделяет массив, используя malloc/calloc. –