1. 程式人生 > >第十周編程總結--助教

第十周編程總結--助教

nbsp 通過 main 第十周 輸入 數字 定義 png 忘記

題目1 求奇數和
(1)實驗代碼
#include<stdio.h>
int main ()
{
int n, sum;

scanf("%d", &n);
sum = 0;

while(n > 0)
{
if(n%2 != 0)
sum = sum + n;

scanf("%d", &n);
}
printf("%d", sum);

return 0;
}
(2)設計思路
第一步:定義變量,賦初值
第二步:運用while語句,條件為n>0
第三步:如果n%2不為0,將n的值加到sum中去
第四步:輸出sum的值
(3)本題調試過程碰到問題及解決辦法
一次性通過,無問題
(4)運行結果截圖 技術分享圖片

題目2 求整數的位數及各位數字之和
(1)實驗代碼
#include<stdio.h>
int main ()
{
int n, sum, w;

scanf("%d", &n);
w = 1;

if(n<10)
{
sum = n;
}

while(n / 10 > 0)
{
w++;
sum += n % 10;
n = n / 10;

if(n < 10)
{
sum = sum + n;
}
}
printf("%d %d", w, sum);

return 0;
}
(2)設計思路
第一步:定義變量,輸入數字n
第二步:如果n<10,sum為n,若n/10>0,用while循環判斷
第三步:每循環一次位數加一sum += n % 10;n = n / 10;
第四步:n<10時,sum加n,因為n<10時它不會加到sum中去
第五步:輸出結果
(3)本題調試過程碰到問題及解決辦法
一開始沒有思考到連續的0,改正了下計算的方式,改正後又忘記了最小的n,改正後正確。
(4)運行結果截圖 技術分享圖片

題目3 韓信點兵
(1)實驗代碼
#include <stdio.h> int main()
{
int number = 0;
while (number % 5 != 1 || number % 6 != 5 || number % 7 != 4 || number % 11 != 10)
{
number++;
}

printf("%d", number); return 0;
}
(2)設計思路
第一步:定義變量賦初值
第二步:用while語句循環計算
第三步:判斷條件為number % 5 != 1 || number % 6 != 5 || number % 7 != 4 || number % 11 != 10
第四步:輸出結果
(3)本題調試過程碰到問題及解決辦法
一開始沒看懂題目,看懂後就好做了
(4)運行結果截圖 技術分享圖片

題目4 整除光棍
方法1:
(1)實驗代碼
#include<stdio.h>
int main()
{
int n,i,x=0,flag=0; scanf("%d",&n); for(i=1;;i++)
{
x=x*10+1;
if(x>=n)
{
flag=1;
printf("%d",x/n);
}
else if(flag==1)
printf("0");

x=x%n; if(x==0)
break;
}
printf(" %d",i);

return 0;
}
(2)設計思路
第一步:定義變量,賦初值
第二步:運用for循環,無判斷條件
第三步:每次x的位數增加1,且加一。
第四步:如果x大於你輸入的數,就輸出x,令flag為1
第五步:若flag為1,輸出0(就是有些除出來得數字中間有0)
第六步:x=x%n,留下除後的余數繼續計算
第七步:最後輸出位數,也就是循環的次數
(3)本題調試過程碰到問題及解決辦法
這題一開始我就得很難,無從下手,問了老師之後運用模擬除法,不過第一次的代碼在陪她上超時,所以就修改,每除完一次輸出一個數,答案正確
(4)運行結果截圖 技術分享圖片 方法二:
#include <stdio.h>
int main()
{ int x = 0, s = 0, n = 0; // 定義除數,被除數,位數 scanf("%d", &x); while (s < x)
{
s = s * 10 + 1; // 被除數末位添1, 直到不小於被除數
++n; // 位數增1
}
while (1) // 開始進行除法運算
{
printf("%d", s / x); // 輸出商, 從最高位一直輸出到個位,因為最後一定能整除
s %= x; // 被除數更新為余數 if (s == 0) break; // 余數為0則結束 s = s * 10 + 1; // 余數末位添1
++n; // 位數增1
}
printf(" %d\n", n); return 0;
} 截圖: 技術分享圖片

第十周編程總結--助教