iT邦幫忙

0

題目的敘述不太了解、不知道錯在哪QAQ

  • 分享至 

  • xImage

我知道我邏輯怪怪的,因為非本科,想自學
問題:
https://ithelp.ithome.com.tw/upload/images/20221011/20153731HWownF5vz4.png
我寫這樣,但不知為何印出不只2個數字
https://ithelp.ithome.com.tw/upload/images/20221011/20153731xZ4MiYc5sc.png

更:m沒改到,原本是c

柳丁柚 iT邦新手 1 級 ‧ 2022-10-11 15:41:25 檢舉
同一篇回覆就好 不要加蓋
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
tryit
iT邦研究生 4 級 ‧ 2022-10-11 17:59:56

注意這次有兩個輸入,因此必須有兩個輸入欄位
程式內容可以參考我上次所寫給你的東西進行修改。
重點如下:

  1. -99999結束(輸入第一個數字時)
  2. 第二次輸入必小於等於第一次輸入的數字(可以不用判斷誰大誰小)
  3. 最大的13倍數(因此從最大數慢慢找下來)
int a;
int b;
scanf("%d",&a);//第一次輸入
while (a != -99999){
    scanf("%d",&b);//第二次輸入 && 重新讓使用者輸入
    while (a%13){//判斷是否13倍數
        a--;//不是的話會有餘數,所以a減1
        if (a<b){//當a減少到不在範圍內了
            a=-1;
            break;
        }
    }
    printf("%d\n",a);//輸出結果
    scanf("%d",&a);//重新讓使用者輸入
}

而你出錯的地方有以下幾點,你在寫的時候要去找尋題目裡面的重點並去比對有沒有寫到:

  1. 沒有二次輸入(要注意放置的位置)
  2. 沒有從最大值往下比對的過程(迭代)
  3. 沒有非13倍數時所該處理狀況

個人認為你練習的題目超過你目前所學程度了,建議將前面章節看熟再往下練習

我要發表回答

立即登入回答