为什么编写完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;
} 展开
#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;
} 展开
1个回答
推荐于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);
其他功能的实现上你再斟酌一下,这个程序看上去像个排序用的,但是结果并没有实现排序。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询