作业 3 应用分支与循环结构解决问题

/*输入一个整数 x,计算并输出下列分段函数  sign(x)  的值*/
#include<stdio.h> int main(void) { int x,y; //定义整型变量x和y
printf(
"Enter x:\n"); 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\n",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:\n"); 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\n",total/num); printf("The number of 及格的人 is %d\n",count); } else //否则,输出平均成绩为0
printf(
"Grade average is 0\n"); 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\n",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(
"恭喜你!!这一年是闰年!\n"); } else{ printf("Oh NO!这一年不是闰年!!\n"); } } 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\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\n"); break; default: printf("Invalid input\n"); 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\n"); //查询苹果的价格
printf(
"[2]select pears\n"); printf("[3]select oranges\n"); printf("[4]select grapes\n"); printf("[0]select Exit\n"); 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\n",price); } printf("Thanks\n"); return 0; }

     

---------------------------------------------------------作业分割线---------------------------------------

本次作业出现的问题还是老问题,总忘记=和==的区别,直接将x赋值,导致程序中输出结果一直是0,

以及打程序时,不仔细本来输入整型变量,最终结果用浮点型变量输出,导致程序运行错误;

 

 

posted @ 2013-10-17 16:55  刘睿1994  阅读(415)  评论(0编辑  收藏  举报