为什么编写完C语言程序运行时老是跳出来【已停止工作】

#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){inti,j,m,temp,n,a[n];pri... #include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int i,j,m,temp,n,a[n];
printf("input a positive:");
scanf("%d",&n);
srand(time(NULL));
for(i=0;i<n;i++) a[i]=rand()%100;
for(i=0;i<n;i++) printf("%d,",a[i]);
printf("\n");
for(i=0;i<n-1;i++)
{m=i;
for(j=i+1;j<n;j++)
if(a[j]<a[m]) m=j;
}
temp=a[i]; a[i]=a[m]; a[m]=temp;
for(i=1;i<n-1;i++)
{m=i;
for(j=i+1;j<n;j++)
if(a[j]>a[m]) m=j;
}
temp=a[i]; a[i]=a[m]; a[m]=temp;
for(i=0;i<n;i++) printf("%5d",a[i]);
printf("\n");
return 0;
}
展开
 我来答
匿名用户
推荐于2017-12-15
展开全部

先不说这个程序功能能否实现,报错的原因可能出在数组的定义上。

把头文件里加上

#include <malloc.h>

把定义

int i, j, m, temp, n, a[n];

改成

int i, j, m, temp, n;

在获取n值之后,加入一行

int *a = (int *)malloc(sizeof(int) * n);

用这个为数组进行初始化。

最后在返回结束之前加上

delete(a);

其他功能的实现上你再斟酌一下,这个程序看上去像个排序用的,但是结果并没有实现排序。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式