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

第十一週程式設計總結

 
7-1 列印九九口訣表 (15 分)

下面是一個完整的下三角九九口訣表:

1*1=1   

1*2=2   2*2=4   

1*3=3   2*3=6   3*3=9   

1*4=4   2*4=8   3*4=12  4*4=16  

1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  

1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  

1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  

1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  

1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  

本題要求對任意給定的一位正整數N,輸出從1*1N*N的部分口訣表

1).實驗程式碼

#include<stdio.h>

 

int main()

{

  int N,i,k,j;

  scanf("%d",&N);

  for(i=1;i<=N;i++){

    for(k=1;k<=i;k++){

    

      printf("%d*%d=%-4d",k,i,i*k);

      

    }

    printf("\n");

  }

  return 0;

}

2). 設計思路

第一步:定義變數

第二步:輸入變數

第三步:呼叫for語句,判斷行列的變數

第四步:列印乘法表

 

3).本題除錯過程碰到的問題及解決方法        

 

        問題:沒有注意等號右邊數字佔數與對齊方向

       解決方法:將%d更改為%-d

 

       4).執行結果截圖

  

      

 

7-2 換硬幣 (20 分)

將一筆零錢換成5分、2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?

1)實驗程式碼

#include<stdio.h>

int main()

{

  int n,k,j,m,count=0,i;

  scanf("%d",&n);

  

  for(i=n/5;i>0;i--){

   for(j=n/2;j>0;j--){

   for(k=n;k>0;k--){

   if(i*5+j*2+k==n){

  

   printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",i,j,k,i+j+k);

   count++;

  }

  }

  }

  }

 printf("count = %d",count);

    

  

 

  return 0;

}

 

2).設計思路

第一步:定義變數

第二步:輸入變數

第三步:呼叫for語句進行考慮5分、2分、1分的換法

第四步:判斷所換得金額是否與輸入的原金額相同

第五步:輸出答案

3) .本題除錯過程碰到的問題及解決方法                          

 

          問題:換法考慮不全

          解決方法:進行多維思考

       4).執行結果截圖

 

7-3 找完數 (20 分)

所謂完數就是該數恰好等於除自身外的因子之和。例如:6=1+2+3,其中1、2、3為6的因子。本題要求編寫程式,找出任意兩正整數mn之間的所有完數。

1).實驗程式碼

#include<stdio.h>

int main()

{

  int n,m,sum=0,j,i,num=0;

  scanf("%d %d",&m,&n);

  if(1<m<=n<=10000){

    

    for(i=m;i<=n;i++){

      

      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).設計思路

第一步:定義變數

第二步:輸入變數

第三步:呼叫if語句,判斷輸入的的變數是否滿足題目要求

第四步:呼叫for語句尋找因子

第五步:判斷因子的和是否與原數相等

第六步:輸出答案

3).本題除錯過程碰到的問題及解決方法

 

問題:沒有考慮題目要求輸入的值的範圍

解決方法:呼叫if語句判斷輸入的值是否滿足題目要求

4).執行結果截圖