我不知道問題出在哪裏。代碼編譯沒有任何錯誤,但運行它時,它要求我輸入一個數字,但是當我在輸入後輸入時崩潰。有誰可以告訴我問題在哪裏?我認爲存在一些內存問題,但我無法弄清楚在哪裏。提前致謝。爲什麼下面的C代碼不工作?我無法弄清楚錯誤。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int n[16];
long long a;
printf("enter your credit card number \n");
scanf(" %lld", &a);
int i;
for (i = 0; i < 15; i++)
{
n[i] = (a % (10^(15-i)))/10^(14-i);
}
int m = (n[1] + n[3] + n[5] + n[7] + n[9] + n[11] + n[13]);
int w = 2 * m;
int k = w % 10;
int l = n[0] + n[2] + n[4] + n[6] + n[8] + n[10] + n[12] + n[14];
int z = k + l;
if (z % 10 == 0)
{
printf("you card is valid");
}
else
{
printf("go get a new card");
}
return 0;
}
請不要帶有語言標籤的垃圾郵件。只添加相關標籤。 –
可能的溢出? –
至於你的問題,首先你應該在調試器中運行一個調試版本來定位崩潰發生的代碼。然後檢查涉及的變量,看看它們是否都看起來沒問題。最後編輯你的問題以包含這些細節。 –