C程序调试问题

yinan9 2013-11-08 12:41:51

#include<stdio.h>
#define SIZE 100

int main(){
int a[SIZE],i,j,n,tmp,k;
printf("plesae enter the count of the array:");
scanf("%d",&n);
printf("Please enter %d elements \n",n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}

printf("enter completed\n");

for(i=0;i<n-1;i++){
k=i;
for(j=i+1;i<=n-1;j++){
if(a[j]<a[k])
{
k=j;
}
}
if(k!=i){
tmp=a[i];
a[i]=a[k];
a[k]=tmp;
}
}

for(i=0;i<n;i++){
printf("%6d",a[i]);

}
return 0;
}


一段进行数组排序的程序,但是运行到 printf("enter completed\n"); 就死了,请大家帮忙看下
...全文
59 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinan9 2013-11-08
  • 打赏
  • 举报
回复
引用 1 楼 zh19921107 的回复:

#include<stdio.h>
#define SIZE 100

int main(){ 
	int a[SIZE],i,j,n,tmp,k;
	printf("plesae enter the count of the array:");
	scanf("%d",&n);
	printf("Please enter %d elements \n",n);
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	
	printf("enter completed\n");
	
	for(i=0;i<n-1;i++){
		k=i;
		//for(j=i+1;i<=n-1;j++){
		//问题就在这了,你把j的循环结束条件写成“i<=n-1”了
		for(j=i+1;j<=n-1;j++){
			if(a[j]<a[k])
			{
				k=j;
			}
		}
		if(k!=i){
			tmp=a[i];
			a[i]=a[k];
			a[k]=tmp;
		}
	}
	
	for(i=0;i<n;i++){
		printf("%6d",a[i]);
		
	}
	return 0;
}
多谢,真是低级错误
似缘非缘 2013-11-08
  • 打赏
  • 举报
回复

#include<stdio.h>
#define SIZE 100

int main(){ 
	int a[SIZE],i,j,n,tmp,k;
	printf("plesae enter the count of the array:");
	scanf("%d",&n);
	printf("Please enter %d elements \n",n);
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	
	printf("enter completed\n");
	
	for(i=0;i<n-1;i++){
		k=i;
		//for(j=i+1;i<=n-1;j++){
		//问题就在这了,你把j的循环结束条件写成“i<=n-1”了
		for(j=i+1;j<=n-1;j++){
			if(a[j]<a[k])
			{
				k=j;
			}
		}
		if(k!=i){
			tmp=a[i];
			a[i]=a[k];
			a[k]=tmp;
		}
	}
	
	for(i=0;i<n;i++){
		printf("%6d",a[i]);
		
	}
	return 0;
}

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧