新手求助,一个简单的函数重载问题

Sheldon_ 2014-06-17 07:54:48
编写一个程序,用来求两个整数或3个整数中的最大数。如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数(利用重载函数)。
数是由键盘自由输入的
...全文
141 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
buyong 2014-06-18
  • 打赏
  • 举报
回复
std::max
TinyCrab 2014-06-18
  • 打赏
  • 举报
回复
main函数还要什么意思…
没事人 2014-06-18
  • 打赏
  • 举报
回复
请问int main(void)是什么意思啊
Sheldon_ 2014-06-18
  • 打赏
  • 举报
回复
引用 8 楼 u013697891 的回复:
请问int main(void)是什么意思啊
返回值为void型。就是无返回值吧
Sheldon_ 2014-06-18
  • 打赏
  • 举报
回复
引用 5 楼 u012421456 的回复:
# include <stdio.h>

int max(int, int);
int max(int, int, int); 

int main(void)
{
	int i, a, b, c;
	printf("请输入一个数字(输入为1则比较两个数大小,否则比较三个数大小)\n");
	scanf("%d", &i);
	switch (i)
	{
		case 1:
		printf("请输入两个数字中间用空格分隔:\n");
			scanf("%d %d", &a, &b);
			printf("这两个数中的大数为 %d\n", max(a, b));
			break;
		default :
		printf("请输入三个数字中间用空格分隔:\n");
			scanf("%d %d %d", &a, &b, &c);
			printf("这三个数中的最大数为 %d\n", max(a, b, c));
			break;
	}

    return 0;	
}

int max(int a, int b)
{
	if (a > b)
		return a;
	else
		return b;
} 

int max(int a, int b, int c)
{
	if (a > b)
		if (a > c)
			return a;
		else
			return c;
	else
		if (b > c)
			return b;
		else
			return c;
}
仅供参考
有想过switch的,还是比较满意的。谢谢!
xiaohehe00 2014-06-17
  • 打赏
  • 举报
回复
5楼正解
百曉生 2014-06-17
  • 打赏
  • 举报
回复
格式不太规范,说明不太好,仅供参考
百曉生 2014-06-17
  • 打赏
  • 举报
回复
# include <stdio.h>

int max(int, int);
int max(int, int, int); 

int main(void)
{
	int i, a, b, c;
	printf("请输入一个数字(输入为1则比较两个数大小,否则比较三个数大小)\n");
	scanf("%d", &i);
	switch (i)
	{
		case 1:
		printf("请输入两个数字中间用空格分隔:\n");
			scanf("%d %d", &a, &b);
			printf("这两个数中的大数为 %d\n", max(a, b));
			break;
		default :
		printf("请输入三个数字中间用空格分隔:\n");
			scanf("%d %d %d", &a, &b, &c);
			printf("这三个数中的最大数为 %d\n", max(a, b, c));
			break;
	}

    return 0;	
}

int max(int a, int b)
{
	if (a > b)
		return a;
	else
		return b;
} 

int max(int a, int b, int c)
{
	if (a > b)
		if (a > c)
			return a;
		else
			return c;
	else
		if (b > c)
			return b;
		else
			return c;
}
仅供参考
Sheldon_ 2014-06-17
  • 打赏
  • 举报
回复
引用 3 楼 u012421456 的回复:
这两个函数内部当然不一样了,两个函数名相同,参数个数不同,可以用个选择语句,输入两个数就调用比较两个数大小的函数,输入三个数就调用比较三个数大小的函数
我也知道是这个意思。可是麻烦能给个代码不?
百曉生 2014-06-17
  • 打赏
  • 举报
回复
这两个函数内部当然不一样了,两个函数名相同,参数个数不同,可以用个选择语句,输入两个数就调用比较两个数大小的函数,输入三个数就调用比较三个数大小的函数
Sheldon_ 2014-06-17
  • 打赏
  • 举报
回复
引用 1 楼 a345485527 的回复:
形参的个数就可以重载了 一个2个参数,一个3个参数
那比如输入2个数之后按回车之后就比较2个数的大小;输入三个数就比较三个数的大小,不是由你事先设计好的,先输入两个数再输入三个数这样的怎么实现?
Pump天天学习 2014-06-17
  • 打赏
  • 举报
回复
形参的个数就可以重载了 一个2个参数,一个3个参数

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧