4.用传统流程图表示求解以下问题的算法。
(1)有两个瓶子 A 和 B,分别盛放醋和酱油,要求将它们互换(即 A 瓶原来盛醋, 盛酱油,B 瓶则相反)
#include <stdio.h>
void main()
{ int a,b,t;
scanf("a=%d,b=%d",&a,&b);
t=a;
a=b;
b=t;
printf("a=%d,b=%d\n",a,b);
}
(2)依次将 10 个数输人,要求输出其中最大的数。
#include <stdio.h>
int main(){
int a[10];
int i,max;
max=0;
for(i=0;i<10;i++){
scanf("请输入第%d个数:%d",i,&a[i]);
if(i>=1){
if(a[i-1]<a[i]){
max=a[i];
}
}
}
printf("十个数中最大的数为:%d\n",max);
return 0;
}
3.有 3 个数 a,b,c,要求按大小顺序把它们输出。
#include <stdio.h>
int main()
{int a,b,c;
printf("请输入3个整数:");
scanf("%d,%d%,d",&a,&b,&c);
if(a<b)
if(b<c)
printf("max=%d,\n",c);
else
printf("max=%d\n",b);
else if(a<c)
printf("max=%d\n",c);
else
printf("max=%d",a);
return 0;
}
(4)求 1+2+3+…+100。
#include <stdio.h>
int main(){
int i=1,total=0;
for(i;i<=100;i++){
total+=i;
}
printf("%d\n",total);
return 0;
}
(5)判断一个数 n 能否同时被 3 和 5 整除。
#include <stdio.h>
int main(){
int n;
printf("请输入一个数n:\n");
scanf("%d",&n);
if((n%3==0)&&(n%5==0)){
printf("%d可以同时被3和5整除\n",n);
}else{
printf("%d不可以同时被3和5整除\n",n);
}
return 0;
(6)将 100~200 之间的素数输出。
#include <stdio.h>
int main(){
int i=0,count=0;
for(i=100;i<=200;i++){
int j=0;
for(j=2;j<=i;j++){
if(i%j==0){
break;
}
}
if(i==j){
count++;
printf("%d ",i);
}
}
printf("\ncount=%d\n",count);
return 0;
}
(7)求两个数 m 和n的最大公约数。
#include<stdio.h>
int main()
{
int m,n,r,t;
scanf("%d,%d",&m,&n);
printf("%d和%d的最大公约数是\n",m,n);
if(m<n)
{
t=m;
m=n;
n=t;
}
while(m%n!=0)
{
r=m%n;
m=n;
n=r;
}
printf("%d\n",n);
return 0;
}
(8)求方程式 ax*+bx+c=0 的根。分别考虑:
①有两个不等的实根;
②有两个相等的实根。
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,disc,x1,x2,p,q;
scanf("%lf,%lf,%lf",&a,&b,&c);
printf("The equation");
disc=b*b-4*a*c;
if(disc<0)
printf("Tis equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("real roots:\nx1=%7.2f\nx2=%7.2f\n",x1,x2);
}
return 0;
}
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,disc,x1,x2,p,q;
scanf("%lf,%lf,%lf",&a,&b,&c);
printf("The equation");
disc=b*b-4*a*c;
if(disc<0)
printf("Tis equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("real roots:\nx1=%7.2f\nx2=%7.2f\n",x1,x2);
}
return 0;
}