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

第八週程式設計總結--助教

題目1 混合型別資料格式化輸入
(1)實驗程式碼
#include<stdio.h>
int main (void)
{
 int b;
 double a, d;
 char c;
 
 scanf("%lf %d %c %lf", &a, &b, &c, &d);
 printf("%c %d %.2f %.2f", c, b, a, d);
 }
(2)設計思路
第一步:定義變數和字元
第二步:輸入浮點型,字元,整數
第三步:調整位置
第四步:輸出
(3)本題除錯過程碰到問題及解決辦法
問題不大,就是要注意順序
(4)執行結果截圖

題目2 計算符號函式的值
(1)實驗程式碼
#include<stdio.h>
int main ()
{
 int n;
 
 scanf("%d", &n);
 if (n>0)
 printf("sign(%d) = 1",n);
 
 else if (n<0)
 printf("sign(%d) = -1",n);
 
 else
 printf("sign(%d) = 0",n);
 
 return 0;
}
(2)設計思路
第一步:定義變數
第二步:輸入變數n
第三步:用三個if語句判斷
第四步:輸出
(3)本題除錯過程碰到問題及解決辦法
沒什麼問題。
(4)執行結果截圖

題目3 計算個人所得稅
(1)實驗程式碼
#include<stdio.h>
int main ()
{
 int money;
 double sum;
 
 scanf("%d",&money);
 sum = money - 1600;
 
 if (money==0)
 printf("0.00");
 
 else if(money<1600&&money>0)
 printf("0.00");
 
 else if (money>1600&&money<=2500)
 printf("%.2f",sum*0.05);
 
 else if (money>2500&&money<=3500)
 printf("%.2f",sum*0.1);
 
 else if (money>3500&&money<=4500)
 printf("%.2f",sum*0.15);
 
 else
 printf("%.2f",sum*0.2);
 return 0;
}
(2)設計思路
第一步:定義變數
第二步:輸入變數
第三步:計算後判斷
第四步:輸出結果
(3)本題除錯過程碰到問題及解決辦法
注意的是當money為0的時候輸出的結果需要注意
(4)執行結果截圖

題目4 比較大小
(1)實驗程式碼
#include<stdio.h>
int main(void)
{  int a,b,c,t;  scanf("%d %d %d",&a,&b,&c);  if(a<b){
  t=b;b=a;a=t;
 }  if(a<c){
  t=c;c=a;a=t;
 }
 if(b<c){
  t=c;c=b;b=t;
 }
 printf("%d->%d->%d",c,b,a);  return 0;
}
(2)設計思路
第一步:定義變數
第二步:輸入三個數,分別賦值
第三步:用三個if語句判斷
第四步:輸出結果
(3)本題除錯過程碰到問題及解決辦法
總是部分正確,看測試點不斷地除錯最後正確
(4)執行結果截圖
題目5 到底是不是太胖了
(1)實驗程式碼
#include<stdio.h>
#include<math.h>
int main()
{
    int n;
    double h1,w1,w2,x;
    scanf("%d",&n);
    while(n--){
        scanf("%lf%lf",&h1,&w1);
        w2 = (h1 - 100)*0.9 * 2;
        x = fabs(w2 - w1);
        if(w1 >= w2){
            if(x < w2*0.1)
                printf("You are wan mei!\n");
            else
                printf("You are tai pang le!\n");
        }
        else{
            if(x < w2*0.1)
                printf("You are wan mei!\n");
            else
                printf("You are tai shou le!\n");
        }
    }
    return 0;
}
(2)設計思路
第一步:定義變數身高和體重
第二步:輸入身高體重
第三步:計算並判斷
第四步:輸出結果
(3)本題除錯過程碰到問題及解決辦法
沒問題,一次通過
(4)執行結果截圖
題目6 高速公路超速處罰
(1)實驗程式碼
#include<stdio.h>
int main ()
{
 double a,b,x;
 
 scanf("%lf %lf",&a,&b);
 
 x = (a-b) / b;
 
 if(x<0.1)
 printf("OK");
 
 if(x>=0.1&&x<0.5)
 printf("Exceed %.0f%%. Ticket 200",100*x);
 
 if(x>=0.5)
 printf("Exceed %.0f%%. License Revoked",100*x);
 
 return 0;
}
(2)設計思路
第一步:定義變數
第二步:輸入並計算
第三步:用if語句判斷
第四步:輸出結果
(3)本題除錯過程碰到問題及解決辦法
錯在輸出的格式忘記打空格,導致錯誤
(4)執行結果截圖
題目7 統計字元
(1)實驗程式碼
#include<stdio.h>
int main ()
{
 int i, letter, blank, digit, other;
 char a;
 
 letter = blank = digit = other = 0;
 
 for(i=1;i<=10;i++)
 {
  a = getchar();
  
  if(a>='a'&&a<='z'||a>='A'&&a<='Z')
  letter++;
  else if(a=='\n'||a==' ')
  blank++;
  else if(a>='0'&&a<='9')
  digit++;
  else
  other++;
 }
 printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
 
 return 0;
 }
(2)設計思路
第一步:定義變數,賦初值為0
第二步:運用for迴圈
第三步:每輸入用if判斷再自增1
第四步:輸出結果
(3)本題除錯過程碰到問題及解決辦法
之前在書上看到過這一題,做起來沒什麼問題
(4)執行結果截圖
題目8 統計學生平均成績與及格人數
(1)實驗程式碼
#include<stdio.h>
int main (void)
{
  int count,i,n;
  double grade,total;
 
  scanf("%d",&n);
  count=0;
  total=0;
  if(n==0){
    printf("average = 0.0\n");
    printf("count = 0");
  }
  if(n!=0) {
  for(i=1;i<=n;i++) {
    scanf("%lf",&grade);
    total=total+grade;
    if(grade>=60){
      count++;
    }
  }   printf ("average = %.1f\n",total/n);
  printf("count = %d",count);
}
  return 0;
}
(2)設計思路
第一步:定義變數賦初值
第二步:輸入n,如果n為0的時候輸出
第三步:不為0用for迴圈
第四步:輸出結果
(3)本題除錯過程碰到問題及解決辦法
n為0的時候沒有注意到,之後加了一個if-else語句
(4)執行結果截圖
題目9 輸出閏年
(1)實驗程式碼
#include<stdio.h>
int main(void)
{  int year, i;  scanf("%d", &year);  if(year < 2001 || year > 2100)   printf("Invalid year!\n");  else {   for(i = 2001; i <= year; ++i) {   if((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0))   printf("%d\n", i);   }
  if(year<2004)
  printf("None");
 }  return 0; }
(2)設計思路
第一步:定義變數
第二步:輸入年並判斷是不是21世紀的,不是輸出
第三步:是的用for迴圈,並用if語句找出閏年
第四步:輸出結果
(3)本題除錯過程碰到問題及解決辦法
之前把21世紀看成20世紀了,錯了一次
還有就是年份小於2004年時的結果,忽略了
(4)執行結果截圖