一、输入一个三位数,判断是否为水仙花数(例如水仙花数153=1*1*1+5*5*5+3*3*3)。
![](https://i-blog.csdnimg.cn/blog_migrate/3d683f8a9488daa0f083f4296a3406e0.png)
二、输入分数,对学生分数阶段划分。
![](https://i-blog.csdnimg.cn/blog_migrate/5e2792181bbd5a44f58cd8371468d259.png)
三、输入计算式,实现计算器加减乘除。
![](https://i-blog.csdnimg.cn/blog_migrate/e0add57e89d944d38b74b3fdc8376e63.png)
四、输入年月日,计算是当年的第几天。
![](https://i-blog.csdnimg.cn/blog_migrate/55255031ec848c33fb03a38e5bc2f3e9.png)
五、求开始值和结束值之间的偶数和。![](https://i-blog.csdnimg.cn/blog_migrate/a1652bfeeb4dfe8b403867c8174a0f39.png)
六、判断一个数是否为素数 。
![](https://i-blog.csdnimg.cn/blog_migrate/c7d8539648c38a1d08ec55d02255a942.png)
七、*号图形输出
![](https://i-blog.csdnimg.cn/blog_migrate/a6c19adddedea2048dd663b0d143b259.png)
八、ABCDEF字母图形输出。
![](https://i-blog.csdnimg.cn/blog_migrate/093e7941231860e07a376d33728e9832.png)
九、鸡兔同笼 共35头94脚 求鸡兔个数。
![](https://i-blog.csdnimg.cn/blog_migrate/64165cc2053d527734194f6ed5c4257f.png)
十、输入一个数如果被3,5,7整除,输出谁3,5,7.
![](https://i-blog.csdnimg.cn/blog_migrate/b25efd1cea1618fe116d6e2bec84af4b.png)
十一、一维数组计算最大和、最大差
![](https://i-blog.csdnimg.cn/blog_migrate/1834e790e3a61700b321ec13f9babafc.png)
附录
//2.输出水仙花 三位数
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(int argc, const char *argv[])
{
int num;
printf("请输入一个三位数:");
scanf("%d",&num);
int a=num/100; //百
int b=num/10%10;
int c=num%10;
if(num>=100 && num<=999){
if(pow(a,3)+pow(b,3)+pow(c,3)==num){
printf("%d是一个水仙花数\n",num);
}else{
printf("%d不是一个水仙花数\n",num);
}
}else{
printf("输入的数不规范,请重新输入!\n");
}
return 0;
}
//2.学生分数阶段划分
float score;
printf("请输入一个分数:");
scanf("%f",&score);
if(score>=0 && score<=100){
switch((int)score/10){
case 10:
case 9:
printf("等级为A\n");
break;
case 8:
printf("等级为B\n");
break;
case 7:
printf("等级为C\n");
break;
case 6:
printf("等级为D\n");
break;
default :
printf("等级为E,再接再厉!\n");
}
}else{
printf("输入的分数不合理,请重新输入!\n");
}
return 0;
}
//3.输入计算式,实现计算器加减乘除。
float num1,num2;
char ch;
printf("请输入一个计算式:");
scanf("%f%c%f",&num1,&ch,&num2);
switch(ch){
case '+':
printf("%f%c%f=%f\n",num1,ch,num2,num1+num2);break;
case '-':
printf("%f%c%f=%f\n",num1,ch,num2,num1-num2);break;
case '*':
printf("%f%c%f=%f\n",num1,ch,num2,num1*num2);break;
case '/':
if(num2==0){
printf("除数不能0!");
}else{
printf("%f%c%f=%f\n",num1,ch,num2,num1/num2);
}
break;
default :
printf("输入不规范!\n");break;
}
return 0;
}
//4.输入年月日,计算是当年的第几天
int year,month,day;
int sum=0,leap=0;
printf("请输入年月日:");
scanf("%d%d%d",&year,&month,&day);
//判断
if(month<1 || month>12){
printf("日期输入不规范,请重新输入!\n");
return -1;
}
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
if(day<1 || day>31){
printf("日期输入不规范,请重新输入!\n");
return -1;
}
}
if(month==4 || month==6 || month==8 || month==11){
if(day<1 || day>30){
printf("日期输入不规范,请重新输入!\n");
return -1;
}
}
switch (month){
case 12: sum+=30;
case 11: sum+=31;
case 10: sum+=30;
case 9: sum+=31;
case 8: sum+=31;
case 7: sum+=30;
case 6: sum+=31;
case 5: sum+=30;
case 4: sum+=31;
case 3: if(year%4==0 && year%100!=0 || year%400==0){
sum+=29;
}else{
sum+=28;
}
case 2: sum+=31;
case 1: sum+=day;break;
}
printf("日期是%d年的第%d天\n",year,sum);
return 0;
}
//5.求开始值和结束值之间的偶数和
int start,end;
printf("请输入开始和结束值:");
scanf("%d%d",&start,&end);
if(start>end){
int temp=start;start=end;end=temp;
}
int i=start,sum=0;
while(i<=end){
if(i%2==0){
sum+=i;
}
i++;
}
printf("sum=%d",sum);
return 0;
}
//6.判断一个数是否为素数
int num,count=0;
printf("请输入一个整数:");
scanf("%d",&num);
if(num<2){
printf("输入错误!\n");
}else{
for(int i=2;i<=sqrt(num);i++){
if(num%i==0) count++;
}
if(count==0){
printf("%d是一个素数\n",num);
}else{
printf("%d不是一个素数\n",num);
}
}
return 0;
}
// 7. *号图形输出
//左上
int i,j;
for(i=1;i<6;i++){
for(j=1;j<=i;j++){
printf("*");
}
printf("\n");
}
//左下
printf("\n");
for(i=1;i<6;i++){
for(j=1;j<=6-i;j++){
printf("*");
}
printf("\n");
}
//右上
printf("\n");
for(i=1;i<6;i++){
for(j=1;j<=6-i;j++){
printf(" ");
}
for(j=1;j<=i;j++){
printf("*");
}
printf("\n");
}
//右下
printf("\n");
for(i=1;i<6;i++){
for(j=1;j<=i;j++){
printf(" ");
}
for(j=1;j<=6-i;j++){
printf("*");
}
printf("\n");
}
return 0;
}
//8.字母图形输出
char i,j;
for(i='A';i<='F';i++){
for(j='A';j<=i;j++){
printf("%c",j);
}
printf("\n");
}
printf("\n");
for(i='F';i>='A';i--){
for(j='F';j>i;j--){
printf("_");
}
for(j='F';j>=i;j--){
printf("%c",j);
}
printf("\n");
}
return 0;
}
//9.鸡兔同笼 共35头94脚 求鸡兔个数。
int x,y;
for(x=0;x<35;x++){
for(y=0;y<25;y++){
if(x+y==35 && 2*x+4*y==94){
printf("鸡有%d只 兔有%d只\n",x,y);
}
}
}
return 0;
}
//10.输入一个数被3,5,7整除,除谁输出谁
int num;
printf("请输入一个数:");
scanf("%d",&num);
if(num%3==0) printf("3 ");
if(num%5==0) printf("5 ");
if(num%7==0) printf("7 ");
if(num%3!=0 && num%5!=0 && num%7!=0) printf("no");
puts("");
return 0;
}
//11.一维数组计算最大和、最大差
int n;
printf("请输入元素的个数:");//输入
scanf("%d",&n);
int arr[n];
int i,j,max,max2,min,max_i;
for(i=0;i<n;i++){
printf("请输入第%d个数:",i+1);
scanf("%d",&arr[i]);
}
max=min=arr[0];
for(i=0;i<n;i++){ //求得最大值最小值
if(max<arr[i]){
max=arr[i];
max_i=i;
}
if(min>arr[i]) min=arr[i];
}
max2=min;
for(i=0;i<n;i++){ //求得第二大值
if(max_i==i) continue;
if(max2<arr[i]) max2=arr[i];
}
printf("最大值=%d 第二大值=%d 最小值=%d\n",max,max2,min);
printf("最大和=%d 最大差=%d\n",max+max2,max-min);
return 0;
}