1. 程式人生 > >第十一週程式設計總結--助教

第十一週程式設計總結--助教

題目1 列印九九口訣表
(1)實驗程式碼
#include<stdio.h>
int main ()
{
 int i, j, n;
 
 scanf("%d", &n);
 
 for(i = 1;i<=n;i++)
 {
  for(j = 1;j<=i;j++)
  {
   if(i *j>=10)
   printf("%d*%d=%d  ", j, i, i*j);
   else
   printf("%d*%d=%d   ", j, i, i*j);
  }
  printf("\n");
 }
 return 0;
 }
(2)設計思路
第一步:定義需要輸入的變數為n,輸入n的值
第二步:運用for迴圈,第一個for代表著需要的行數
第三步:第二個for輸出計算式,而 if 語句的作用在於格式問題(大於十的時候數字會多一位)
第四步:打印表格
(3)本題除錯過程碰到問題及解決辦法
問題就是格式問題,其他沒什麼
(4)執行結果截圖

題目2 換硬幣
(1)實驗程式碼
#include<stdio.h>
int main ()
{
 int n, fen5, fen2, fen1, total;
 int count = 0;
 
 scanf("%d", &n);
 
 for(fen5 = 19;fen5 >=1;fen5--)
 {
  for(fen2 = 49;fen2 >=1;fen2--)
  {
   for(fen1 = 99;fen1 >=1;fen1--)
   if(fen1+fen2*2+fen5*5==n)
   {
    total = fen5 + fen2 + fen1;
    printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", fen5, fen2, fen1, total);
    count++;
   }
  }
 }
 printf("count = %d", count);
 
 return 0;
}
(2)設計思路
第一步:定義每個硬幣需要的變數,輸入所給的零錢數額
第二步:用三個for迴圈,每次遞減一,再用一個if語句判斷是否等於所給的數額
第三步:打印出每個硬幣的數額,每迴圈一次count加一
第四步:輸出換硬幣的方法種數
(3)本題除錯過程碰到問題及解決辦法
第一個是5分硬幣是從大往小的開始輸出的,沒注意,改正迴圈條件後正確
(4)執行結果截圖

題目3 找完數
(1)實驗程式碼
#include<stdio.h>
int main()
{
 int n,m,i,j,sum,num=0;
 
 scanf("%d %d",&m,&n);  for(i=m;i<=n;i++){   if(i==1) continue;
  
  sum=1;   for(j=2;j<i;j++)    if(i%j==0) sum+=j;   if(sum==i)
  {
   printf("%d = 1",i); 
   for(j=2;j<i;j++)      if(i%j==0)      printf(" + %d",j);    printf("\n");    num++;   }
 }
 if(num==0) printf("None\n");
 
 return 0;
}
(2)設計思路
第一步:定義變數
第二步:輸入m到n的範圍
第三步:用for迴圈找完數,如果m為1需要跳過
第四步:輸出式子
(3)本題除錯過程碰到問題及解決辦法
跟整除光棍類似,問題就是一開始沒注意m=1時的情況
(4)執行結果截圖