[求助]求数组A[10]中的最大值,次大值。谢谢啊
求数组A[10]中的最大值,次大值。谢谢啊 最大值简单点 那次大值怎么求啊? 搜索更多相关的解决方案:
最大值
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int a[10],i,j,max,temp;
for(i=0;i<10;i++) scanf("%d",&a[i]);
for(i=0;i<2;I++)
{
max=i;
for(j=i+1;j<10;j++) {if(max<a[j]) max=j;}
if(max!=i) {temp=a[i];a[i]=a[max];a[max]=temp;}
}
printf("max=%d,second max=%d",a[0],a[1]);
}
方法不好
[此贴子已经被作者于2005-4-2 17:27:38编辑过]
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int a[10],i,j,max,temp;
for(i=0;i<10;i++) scanf("%d",&a[i]);
for(i=0;i<2;I++) 从这开始以下解释一下好吗 看不太懂 谢谢 你运行一下看行吗 我这不方便试
{
max=i;
for(j=i+1;j<10;j++) {if(max<a[j]) max=j;}
if(max!=i) {temp=a[i];a[i]=a[max];a[max]=temp;}
}
printf("max=%d,second max=%d",a[0],a[1]);
}
----------------解决方案--------------------------------------------------------
用个循环向数组里送数据
然后用冒泡排序,不就可以了
如果是从大到小排序,max=A[0],second max=A[1]
从小到大的,max=A[9],second max=A[8]
----------------解决方案--------------------------------------------------------
二楼的好像是先对这十个数进行排序然后输出前两个数,那自然就是最大的和次大的了。
----------------解决方案--------------------------------------------------------
#define N 10
#include <stdio.h>
main()
{
int i, max, sub_max;
int a[N];
printf("Please input 10 interges:\n");
for(i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
max = a[0];
sub_max = a[0];
for(i =0; i < N; i++)
{
if(a[i] > max)
{
sub_max = max;
max = a[i];
}
}
if(sub_max == max)
{
printf("There is no sub_max\n");
printf("max = %d\n", max);
}
else
printf("max = %d, sub_max = %d\n", max, sub_max);
}
----------------解决方案--------------------------------------------------------
????????
2楼的和6楼的怎么我运行了一下,但是结果不对
----------------解决方案--------------------------------------------------------
6楼的对啊。。。
----------------解决方案--------------------------------------------------------
6楼的程序,按0-9的录入数,输出的是max=9,sub_max=8,没有错误
但是从9到0的录入,就是There is no sub_max max=9
而0、1、2、3、4、5、9、8、7、6的录入,max=9,sub_max=5
----------------解决方案--------------------------------------------------------
#include <stdio.h> void main() { int a[10],i,j,max,temp; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<2;I++) { max=i; for(j=i+1;j<10;j++) {if(a[max]<a[j]) max=j;} /*我改了一下/* if(max!=i) {temp=a[i];a[i]=a[max];a[max]=temp;} } printf("max=%d,second max=%d",a[0],a[1]); } |
----------------解决方案--------------------------------------------------------