1.编程,有一个数学函数,当-5<x<0时y=5x,当x=0时y=-1,当0<x<10时y=2x+1。编写一个程序,当输入x值时,计算并输出相应的y值。
#include <stdio.h>
main()
{
int x=0,y=0;
printf ("输入X\n");
scanf_s("%d",&x);
if (x>-5 && x<0) y=5*x;
else if (x==0) y=-1;
else if (x>0 && x<10) y=2*x+1;
printf("%d\n",y);
}
问题
这个程序是成功了,不过我想当输入的x值小于等于-5或大于等于10时输出“error”此字符,所以我经过查询写了以下程序
#include <stdio.h>
main()
{
int x=0,y=0;
char z[]="error";
printf ("输入X\n");
scanf_s("%d",&x);
if (x>-5 && x<0) y=5*x;
else if (x==0) y=-1;
else if (x>0 && x<10) y=2*x+1;
else if (x<=-5 && x>=10) z;
printf("%d\n",y);
printf("%s\n",z);
}
此时我输入x,它生成的会同时有y和z两个数据,而我想要的效果是只输出满足条件的数据,比如我输入5,我希望它输出的就是11,而不是11(换行)error,我感觉这是一个很简单的问题,但我尝试了很多次都未成功。
2.编程,输入一个百分制的成绩score后,按如下规则输出它的等级:90~100为A,80~89为B,70~79为C,60~69为D,59~0为E。
#include <stdio.h>
main()
{
int score;
char grade;
printf("输入分数\n");
scanf_s("%d",&score);
if(score>=90) grade='A';
else if(score>=80 && score<90) grade='B';
else if(score>=70 && score<80) grade='C';
else if(score>=60 && score<70) grade='D';
else if(score<=59) grade='E';
printf("%c",grade);
}
3.编程,从键盘上输入某个月的编号(1~12),显示该月编号所对应月份的英文名。
#include <stdio.h>
main()
{
int a;
printf("请输入数字:\n");
scanf("%d",&a);
switch(a)
{
case 1:printf("Jan\n"); break;
case 2:printf("Feb\n"); break;
case 3:printf("Mar\n"); break;
case 4:printf("Apr\n"); break;
case 5:printf("May\n"); break;
case 6:printf("Jun\n"); break;
case 7:printf("Jul\n"); break;
case 8:printf("Aug\n"); break;
case 9:printf("Sep\n"); break;
case 10:printf("Oct\n"); break;
case 11:printf("Nov\n"); break;
case 12:printf("Dec\n"); break;
default:printf("error\n"); break;
}
}
总结
除了那个暂时还没被解决的问题,书本后面的习题都挺简单的,后面等学的东西多一些了会在一些平台和网站上搜寻一些题目来练习,还有就是编程和写博客速度过慢,还是得增加训练量。加油,努力。