第八週程式設計總結--助教
阿新 • • 發佈:2018-11-12
題目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)執行結果截圖
(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)執行結果截圖