/*输入一个整数 x,计算并输出下列分段函数 sign(x) 的值*/
#include<stdio.h> int main(void) { int x,y; //定义整型变量x和y
printf("Enter x: "); scanf_s("%d",&x); if(x<0){ //当x小于0时,y=-1
y = -1; } else if(x==0){ //x等于0时,y=0
y=0; } else{ //x大于0时,y=1
y=1; } printf("y=%d ",y); return 0; }
2.输入一个正整数 n,再输入 n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。
/* 输入一个正整数 n,再输入 n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数 */ #include<stdio.h> int main(void) { int count,i,num; /* count表示及格同学人数,num表示输入的个数 */ double grade,total; /* grade表示成绩,total表示总成绩 */ num=0; //令初始值都为0
total=0; count=0; printf("Enter grade: "); scanf_s("%Lf",&grade); while(grade>=0){ total=total+grade; //将成绩累和
num++; if(grade>=60) //成绩大于等于60,即及格的人数加一
count++; scanf_s("%Lf",&grade); } if(num!=0){ //如果个数不等于0即输出结果
printf("Grade average is %.2f ",total/num); printf("The number of 及格的人 is %d ",count); } else //否则,输出平均成绩为0
printf("Grade average is 0 "); return 0; }
3.输入 15 个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数
/* 输入 15 个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数 */
#include<stdio.h> int main(void) { int blank,digit,other,letter; //定义整型变量blank=空格,数字=digit,other=其他,letter=字母
char ch; //定义字符型变量
int i; blank=digit=other=letter=0; printf("Enter 15 个字符:"); for(i=1;i<=15;i++){ ch=getchar( ); //从键盘输入字符
if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')) //分别统计字母等个数
letter++; else if(ch>='0'&&ch<='9') digit++; else if(ch>=' '&&ch<=' ') blank++; else other++; } printf("blank=%d,digit=%d,letter=%d,other=%d ",blank,digit,letter,other); //输出结果
return 0; }
4.循环输入多个年份 year,判断该年是否为闰年。判断闰年的条件是:能被 4 整除但不能被100 整除,或者能被 400 整除。输入-1退出程序执行
/* 循环输入多个年份 year,判断该年是否为闰年 */
#include<stdio.h> int main(void) { int i,year,n; printf("请输入n"); scanf_s("%d",&n); printf("Input -1 to quit:"); scanf_s("%d", &year); if( year==-1 ) //输入-1退出程序
return -1; for(i=1;i<=n;i++){ printf("请输入年份:"); scanf_s("%d",&year); if((year%4==0&&year%100!=0)||(year%400==0)){ //若能被4整除但不能被100 整除,或者能被400整除
printf("恭喜你!!这一年是闰年! "); } else{ printf("Oh NO!这一年不是闰年!! "); } } return 0; }
5.输入五级制成绩(A-E),输出相应的百分制成绩(0-100)区间,要求使用 switch语句。例如,输入 A,输出 90-100。五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和 E(0-59)。
/* 输入五级制成绩(A-E),输出相应的百分制成绩(0-100)区间 */
#include <stdio.h> int main(void) { char ch; //定义字符型变量
printf("输入成绩:"); ch=getchar(); //从键盘输入字母
switch(ch){ case 'A': //设置字母所对应的分数
printf("90-100 "); break; case 'B': printf("80-89 "); break; case 'C': printf("70-79 "); break; case 'D': printf("60-69 "); break; case 'E': printf("0-59 "); break; default: printf("Invalid input "); break; } return 0; }
6.查询水果的单价。有 4 种水果,苹果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),单价分别是 3.00 元/公斤,2.50 元/公斤,4.10 元/公斤和 10.20 元/公斤。在屏幕上显示以下菜单(编号和选项),用户可以连续查询水果的单价,当查询次数超过 5 次时,自动退出查询;不到 5 次时,用户可以选择退出。当用户输入编号 1~4,显示相应水果的单价(保留两位小数);输入 0,退出查询;输入其他编号,显示价格为 0。
/* 查询水果的单价 */
#include<stdio.h> int main(void) { int choice,i; double price; for(i=1;i<=5;i++){ //for的循环语句开始
printf("[1]select apples "); //查询苹果的价格
printf("[2]select pears "); printf("[3]select oranges "); printf("[4]select grapes "); printf("[0]select Exit "); printf("Enter choice:"); scanf_s("%d",&choice); //接受用户输入的编号
if(choice==0) break; //此处用break跳出for循环
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=%0.2f ",price); } printf("Thanks "); return 0; }
---------------------------------------------------------作业分割线---------------------------------------
本次作业出现的问题还是老问题,总忘记=和==的区别,直接将x赋值,导致程序中输出结果一直是0,
以及打程序时,不仔细本来输入整型变量,最终结果用浮点型变量输出,导致程序运行错误;