用两个函数求c语言的最大值

#include<stdio.h>
int max1(int i,int j)
{
	if(i>j)
		printf("%d\n",i);
	else
		printf("%d\n",j);
}
void max2(int i,int j) 
{
	if(i>j)
		return i;
	else
		return j; 
}
int main()
{
	int a, b, c, d, e, f; 
	int max = 0;
	
	printf("请输入a b的值。\n",a, b);
	scanf("%d %d",&a, &b);
	printf("%d\n",max1(a,b));  
	max = max1(a,b);
	
	printf("请输入c d的值。\n",c, d);
	scanf("%d %d",&c, &d);
	printf("%d\n",max1(c,d));
	max = max1(c,d);
	
	printf("请输入e f的值。\n",e, f);
	scanf("%d %d",&e, &f);
	printf("%d\n",max1(e,f));
	max = max1(e,f);
	
	return 0;
	
 }

为什么用max1的时候运行结果有多余的数字,max2就没有任何错误。

 

 

可能是你max1没有返回值。你这能编译通过?该有返回值的没返回值,不该有的有返回值

多余的字符是啥?还有就你这个代码,编译通不过吧

首先,
max1 函数没有返回值,声明函数时应该用 void max1(int i,int j) 
max2 函数有返回值,声明函数时应该用 int max2(int i,int j) 
你发的这个代码中写反了。
其次,max1 函数是在自己函数内部直接用printf输出结果,调用函数时就不要再用printf("%d\n",max1(a,b));输出了,你两边都输出运行结果自然有多余的。  
而且你每次
    printf("%d\n",max1(a,b));  
    max = max1(a,b);
调用两遍max1(a,b),函数内printf输出结果也输出了两遍,更是多余。
最后,max1函数没有返回值,max是得不到结果的。
 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632