想让下面程序顺利输出最大值次最大值,错哪了?
#include<stdio.h>max12(int *a,int n)//n为数组元素个数。
{
int i,j,max=0,t,k;
for(i=0;i<n;i++)
{
scanf("%d",a);
}
for(i=0;i<n;i++)
{
if(a>max)
{
max=a;
j=i;
}
}
t=a;a=a;a=t;//求出最大值,然后将其调到a位子。
max=0;//从新赋值,求第二个最大值。
for(i=1;i<n;i++)//从a开始在查找一边,求第二个最大值。
{
if(a>max)
{
max=a;
k=i;
}
}
printf("最大值%d\n次最大值%d\n",a,a);
}
intmain()
{
int c,a;
c=max12(a,5);
return c;
}{:10_266:}{:10_266:} 本帖最后由 jackz007 于 2021-12-26 16:11 编辑
#include<stdio.h>
void max12(int * a , int n)
{
int i , j , max , t ;
for(i = 0 ; i < n ; i ++) scanf("%d" , & a) ; // 学了这么长时间编程,不会不知道 scanf() 需要提供变量地址的事情吧?
for(i = 0 ; i < n ; i ++)
{
for(max = j = i ; j < n ; j ++) if(a > a) max = j ;
if(max != i)
{
t = a ;
a = a ;
a = t ;
}
}
printf("最大值%d\n次最大值%d\n" , a , a) ;
}
intmain(void)
{
int c , a ;
max12(a , 5) ;
} 本帖最后由 小黄练编程 于 2021-12-26 16:56 编辑
jackz007 发表于 2021-12-26 16:10
{:10_299:}{:10_299:}{:10_299:}{:10_299:},我就只有没加&错了还有把互换的a当成了最大值而不是a错了, 我后面main()那些地方没问题吗?没加啥void,c代表输出两个数啥的
页:
[1]