-1
signed long long int
を使用して、ユーザーが入力した桁数をカウントしています。正しいIDとピンが入力されたときに、IDとピンが正しくない場合、プログラムは繰り返し入力を要求し、「正常にログイン」を表示する必要があります。しかし、正しいIDとピンを入力すると、プログラムは入力を何度も繰り返し要求し続けます。私のコードで間違ったことは?ヘルプは非常に感謝しています。ここでcでのログイン確認
#include <stdio.h>
int main()
{
long long n = 1234567,m = 123456;
int count = 0, count2 = 0, c, a;
do
{
printf("Enter student ID: ");
scanf("%lli", &n);
while (n != 0)
{
n /= 10;
++count;
}
if (count < 7 || count > 8)
printf("The Student ID should be in 7 or 8 digits, please try again\n");
} while(n != 1234567);
do
{
printf("Enter security pin: ");
scanf("%lli", &m);
{
c = a;
a++;
}
while (m != 0)
{
m /= 10;
++count2;
}
if (count2 < 6 || count2 > 6)
printf("Please enter a 6-digit pin\n");
if (a == 5)
{
printf("\nAccess Denied\n");
}
} while (m != 123456);
if (n == 1234567 && m == 123456)
printf("Successfully Login\n");
else
printf("Wrong password, try again\n");
return 0;
}
デバッガでステップインしてください –
IDとPINは、おそらくintsではなく数字の文字列として入力する方がよいでしょう。 –
あなたはwhileループで 'n'の値を破壊しています。 1234567と決して等しくはありませんが、常にゼロに等しくなります –