程序思路:程序用一個函數來將兩個隨機數相加(因為一個隨機數變化不大,所以就用兩個隨機數相加)後打印出來,然後讓用戶輸入數字,比較這兩個數字,相等就提示正確! 不想等就重新輸入,當驗證碼錯誤3次後等待十秒,然戶重新輸入。
請大神拷回去運行一下,我運行的時候,在三次失敗等待10秒後輸入正確的驗證碼總是錯誤的,求大神幫忙看一下 附代碼。
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#include <stdlib.h>
int random_num(void);
int bi_jiao(int num1, int num2);
int main(void)
{
int countdown;
int c = 1;
int a = 3;//輸入按錯計數
int num;
int number;
while (c)
{
num = random_num();
printf("\n");
printf("請輸入上面的數字:\n");
scanf_s("%d", &number, 10);
c = bi_jiao(num, number);
if (c == 1)
{
--a;
puts("驗證碼錯誤,請重新輸入!");
printf("剩余次數%d\n", a);
_getch();
system("cls");
}
if (a == 0)
{
a = 3;
printf("請等候10秒。\n");
Sleep(1000);
for (countdown = 10; countdown > 0; countdown--)
{
system("cls");
printf("%d", countdown);
Sleep(1000);
}
}
}
system("cls");
puts("正確!");
_getch();
return 0;
}
int random_num(void)//產生隨機數
{
int num1;
int num2;
srand((unsigned)time(NULL));
num1 = rand();
num2 = rand();
printf("%d", num1 + num2);
return (num1 + num2);
}
int bi_jiao(int num, int number)//與生成的隨機數作比較
{
if (num == number)
return 0;
else
return 1;
}
為啥?應為你注意看你的
for (countdown = 10; countdown > 0; countdown--)
{
system("cls");
printf("%d", countdown);
Sleep(1000);
}
```循環,是不是顯示了1就忘記清除了?