重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
方法一:直接输入数据比大小
创新互联专注于寻甸网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供寻甸营销型网站建设,寻甸网站制作、寻甸网页设计、寻甸网站官网定制、微信平台小程序开发服务,打造寻甸网络公司原创品牌,更为您提供寻甸网站排名全网营销落地服务。
#include iostream.h
int main(void)
{
float x,y,z;
cout"请输入需比较的数"endl;
cinxy;
if(xy)z=x;
else z=y;
cout"最大值为"zendl;
return 0;
}
方法二:调用函数比较大小
#include iostream.h
int main()
{
float max(float x, float y ); //函数声明既可以在此处,也可以在函数外。
//如果一个函数被多个函数调用时一般选择在函数外做声明
//谭浩强P97
float i,j,m;
cout"输数"endl;
cinij;
m=max(i,j);
cout"最大值为"mendl;
return 0;
}
float max(float x,float y) //比较函数
{
float z;
if(xy) z=x;
else z=y;
return z;
}
//声明函数float max(float x, float y );就是要调用的函数最后再加一个分号;
很久以前的学习记录,好容易才翻出来
我个人建议,你都看看方法二,虽然看上去行数多些,但是你往后学习函数调用要很熟练才好
如果按你的方法来比较大小,而且是7个数字,也就是a~g,你后面少比较了g,而且最后的j也未必是最大,需要改为:
main()
{
int a,b,c,d,e,f,g,h,j;
scanf("%d%d%d%d%d%d%d",a,b,c,d,e,f,g); //这里读到g即可,后面没用的
a = max(a,b); //不能把g的值覆盖了,7个数,g还有存储数据呢
h = max(c,d);
j = max(e,f);
a = max(a,g); //还要和g比较
h = max(a,h); //接着还要比较a和h谁大
j = max(h,j); //这个才是最后结果,最大的一个
printf("abcdef da shi%d",j);
getch();
}
如果要比较大小的数比较多,建议使用数组存储,用个for循环就搞定了,如下:
#include stdio.h
void main()
{
int i, a[7], max = -32768;
for (i = 0; i 7; i++)
{
scanf ("%d", a[i]);
if (a[i] max) max = a[i];
}
printf ("max number is %d\n", max);
}
zxgb目的是要计算出通分时与两个分数相乘的系数
一般情况下呢a/b和c/d比较只要两个都乘bd就可以通分了嘛...(就是子函数对应的c值)
现在要做得好一点就是乘两个分母的最小公倍数...这个最小公倍数肯定是bd/n
这里d=b;b=a%b;a=d就是求n值
这里的情况是,如果b是d的倍数,那么乘的时候只要乘min{b,d}就好了(一次循环b就为0,a就为那个小的分母)
否则会一直循环至a=1,b=0,乘的数就是bd
#include stdio.h
void compy(int a,int b,int i,int j)
{
int n=a,m=b,p=i,k=j;
if(b == j)//先比较分母
if(ai)//如果第一个分子大
printf("%d/%d比%d/%d大\n",a,b,i,j);
else if(a==i)//如果分子相等
printf("两个分数相等\n");
else//如果第一个分子小
printf("%d/%d比%d/%d小\n",a,b,i,j);
else
{
a*=j;//通分
i*=b;//通分
if(ai)//如果第一个分子大
printf("%d/%d比%d/%d大\n",n,m,p,k);
else//如果第一个分子小
printf("%d/%d比%d/%d小\n",n,m,p,k);
}
}
int main(void)
{
int a,b,i,j;
printf("请分别输入第一个分数的分子和分母,用空格隔开:");
scanf("%d%d",a,b);//输入俩分数的分子和分母
printf("请分别输入第二个分数的分子和分母,用空格隔开:");
scanf("%d%d",i,j);//输入俩分数的分子和分母
compy(a,b,i,j);//调用函数
return 0;
}
#includestdio.h
main()
{
int a,b,c,d;
void compare(int a,int b,int c,int d);
printf("输入两个分数:");
scanf("%d/%d%d/%d",a,b,c,d);
compare(a,b,c,d);
return 0;
}
void compare(int a,int b,int c,int d)
{
if(b==d)
{
if(ac)
printf("%d/%d %d/%d",a,b,c,d);
else if(a==c)
printf("%d/%d = %d/%d",a,b,c,d);
else
printf("%d/%d %d/%d",a,b,c,d);
}
else
{
if(a*dc*b)
printf("%d/%d %d/%d",a,b,c,d);
else if(a*d==b*c)
printf("%d/%d = %d/%d",a,b,c,d);
else
printf("%d/%d %d/%d",a,b,c,d);
}
}
两个if里边的比较其实就是查找成绩最大值和最小值的下标,max和min就是成绩所在的下标,开始为0,然后在for里从0到N-1进行循环查找,到最后就是最大值和最小值的下标,因为学号和成绩是同时输入的,所以成绩最大值和最小值所在下标对应学号数组的元素就是需要的学号,程序很简单,多思考思考 ,不难看出来,希望对你理解有帮助