第三次作業


博客鏈接:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360

問題:

7-5 奇偶分家 (10 分)

給定N個正整數,請統計奇數和偶數各有多少個?

輸入格式:

輸入第一行給出一個正整N1000);第2行給出N個正整數,以空格分隔。

輸出格式:

在一行中先后輸出奇數的個數、偶數的個數。中間以1個空格分隔。

輸入樣例:

9
88 74 101 26 15 0 34 22 77

輸出樣例:

3 6


解題思路:
1.定義變量N,i,n,a=0,b=0 輸入位數n,數字N
2.執行語句 如果是偶數求a和 否則求b和
3.輸出a,b值

實驗代碼:
#include<stdio.h>
int main(void)
{
  int N,i,n,a=0,b=0;
  scanf("%d",&n);
  for(i=0;i < n;i++){
    scanf("%d",&N);
  if(N%2 == 0){
    a++;
    }
  else{
    b++;
  }
  }
  printf("%d %d",b,a);
  return 0;
}
 

   流程圖:

 

 

   本題調試過程碰到問題及解決辦法:

1.輸入數值

2.循環到偶數

 3.循環到奇數

4.輸出數值

 

  問題2:

7-3 統計學生平均成績與及格人數 (15 分)

 

本題要求編寫程序,計算學生們的平均成績,並統計及格(成績不低於60分)的人數。題目保證輸入與輸出均在整型范圍內。

輸入格式:

輸入在第一行中給出非負整數N,即學生人數。第二行給出N個非負整數,即這N位學生的成績,其間以空格分隔。

輸出格式:

按照以下格式輸出:

average = 成績均值
count = 及格人數

其中平均值精確到小數點后一位。

輸入樣例:

5
77 54 92 73 60

輸出樣例:

average = 71.2
count = 4

解題思路:
1.定義變量i=1,n=0,grade=0,count=0,sum=0;count為及格人數,grade為成績
2.輸入人數,在輸入成績
3.通過循環算出大於60的成績,在算出平均數
4.輸出平均值和及格人數
實驗代碼:
#include<stdio.h>
int main(void)
{
  int i=0,n=0,grade=0,count=0,sum=0;
  double average=0;
  scanf("%d",&n);
  for(i=1;i<=n;i++){
    scanf("%d",&grade);
    sum=sum+grade;
    if(grade>=60){
      count++;
    }
  }
  if(n>0)
    printf("average = %.1f\n",sum*1.0/n);
  else
    printf("average = %.1f\n",sum*1.0);
  printf("count = %d",count);
  return 0;
}

   流程圖:

 

 

     本題調試過程碰到問題及解決辦法:

   1.先輸入數值

   2.通過執行語句算出平均值比輸出

   3.通過執行語句算出及格人數並輸出

 

   問題3:

 

7-1 求整數的位數及各位數字之和 (15 分)

對於給定的正整數N,求它的位數及其各位數字之和。

輸入格式:

輸入在一行中給出一個不超過10^9的正整數N。

輸出格式:

在一行中輸出N的位數及其各位數字之和,中間用一個空格隔開。

輸入樣例:

321

輸出樣例:

3 6
解題思路:
1.定義變量N,sum=0,m sum為各位數字之和,m為整數的位數
2.輸入整數N
3.執行語句,求出m,sum

實驗代碼:
#include<stdio.h>
int main(void)
{
  int N,sum=0,m; 
  scanf("%d",&N);
    if(N<0){
    N=-N;
  }
  m=0;
  for(N!=0;N;N/=10){
      m++;
      sum+=N%10;
  }  
  printf("%d %d",m,sum);
  return 0;
}

   流程圖:

 

    本題調試過程碰到問題及解決辦法:

   1.輸入數值321

    2.執行循環語句

   3.輸出位數m  和  各位數的和n 的值

   4.前面是求位數 后面求和 但是只執行do  while語句  后面輸出和為0。所以只能把兩個數用一個循環寫出來。

   總結:

  1.通過這幾周的學習,內容上增加了很多東西還有就知識的延申,比如for循環語句的運用及多個for的連用套用(這個理解起來比較難),還有學習了while語句,do-while語句,還有

     swicth case break 的語句及運用,后面還學了函數的調用

   2.在學習上我發現了自己的不足,許多學過的東西我只是停留在片面沒有,通過pta作業發現自己課下沒有鞏固,許多問題都是通過同學才能做出來;還有自己的聽課狀態需要改進,不

     能每次老師提問我都答不出來答案,聽老師說很多同學自學的速度超過了他講課的速度,這才讓我看到別人的努力,這方面我要大幅度的去改進,也不是要多好,最起碼老師講過的都

     能跟上,課后回來還要復習。

   3.通過這幾周的學習認為for的很多套用理解困難,但通過同學的講解懂得了一點,但是還是要去深入。

 

 

 
             

 

 

評論他人博客:
https://www.cnblogs.com/liuweiliuwei/p/10016885.html#4127450 劉 偉
https://www.cnblogs.com/asdfghjklasdfghjkl/p/10003892.html 孫成龍
https://www.cnblogs.com/chen0803/p/10046139.html 陳悅安

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM