你可以先排序,然后在输出最大的..
一个线性选择,何必要排序呢,只要遍历记录当前最大者就可以了.
倚天照海花无数,流水高山心自知。
#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编辑过]