C语言程序设计第二章课后习题
4.(1)有两个瓶子,交换其中的东西
#include<stdio.h>//1代表醋,2代表酱油
int main()
{
int a=1,b=2,c;
c=a;
a=b;
b=c;
printf("交换后为a=%d\nb=%d\n",a,b);
return 0;
}
运行结果如下:
4.(2)依次将十个数输入,输出其中最大的数
#include<stdio.h>
int main()
{
int a[10],i,max;
printf("请输入十个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=0;i<10;i++)
if(a[i]>a[0])
max=a[i];
printf("最大值为%d\n",max);
return 0;
}
运行结果如下:
4.(3)有三个数a,b,c,要求按大小顺序将他们输出
#include<stdio.h>
int main()
{
int a,b,c,d;
printf("请输入三个数:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
d=a;
a=b;
b=d;
}
if(a>c)
{
d=a;
a=c;
c=d;
}
if(b>c)
{
d=b;
b=c;
c=d;
printf("三个数由大到小输出为%5d%5d%5d\n",a,b,c);
return 0;
}
运行结果如下:
4.(4)求1+2+3+…+100
#include<stdio.h>
int main()
{
int i=1,sum=0;
while(i<=100)
{
sum=sum+i;
i=i+1;
}
printf("sum=%d\n",sum);
return 0;
}
运行结果如下:
4.(5)判读一个数是否能同时被3和5整除
#include<stdio.h>
int main()
{
int a;
printf("请输入一个数:\n");
scanf("%d",&a);
if(a%5==0&&a%3==0)
printf("%d能同时被3和5整除\n",a);
else printf("%d不能\n",a);
return 0;
}
运行结果如下:
4.(6)将100-200之间的素数输出
#include<stdio.h>
int main()
{
int i,j;
printf("100-200之间的素数为:\n");
for(i=100;i<=200;i++)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
if(j>=i)
printf("%5d",i);
}
return 0;
}
运行结果如下:
4.(7) 求m和n的最大公约数
#include<stdio.h>
int main()
{
int m,n,t,i;
printf("请输入两个数:\n");
scanf("%d%d",&m,&n);
if(m>n)
{t=m;m=n;n=t;}
for(i=n;i>=1;i--)
{
if(m%i==0&&n%i==0)
printf("m和n的最大公约数为%d\n",i);
break;
}
return 0;
}
运行结果如下:
4.(8)求方程式ax^2+bx+c=0的根,并考虑有两个不等的实根和有两个不等的实根
#include<stdio.h>
int main()
{
int a,b,c;
float q,x1,x2;
printf("请输入三个系数:\n");
scanf("%d%d%d",&a,&b,&c);
if(a==0)
printf("不是二次方程\n");
q=sqrt(b*b-4*a*c);
if(q>0)
printf("方程有两个不等的实根\n");
else if(q==0)
printf("方程有两个相等的实根\n");
else printf("方程无实根\n");
return 0;
}
运行结果如下: