密苏里号和大和号:C语言问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/10 11:39:06
可以帮我改下错吗?
输入三个数,将3个数从大到小输出,输出时,如果该数大于85,就跟在后面一个“A”;该数小于85大于等于70,跟在后面一个“B”;该数小于70大于等于60,跟在后面一个“C”;小于60就跟在后面一个“D”;

#include<stdio.h>
void main()
{
int a,b,c,frint(),frintlevel();
scanf("%d%d%d",&a,&b,&c);
frint();frintlevela();

}
frint(int a,int b,int c)
{int d;
if(a<b){d=a;a=b;b=d;}
if(b<c){d=b;b=c;c=d;}
if(a<b){d=a;a=b;b=d;}
printf("%d,%d,%d",a,b,c);
}
char levela(int x)
{
if(x>=85)return('A');
else if(x<85&&x>=70)return('B');
else if(x<70&&x>=60)return('C');
else return('D');
}
void frintlevel()
{
char d;
if
d = levela(a);
printf("%d%f;",a,d);
d=levela(b);
printf("%d%f;",b,d);
d=levela(c);
printf("%d%f;",c,d);
}

该程序有错误,请哪为高手帮忙解决一下。也可以把你编好的发上来,给小弟一个答案。

1、a,b,c是在main里面声明的局部变量,在frintlevel函数里无法使用。
2、frint函数里的a,b,c是形参,即main的a,b,c的副本,frint是对副本进行操作,对源数据没有影响,退出frint函数后,main的a,b,c仍保持原值,没有经过排序。

这种小程序,建议楼主不要分几个函数了,就写在一个main里。

你那个单独的 if 是什么意思。

#include<stdio.h>
void main()
{
int a[3],frint(int a[3]),frintlevel(int a[3]);
scanf(\"%d%d%d\",&a[0],&a[1],&a[2]);
frint(a);frintlevel(a);
}
frint(int temp[3])
{int d,i,j;
for (i=0;i<2;i++)
for (j=i+1;j<3;j++)
if (temp[i]<temp[j])
{d=temp[i];temp[i]=temp[j];temp[j]=d;}
printf(\"%d,%d,%d\",temp[0],temp[1],temp[2]);
}
char levela(int x)
{
if(x>=85)return(\'A\');
else if(x<85&&x>=70)return(\'B\');
else if(x<70&&x>=60)return(\'C\');
else return(\'D\');
}
frintlevel(int temp[3])
{
char d;
d = levela(temp[0]);
printf(\"%d%c;\",temp[0],d);
d=levela(temp[1]);
printf(\"%d%c;\",temp[1],d);
d=levela(temp[2]);
printf(\"%d%c;\",temp[2],d);
}