当前位置: 代码迷 >> C语言 >> 输入10个数,输出其中最大者,怎么做呢
  详细解决方案

输入10个数,输出其中最大者,怎么做呢

热度:229   发布时间:2007-11-08 12:41:23.0
以下是引用chmlqw在2007-11-8 12:14:59的发言:
你可以先排序,然后在输出最大的..

一个线性选择,何必要排序呢,只要遍历记录当前最大者就可以了.


----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2007-11-8 12:41:23的发言:

一个线性选择,何必要排序呢,只要遍历记录当前最大者就可以了.

我就是要说这个意思的


----------------解决方案--------------------------------------------------------
喜欢复杂化的话。你就应该用二叉树。这样能减少时间复杂度
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
这是个很简单的问题.
int i,max,temp;
scanf("%d",&max);
for(i=1;temp>max?max=temp:0||i<9;i++)
scanf("%d",&temp);
printf("%d",max);
getche();
----------------解决方案--------------------------------------------------------
应该说是很基础的问题.
----------------解决方案--------------------------------------------------------
LS的代码简单多``能简单就进量去简单它```至于这个问题的其他方面``个人可以下来再思考```


----------------解决方案--------------------------------------------------------
学习了
----------------解决方案--------------------------------------------------------
以下是引用随心在2007-11-8 12:35:39的发言:

#include <iostream>
using namespace std;

class _max
{
public:
void opmax(int n)
{
if(cnt==0)
{
maxvi=n;
minvi=n;
}
else
if(n>maxvi)
maxvi=n;
if(n<minvi)
minvi=n;
++cnt;
}
void result()
{
cout<<"max:"<<maxvi<<endl;
cout<<"min:"<<minvi<<endl;
}
_max(): cnt(0) {}
private:
int maxvi;
int minvi;
int cnt;
};

int main()
{
int iv=0;
_max text;
while(cin>>iv)
text.opmax(iv);
text.result();
system("pause");
return 0;
}

这个是用什么比较 我貌似看不明白啊``
不过上面那个输出10个数还是觉得用数组比较简单点`


----------------解决方案--------------------------------------------------------

/* 先发个用数组的 */

#include <stdio.h>
#define MAX 10

int main(void)
{
int i = 0;
int temp;
int num[MAX];

for(i = 0; i < MAX; i++)
{
while(scanf("%d", &num[i]) != 1)
while(getchar() != '\n');
}

temp = num[0];
for(i = 1; i < MAX; i++)
temp = temp > num[i] ? temp : num[i];

printf("%d\n", temp);

while(getchar() != '\n');
getchar();
return 0;
}

/* 不用数组的 */

#include <stdio.h>
#define MAX 10

int main(void)
{
int i;
int max;
int num;

while(scanf("%d", &num) != 1)
while(getchar() != '\n');

max = num;

for(i = 1; i < MAX; i++)
{
while(scanf("%d", &num) != 1)
while(getchar() != '\n');
max = (max > num) ? max : num;
}

printf("%d\n", max);

while(getchar() != '\n');
getchar();
return 0;
}

[此贴子已经被作者于2007-11-8 22:27:20编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案