永发信息网

c 语言 错误问题

答案:3  悬赏:10  手机版
解决时间 2021-05-05 03:00
  • 提问者网友:自食苦果
  • 2021-05-04 21:57

#include<stdio.h>
#define n 60000
long sequence(long a[n],long p)
{
long i,j,k;
for(i=1;i<=p;i++)
for(j=1;j<=p;j++)
if( a[i]<=a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
return a[n];
}
void mian()
{long i,m[60000],a[60000];
for(i=0;i<60000;i++)
a[i]=i;
m=sequence(a, 60000)
printf("%d",a[50000]);
}

我“一定”要调用long sequence(long a[n],long p) 但是有错误 那我应该怎么改 才能实现呢????

最佳答案
  • 五星知识达人网友:长青诗
  • 2021-05-04 23:01
首先,你的long sequence9中ij都应小于60000否则a[i],a[j]会越界.m是数组名,是地址常量,不能像你那样使用,应该改成m[数字]的行式
全部回答
  • 1楼网友:蓝房子
  • 2021-05-05 01:13

#include "stdio.h" #define n 60000 long* sequence(long *a,long p) { long i,j,k; for(i=1;i<=p;i++) for(j=1;j<=p;j++) if( a[i]<=a[j]) { k=a[i]; a[i]=a[j]; a[j]=k; } return a; }

void main() { long i,*m,a[60000]; for(i=0;i<60000;i++) a[i]=i; m=sequence(a, 60000); printf("%l",a[50000]); }

  • 2楼网友:怀裏藏嬌
  • 2021-05-05 00:19
m=sequence(a, 60000) 这后面什么没有分号呢。应该加上分号先。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯