#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];
}
为什么我的主函数不能成功调用下面的函数啊,还是哪里写错了,大家help一下(语言-c语言)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qzjhjxj 2022-12-15 23:39关注
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]; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 Java-Oj-桌布的计算
- ¥15 请问如何在openpcdet上对KITTI数据集的测试集进行结果评估?
- ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
- ¥20 有人知道这种图怎么画吗?
- ¥15 pyqt6如何引用qrc文件加载里面的的资源
- ¥15 安卓JNI项目使用lua上的问题
- ¥20 RL+GNN解决人员排班问题时梯度消失
- ¥60 要数控稳压电源测试数据
- ¥15 能帮我写下这个编程吗
- ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路