永发信息网

由主函数从键盘上输入任意两个整型变量a,b的值,由子函数比较出这两个数的大小,并返回一个标记,再由主函数根据子函数返回的标记由大到小输出a,b的值。

答案:2  悬赏:60  手机版
解决时间 2021-05-08 19:43

#include <stdio.h>

void main(void)
{
int a,b;


int pp=large(a,b);

printf("Please enter two numbers:\n",a,b);
scanf("%d%d",&a,&b);
if (pp=a)
{
printf("由大到小输出%2d%2d\n",pp);
}
else
{
printf("由大到小输出%2d%2d\n",pp);
}


}

int large(int x,int y)
{
int zz;
if (x>y)
{
zz=a;
}
else
{
zz=b;
}
return zz;
}


对于实参 形参 返回值不是太懂 有错误 但是找不到 大家帮下

最佳答案

建议你看看函数参数的传递和变量的作用域。


问题1:a和b由于你是在主函数内定义,所以子函数中不可以使用。


问题2、函数一次只能返回一个值,看你的主函数中的if和else中的输出语句,你明显当成两个了,而且此处的输出语句是有问题的。


问题3:在此你采用的是传值方式,所调用的函数不会返回你想要的结果。


问题4、注意你的if判断应该是"=="而不是“=”


这种方式下,你可以在子函数中就输出两个数谁大谁小。


解决方法:


采用传址方式可以实现你的想法:


#include <stdio.h>
int large(int *x,int *y)
{
return *x>*y?*x:*y;
}


void main(void)
{
int a,b;
printf("Please enter two numbers:\n",a,b);
scanf("%d%d",&a,&b);
int pp=large(&a,&b);//pp只能接受一个数值
printf("pp=%d",pp);
if (pp==a)
{
printf("由大到小输出%2d,%2d\n",pp,b);
}
else if(pp==b)
{
printf("由大到小输出%2d,%2d\n",pp,a);
}


}



全部回答

#include <stdio.h>

void main(void) { int a,b; int large(int x,int y);//需要先声明. printf("Please enter two numbers:\n",a,b); scanf("%d%d",&a,&b);

int pp=large(a,b); //a b应该先获取输入.再调用函数判断. if (pp==a) //==是判断.=是赋值. { printf("由大到小输出%2d%2d\n",a,b); } else { printf("由大到小输出%2d%2d\n",b,a); } }

int large(int x,int y) { int zz; if (x>y) { zz=x; //x } else { zz=y; //y } return zz; }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
李庄村谷森西医卫生室这个地址在什么地方,我
清各位帮忙想想补充这个四字成语'"心醉X
描写餐厅的诗句
想买液晶电视,三十二下以上2500元左右
我是1992年1月3日我的塔罗牌是什么
谁能给我个诺基亚N73加密文件!~
为什么在农场里会有我QQ不存在的人偷我菜
谁能告诉我DNF中得到的材料有什么用?
谁有5320XM的键盘密码锁
飞行岛现在怎么点图标
皮肤干燥用什么沐浴露比较好
有问题帮帮忙
汽车1公里多少钱怎么算
阳天电脑地址有知道的么?有点事想过去
如何把弈剑60级正阳套升级成70级青阳套?修为
推荐资讯
觉得无聊怎么办呢?
电力部门现在招的是正式工?
谁邀请我开通qq餐厅啊 高分
请问兴业趋势,交银精选,中邮成长分别属于什
DNF河南1区维护好了吗?
岁余在文言文中的意思,冲幼之岁 文言文里是什
帮我配个最好的显卡?
为什么我在QQ交友聊天时每回验证码输上去后总
秋冬季节该如何进补饮食?
白铁是什么铁,有什么用
DNF现在那只宠物最好?
包头市李德皮肤门诊在哪里?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?