程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-C語言程序問題,關於驗證碼編程的。

c語言-C語言程序問題,關於驗證碼編程的。

編輯:編程解疑
C語言程序問題,關於驗證碼編程的。

程序思路:程序用一個函數來將兩個隨機數相加(因為一個隨機數變化不大,所以就用兩個隨機數相加)後打印出來,然後讓用戶輸入數字,比較這兩個數字,相等就提示正確! 不想等就重新輸入,當驗證碼錯誤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就忘記清除了?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved