#include
#define N 100
void find_two_largest( int a[],int n,int *largest,int *second_largest);
int main(void)
{
int a[N], len;
int largest, second_largest;
scanf("%d", &len);
for (int i = 0; i < len; i++)
{
scanf("%d", &a[i]);
}
find_two_largest(a,len,&largest, &second_largest);
printf("%d %d\n", largest, second_largest);
return 0;
}
void find_two_largest( int a[100], int n, int *largest, int *second_largest)
{
int i;
scanf("%d",&n);
for (i=0;i"%d",&n);
*largest = *second_largest = a[0];
for(i=0;iif(a[i]>*largest)
*largest =a[i];
for(i=0;iif(a[i]!=*largest&&a[i]>*second_largest)
*second_largest = a[i];
}
void find_two_largest()函数里再次输入数组元素就多余了,修改如下,供参考:
#include <stdio.h>
#define N 100
void find_two_largest( int a[],int n,int *largest,int *second_largest);
int main(void)
{
int a[N], len;
int largest, second_largest;
scanf("%d", &len);
for (int i = 0; i < len; i++)
{
scanf("%d", &a[i]);
}
find_two_largest(a,len,&largest, &second_largest);
printf("%d %d\n", largest, second_largest);
return 0;
}
void find_two_largest( int a[100], int n, int *largest, int *second_largest)
{
int i;
//scanf("%d",&n); 这三行多余了。
//for (i=0;i<n;i++)
//scanf("%d",&n);
*largest = *second_largest = a[0];
for(i=0;i<n;i++)
if(a[i]>*largest)
*largest = a[i];
for(i=0;i<n;i++)
if(a[i]!=*largest&&a[i]>*second_largest)
*second_largest = a[i];
}
如有帮助,欢迎点赞+采纳哈!