作业三应用分支与循环结构
//
1.输入一个整数 x,计算并输出下列分段函数 sign(x) 的值
#include<stdio.h> int main() { int x,y; printf("enter x:"); scanf("%d",&x); if(x<0){ printf("y=-1\n"); } else if(x>0){ printf("y=1\n"); } else{ printf("y=0\n"); } return 0; }
//输入一个正整数 n,再输入 n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数
#include<stdio.h> int main() { int n,m,i; double x,s; printf("enter n:"); scanf("%d",&n); m=0; s=0; for(i=1;i<=n;i++){ printf("enter x:"); scanf("%lf",&x); if(x>=60){ m=m+1; } s=s+x; } s=s/n; printf("%.2f\n",s); printf("%d\n",m); return 0; }
//输入 15 个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数
#include<stdio.h> int main() { int a,b,c,d,i; char ch; a=b=c=d=0; printf("enter 15 characters:"); ch=getchar(); for(i=1;i<=15;i++){ if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) a++; else if(ch>='0'&&ch<='9') b++; else if(ch==' '||ch=='\n') c++; else d++; } printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d); return 0; }
//循环输入多个年份 year,判断该年是否为闰年。判断闰年的条件是:能被 4 整除但不能被100 整除,或者能被 400 整除。输入-1退出程序执行
#include<stdio.h> int main() { int year,i,n; double x,y,z; printf("enter n:"); scanf("%d",&n); for(i=1;i<=n;i++){ printf("enter year:"); scanf("%d",&year); if(year==-1) break; x=year%4; y=year%100; z=year%400; if((x==0&&y!=0)||(z==0)) printf("这是闰年\n"); else printf("这不是闰年\n"); } return 0; }
//.输入五级制成绩(A-E),输出相应的百分制成绩(0-100)区间,要求使用 switch语句。例如,输入 A,输出 90-100。五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和 E(0-59)。
#include<stdio.h> int main() { char op; printf("输入等级:"); op=getchar(); switch(op){ case'a':printf("成绩对应90——100\n");break; case'b':printf("成绩对应80——89\n");break; case'c':printf("成绩对应70——79\n");break; case'd':printf("成绩对应60——69\n");break; case'e':printf("成绩对应0——59");break; } return 0; }
//
6.查询水果的单价。有 4 种水果,苹果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),单价分别是 3.00 元/公斤,2.50 元/公斤,4.10 元/公斤和 10.20 元/公斤。在屏幕上显示以下菜单(编号和选项),用户可以连续查询水果的单价,当查询次数超过 5 次时,自动退出查询;不到 5 次时,用户可以选择退出。当用户输入编号 1~4,显示相应水果的单价(保留两位小数);输入 0,退出查询;输入其他编号,显示价格为 0。 [1] apples [2] pears [3] oranges [4] grapes [0] Exit
#include<stdio.h> int main() { int choice,i; double price; for(i=1;i<=5;i++){ printf("[1]select apples\n"); printf("[2]select pears\n"); printf("[3]select oranges\n"); printf("[4]select grapes\n"); printf("[0]exit\n"); printf("enter choice:"); scanf("%d",&choice); if(choice==0) break; switch(choice){ case 1:price=3.00;break; case 2:price=2.50;break; case 3:price=4.10;break; case 4:price=10.20;break; default:price=0.00;break; } printf("price=%.2f\n",price); } printf("thanks\n"); return 0; }
在这次作业中,要自己编程序。虽然没有上次作业多,但也费了我好大力气。第一个看起来挺简单,但我刚写完还是执行不对,改了好几次,不是这儿错就是那儿错。少了逗号,少了空格。第二个主要是写程序之前没有理清思路,所以就写的乱七八糟。第三个不会写回车,纠结了好长时间。第四个不知道插入-1跳出程序要怎么弄。第五个不熟悉switch语句,输入字符时有想了好半天。第六个和书上的例题很像,所以就还好。解决这些问题,有自己的反思,有问别人,也有上百度搜。显然自己并没有理解C语言的一些基本概念和应用。虽然完成的乱七八糟,但感觉对C语言的认识又加深了,收获还是蛮多的。