匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 1 0 年前

c++相關(if else ,for)

第一個問題是輸入兩個年份 兩個年份之間有幾個閏年 閏年的條件 被4整除且不被100整除或被400整除

#include<stdio.h>

void main()

{

int a,b,c,d,e;

scanf("%d%d",&a,&b);

c=a/4-a/100+a/400;

d=b/4-b/100+b/400;

if(a=b&&a%100!=0&&b%100!=0||a/400>0||b/400>0)

{

e=d-c+1;

printf("%d",e);

}

else

{

e=d-c;

printf("%d",e);

}

}

這是我寫的 可是當情況為96跟100 或196 跟200 296跟300 答案出來的都不對..有人幫忙指導我一個方向嘛

第二個問題是要判別位數 跟倒著顯示

輸入12345

要判別出5位數

並顯示出54321

上述這個問題要用for來寫..

我的想法是用10去除 看能除幾次在加上1 就是這個數字有幾位數

可是我不知道怎麼用for寫出我的想法

希望有人能指點一下= =

2 個解答

評分
  • 1 0 年前
    最佳解答

    閏年的問題我嘗試這麼解, 參考看看:

    #include <stdlib.h>

    #include <stdio.h>

    #include <time.h>

    int isLeapYear(int year)

    {

    // precondition: year > 0

    if (year % 400 == 0) {

    return 1;

    }

    else if (year % 100 == 0) {

    return 0;

    }

    else if (year % 4 == 0) {

    return 1;

    }

    else {

    return 0;

    }

    }

    int main(int argc, char *argv[])

    {

    int year1, year2;

    int count, i;

    if (argc == 3) {

    year1 = atoi(argv[1]);

    year2 = atoi(argv[2]);

    printf("您輸入的兩個年份是 %d 與 %d\n", year1, year2);

    if (year1 <= 0 || year2 <= 0) {

    printf("您輸入的年份有誤, 請重新再試.\n");

    exit(1);

    }

    }

    else {

    printf("計算兩年份間的閏年數: %s 開始年份 結束年份\n", argv[0]);

    exit(1);

    }

    count = 0;

    for (i = year1; i <= year2; i++) {

    count += isLeapYear(i);

    }

    printf("西元 %d 年至 %d 年, 共有 %d 個閏年.\n", year1, year2, count);

    return 0;

    }

    程式執行畫面:

    D:\>leapyear 1 2000

    您輸入的兩個年份是 1 與 2000

    西元 1 年至 2000 年, 共有 485 個閏年.

    D:\>leapyear 1900 2004

    您輸入的兩個年份是 1900 與 2004

    西元 1900 年至 2004 年, 共有 26 個閏年.

    ------------------------------------------------------------

    寫程式樂無窮, 請到我的部落格留言討論寫程式.

    http://tw.myblog.yahoo.com/jw!3i3FzI6WFRlKmk3YMLgp...

    ------------------------------------------------------------

  • 1 0 年前

    Q2.

    int i=12345, j;

    for(int k=1; k<6; k++)

    {

    j=i%10;

    printf("%d",j);

    i=i/10;

    }

還有問題?馬上發問,尋求解答。