1.有一个函数:y=2x-1 (1<=x<10);y=3x-11 (x>=10)写程序,输入x的值,输出y相应的值。
#include<stdio.h>
int main()
{
int x,y;
printf("输入一个数x:");
scanf("%d",&x);
if(x<1)
{
printf("请重新输入x值,使得x>=1:");
scanf("%d",&x);
}
if(x>=1&&x<10)
{
y=2*1-1;
printf("%d\n",y);
}
if(x>=10)
{
y=3*x-11;
printf("%d\n",y);
}
return 0;
}
2.有3个整数,由键盘输入,输出其中最大的数
#include <stdio.h>
int main()
{
int a,b,c,max;
printf("请输入三个整数:");
scanf("%d %d %d",&a,&b,&c);
max=a;
if(b>max)
max=b;
if(c>max)
max=c;
printf("这三个数的最大值为:%d\n",max);
return 0;
}
3.从键盘输入一个小于1000的正整数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其检查是否为小于1000的正数。若不是,则要求从新输入。
#include <stdio.h>
#include<math.h>
int main()
{
int a;
printf("输入一个小于1000的正整数:");
scanf("%d",&a);
if(a>1000||a<0)
{
printf("请重新输入:\n");
scanf("%d",&a);
}
a=sqrt(a);
printf("这个数的平方根为:%d\n",a);
return 0;
}
4. 给出一个百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,8089分为B,7079分为C,60~69分为D,60分以下为E。
用if语句写的
#include <stdio.h>
int main()
{
int grade;
printf("输入一个百分制成绩:");
scanf("%d",&grade);
if(grade <0||grade>100)
{
printf("输入错误,请重新输入一个1~100的成绩:");
scanf("%d",&grade);
}
if(grade>90)
printf("等级为A\n");
else if (grade<=90&&grade>80)
printf("等级为B\n");
else if (grade<=80&&grade>70)
printf("等级为C\n");
else if (grade<=70&&grade>=60)
printf("等级为D\n");
else if (grade<60)
printf("等级为E\n");
else printf("输入错误,请重新输入一个1~100之间的成绩");
return 0;
}
用switch方法
#include <stdio.h>
int main()
{
int grade;
printf("输入一个百分制成绩:");
scanf("%d",&grade);
if(grade <0||grade>100)
{
printf("输入错误,请重新输入一个1~100的成绩:");
scanf("%d",&grade);
}
{
switch(grade/10)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:printf("等级为E\n");break;
case 6:printf("等级为D\n");break;
case 7:printf("等级为C\n");break;
case 8:printf("等级为B\n");break;
case 9:
case 10:printf("等级为A\n");break;
}
}
return 0;
}
5.输入4个整数,要求按由小到大的顺序输出
#include <stdio.h>
int main()
{
int a,b,c,d,t;
printf("输入四个数字:");
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b) {t=a;a=b;b=t; }
if(a>c) {t=a;a=c;c=t; }
if(a>d) {t=a;a=d;d=t; }
if(b>c) {t=b;b=c;c=t; }
if(b>d) {t=b;b=d;d=t; }
if(c>d) {t=c;c=d;d=t; }
printf("从小到大一次为:%d %d %d %d",a,b,c,d);
return 0;
}
用循环和数组实现
#include <stdio.h>
int main()
{
int a[4];
printf("请输入四个数:");
scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);
int i,j,t;
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
printf("从小到大一次为:%d %d %d %d",a[0],a[1],a[2],a[3]);
return 0;
}
6.给出一个不多于5位数的正整数;(1)求出它是几位数;(2)分别输出每一位数字;(3)按逆顺序输出各位数,例如原有数为123,应输出321
#include <stdio.h>
int main()
{
long i,k;
int a,b,c,d,e;
printf("输入一个数:");
scanf("%ld",&i);{
a=i/10000;
b=i%10000/1000;
c=i%1000/100;
d=i%100/10;
e=i%10;
if(a>0)
{
printf("是五位数\n");
k=10000*e+1000*d+100*c+10*b+a;
}
else if(b>0)
{
printf("是四位数\n");
k=1000*e+100*d+10*c+b;
}
else if(c>0)
{
printf("是三位数\n");
k=100*e+10*d+c;
}
else if(d>0)
{
printf("是二位数\n");
k=10*e+d;
}
else if(e>0)
{
printf("是一位数\n");
k=e;
}
else printf("输入错误");
printf("这几个数分别为:%d %d %d %d %d\n",a,b,c,d,e);
printf("这个数逆序为:%ld\n",k);
}
return 0;
}