回覆列表
  • 1 # 使用者6369109692826

    不對的原因,主要是if條件語句應該是用“==”而不是“=”,這是判斷,不是賦值。其它的錯誤,scanf_s("%d",&a)改成scanf("%d",&a),printf用錯了,printf列印應該是一個佔位符對應一個要輸出的內容,就是你程式碼中%d對應一個輸出。

    修改後的程式碼:

    #include<stdio.h>

    int main()

    {

    int a, b, c, d, e, f, w;

    printf("輸入一個不多於五位的整數:");

    scanf("%d",&a);

    //第一問,求出它是幾位數

    b = 10000 - a;

    c = 1000 - a;

    d = 100 - a;

    e = 10 - a;

    f = 0 - a;

    while (a < 0 || a > 99999)

    printf("輸入錯誤,請重新輸入\n");

    if (b < 0)

    {

    printf("a是五位數\n");

    w = 5;

    }else if (c < 0){

    printf("a是四位數\n");

    w = 4;

    }else if (d < 0){

    printf("a是三位數\n");

    w = 3;

    }else if (e < 0){

    printf("a是兩位數\n");

    w = 2;

    }else if (f < 0){

    printf("a是個位數\n");

    w = 1;

    }else

    printf("輸入錯誤,請重新輸入\n");

    //第二問,分別輸出每一位數字

    if (w == 5)

    printf("%d %d %d %d %d\n", a / 10000, a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);

    if (w == 4)

    printf("%d %d %d %d\n", a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);

    if (w == 3)

    printf("%d %d %d\n", a / 100 % 10, a / 10 % 10, a % 10);

    if (w == 2)

    printf("%d %d\n", a / 10 % 10, a % 10);

    if (w == 1)

    printf("%d\n", a % 10);

    //第三問,按逆序輸出各位數字

    if (w == 5)

    printf("%d %d %d %d %d\n", a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10, a / 10000);

    if (w == 4)

    printf("%d %d %d %d\n", a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10);

    if (w == 3)

    printf("%d %d %d\n", a % 10, a / 10 % 10, a / 100 % 10);

    if (w == 2)

    printf("%d %d\n", a % 10, a / 10 % 10);

    if (w == 1)

    printf("%d\n", a % 10);

    }

    修正後的程式碼執行如下:

  • 中秋節和大豐收的關聯?
  • 關於保護生態環境的資料?