1.在键盘上输出一个正整数,要求将其十位数和个位数对调。
#include<stdio.h>
int main(){
int a,i,j;
printf("请输入一个正整数:");
scanf("%d",&a);
while(a<=0||a!=(int)a) {
printf("输入错误\n请输入一个正整数:");
scanf("%d",&a);
}
i=a%10;//个位
if(i==a){
printf("对调后结果为:%d",a);
return 0;
}
j=a%100/10;//十位
a=a/100*100+i*10+j;//除100去除后两位数字再乘以100填上两个0,个位*10变为十位
printf("对调后结果为:%d",a);
return 0;
}
2.从键盘输入3个整数,按照从大到小顺序输出。
#include<stdio.h>
int main(){
int a,b,c,max,min;
printf("请输入3个整数:");
scanf("%d%d%d",&a,&b,&c);
printf("您输入的结果为:%d%d%d\n",a,b,c);
max=a>b?(a>c?a:c):(b>c?b:c);
min=a<b?(a<c?a:c):(b<c?b:c);
printf("排序后结果是:");
printf("%d%d%d",max,a+b+c-max-min,min);
return 0;
}
3.输入一个四位正整数,计算它每位数之和,非零数之积。
#include<stdio.h>
int main(){
int a,i,j,k,l,sum,mul;
printf("请输入一个四位正整数:");
scanf("%d",&a);
i=a%10;//个位
j=a%100/10;//十位
k=a%1000/100;//百位
l=a/1000;//千位
sum=i+j+k+l;
i=(i!=0)?i:1;//非零为i,否则为1
j=(j!=0)?j:1;
k=(k!=0)?k:1;
l=(l!=0)?l:1;
mul=i*j*k*l;
printf("它每位数之和是:%d,非零数之积是:%d",sum,mul);
return 0;
}
4.输入某自然数递增序列首项和末项,输出该序列所有数的和。
#include<stdio.h>
int main(){
int f,end,sum;
printf("输入某自然数递增序列首项和末项:");
scanf("%d%d",&f,&end);
sum=(end-f+1)*(f+end)/2;//等差数列求和,因为是自然数包含0所以,项数是末项-首项+1
printf("输出该序列所有数的和:%d",sum);
return 0;
}
5.让计算机生成一个1-6之间的随机整数来表示骰子的点数,由用户输入'1'猜大,'2'猜小,输出结果。
#include<stdio.h>
#include<stdlib.h>
int main(){
int a,n;
printf("系统掷骰子中...\n");
srand(time(NULL));
n=rand()%6+1;
printf("请猜大小,输入1表示大,输入2表示小:");
scanf("%d",&a);
if(a==1&&n>3)//4,5,6是大
printf("恭喜,猜对了,数字为:%d",n);
else if(a==2&&n<4)//1,2,3是小
printf("恭喜,猜对了,数字为:%d",n);
else
printf("猜错了,数字为:%d",n);
return 0;
}
6.求圆柱体的体积、表面积
#include<stdio.h>
#define PI 3.1415926
int main(){
int r,h,v,s;
printf("请输入圆柱体半径:");
scanf("%d",&r);
printf("高度:");
scanf("%d",&h);
v=PI*r*r*h;//PI&R2*H
s=2*PI*r*r+2*PI*r*h;//两个底面积+侧面积(2*PI*R2*H)
printf("圆柱体体积为:%d,表面积为:%d",v,s);
return 0;
}
7.从键盘上输入秒数,将其转换为几小时几分钟几秒的形式
#include<stdio.h>
int main(){
int s,h,m;
printf("请输入秒数:");
scanf("%d",&s);
h=s/3600;
m=s%3600/60;
s=s%60;
printf("%d小时%d分钟%d秒",h,m,s);
return 0;
}
8.计算两个数之差的绝对值
#include<stdio.h>
#include<math.h>
int main(){
int a,b;
int z=0;
int x=0;
printf("输入两个数:");
scanf("%d%d",&a,&b);
//使用abs()函数
z=abs(a-b);
printf("两个数之差的绝对值:%d\n",z);
//或者
x=a-b;
if(a-b<0) x=b-a;
printf("两个数之差的绝对值:%d",x);
return 0;
}
9.求一元二次方程3X2-20X-10=0的根,保留二位小数
公式:Δ=b^2-4ac
若Δ<0,二次方程无实数根;若Δ=0,二次方程有1个实数根;若Δ>0,二次方程有2个不相等的实数根;
#include<stdio.h>
int main(){
int a=3,b=-20,c=-10;
double z,x1,x2;
z=b*b-4*a*c;
if(z>0){
x1=(-b+sqrt(z))/(2*a);
x2=(-b-sqrt(z))/(2*a);
printf("x1=%.2lf,x2=%.2lf\n",x1,x2);
}
else if(z==0){
x1 = (-b )/(2*a);
x2 = x1;
printf("x1 =x2 = lf%\n",x2);
}
else
printf("无解\n");
return 0;
}
10.输入三角形的三个边长,求三角形面积;三角形输入两条边,求第三边
#include<stdio.h>
int main(){
int a,b,c,p,s;
printf("请输入三角形的三条边:");
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a){//判断是否是三角形
p=(a+b+c)/2;//海伦公式,令p=(a+b+c)/2,面积S=√[p(p-a)(p-b)(p-c)]
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("三角形面积是:%d\n",s);
}
else
printf("输入错误\n");
three();//求第三边
return 0;
}
void three(){
int a,b,c;
printf("请输入三角形的两条边:");
scanf("%d%d",&a,&b);
c=sqrt(a*a+b*b);
printf("第三条边是:%d",c);
}
11.从键盘输入k,求1平方+2平方+3平方+...+k平方
#include<stdio.h>
int main(){
int k,i,sum=0;
printf("请输入一个数:");
scanf("%d",&k);
if(k<1){
printf("输入错误");
return 0;
}
for(i=1;i<=k;i++)
sum=sum+i*i;
printf("结果为:%d",sum);
return 0;
}
12.求1-1/2+1/3-1/4+...+1/99-1/100的和
#include<stdio.h>
int main(){
int i,sum=0,flag=1;
for(i=1;i<=100;i++)
{
sum=sum+flag*1/i;
flag=-flag;
}
printf("结果为:%d",sum);
return 0;
}
13.求e=1+1/1!+1/2!+...1/n!,直到最后一项小于10的-5次为止