程序代码:#include <stdio.h>
#define max(x, y) ((x) > (y) ? (x) : (y))
int main(void) {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("最大值:%d\n", max(max(a, b), c));
return 0;
}这样做思路更清晰吧!!!
My life is brilliant
程序代码:
// test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
// 错误返回代码
#define INVALID_ARRAY 0
#define INVALID_START -1
#define INVALID_END -2
// 函数原型声明
// 目标: 求一堆整数的最大值
// 参数: iData -- 储存整数的一维数组
// iStart -- 开始的序号(从1计起)
// iEnd -- 结束的序号(从1计起)
// 返回: 最大值的序號(<1表示出错)
int max(int *iData, int iStart, int iEnd);
// 程序入口
int _tmain(void)
{
int iData[] = {16, -9, 2, 21, 0, -4, -1};
int index;
index = max(iData, 2, 5);
if (index > 0)
{
printf_s("具有最大值的是数组中第%d个元素, 其值为%d\n", index+1, iData[index]);
}
else
{
printf_s("参数传递错误: %d\n", index);
}
getchar();
return index;
}
int max(int *iData, int iStart, int iEnd)
{
int max_value;
int i;
int ret_value;
ret_value = 0;
if (iStart < 0)
{
ret_value += INVALID_START;
}
if (iEnd < 0)
{
ret_value += INVALID_END;
}
if (ret_value != 0)
{
return ret_value;
}
if (iEnd - iStart < 1)
{
return INVALID_ARRAY;
}
iStart--;
iEnd--;
max_value = iData[iStart];
ret_value = iStart;
for(i = iStart + 1; i <= iEnd; i++)
{
if (iData[i] > max_value)
{
ret_value = i;
max_value = iData[i];
}
}
return ret_value;
}
