之前写过类似的题目,不过后来发现了更简单的方法,想着再写一次。
首先关于输出素数问题
题目
打印100~200之间的素数
解析
这里简单的地方在于下面的"flag",因为可以根据它的变化直接判断是否为素数,代码如下:
#include<stdio.h>
int main(void){
int i;
for( i =100;i <= 200; i++)
{
int flag=1;
for(int j = 2;j < i; j++)
{
if(i % j == 0)
{
flag = 0;
break;
}
}
if(flag == 1) //这里如果不是素数,flag其实是0的
{
printf("%d ",i);
}
}
printf("\n");
return 0;
}
关于评分问题
题目
90以上A,80~90为B,以此规律为C、D、E。
解析
这一题的话,用case极其简单易理解,但是要理解case、default、break的用法与联系。
int main(void){
int date = 0;
char grade;
printf("请输入你的成绩:");
scanf("%d",&date);
switch(date / 10){ //因为date为整形,所以如果是85会变为8,不影响结果
case 10:
case 9: grade = 'A';
break;
case 8: grade = 'B';
break;
case 7:grade = 'C';
break;
case 6:grade = 'D';
break;
default:grade = 'E';
}
printf("成绩评分为 %c\n",grade);
return 0;
}
真的简单了许多,解题的简单性确实挺重要的