题目一
成绩转换**
输入一个百分制的成绩M,将其转换成对应的等级,具体转换规则如下:
-
90--100 为 A;
-
80--89 为 B;
-
70--79 为 C;
-
60--69 为 D;
-
0--59 为 E;
思路
这题比较简单,就是用if-else条件判断语句来判断即可,通过判断的语句来输出对应的等级制成绩。
算法实现
int main()
{
int M;//接收成绩的变量
printf("请输入您的成绩:");
scanf("%d", &M);//输入成绩
if (M >= 90 && M <= 100)
printf("A");
else if (M >= 80 && M <= 89)
printf("B");
else if (M >= 70 && M <= 79)
printf("C");
else if (M >= 60 && M <= 69)
printf("D");
else
printf("E");
return 0;
}
示例
题目二
数值统计**
统计给定的n个数中,负数、零和正数的个数。
-
输入:
输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。
-
输出:
对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
思路
通过循环scanf函数来进行遍历数值进而统计正负数以及零的个数。
算法实现
int main()
{
int n;//n代表每一行需要输入多少个数
while ((scanf("%d", &n)), n)//当n为0时,终止循环
{
if (n == 0)
break;
int k = 0, j = 0, p = 0;//记录正数,零和负数的个数
int s;//接收需要判断的数据
for (int i = 0; i < n; i++)//循环遍历数组来进行统计
{
scanf("%d",& s);
if (s > 0)
{
k++;
}
else if (s == 0)
{
j++;
}
else
{
p++;
}
}
printf("输出:正数有%d个,零有%d个,负数有%d个", k, j, p);
}
//}
return 0;
}
示例
-
补充知识点
| while语句中用到的scanf作为真假条件 | |
|---|---|
| while ((scanf("%d", &n)), n) | 当n为0时,终止循环 |
| while(scanf("%d", &n)!=EOF) | 读到文件结尾时终止循环 |
| while(~scanf("%d", &n)) | 读到文件结尾时终止循环 |
| while ((scanf("%d", &n))==1) | 赋值失败,跳出循环 |
- ‘~’按位取反
总结
两题中都用到了if-else语句,还是比较简单的,值得注意的是第二题中如何写while中的scanf来停下程序, 这里还是需要去好好去琢磨一下的。