为什么编译没错,输出错误啊!求大神帮忙!急急急

jiehao111 2012-10-30 07:10:46
#include<stdio.h>
#define N 5
void main()
{
int i,j;
int n;
int temp;
int arr[N];
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
for(i=0;i<N;i++)
for(j=0;j<N-i;j++)
{
if(arr[j]>arr[j+1])
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;

}
for(i=0;i<N;i++)
printf("%d",arr[i]);
printf("²éÕÒ×îСµÄnÔªËØ");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("%d",arr[i]);

}
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoming262350 2012-10-30
  • 打赏
  • 举报
回复
刚才只是给你改了,没有看运行后的结果,大括号问题:
这样运行结果也就正确了:
#include<stdio.h>
#define N 5
int main()
{
int i,j,n,temp,arr[N];
printf("Input a original arrays:\n");
for(i=0;i<N;i++)
scanf("%d",&arr[i]);

for(i=0;i<N-1;i++)//第一个 控制第几次比较
for(j=1;j<N-i;j++)//控制每一次比较中的交换情况

if(arr[j-1]>arr[j]) //,大括号在这儿,这儿实现互换
{
temp=arr[j-1];
arr[j-1]=arr[j];
arr[j]=temp;

}
printf("Output a sorted arrays:\n");
for(i=0;i<N;i++)
printf("%2d ",arr[i]);
return 0;

printf("??é????×??????????n????????");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("%d",arr[i]);

}
自信男孩 2012-10-30
  • 打赏
  • 举报
回复
#include<stdio.h>
#define N 5
void main()
{
int i,j;
int n;
int temp;
int arr[N];
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
for(i=0;i<N;i++)
for(j=0;j<N-i;j++)
{
if(arr[j]>arr[j+1])
{ //哥,这儿是不是应该加上括号,当前一个大于后面一个后需要执行下面三句的;
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
for(i=0;i<N;i++)
printf("%d",arr[i]);
printf("²éÕÒ×îСµÄnÔªËØ");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("%d",arr[i]);

}
zhaoming262350 2012-10-30
  • 打赏
  • 举报
回复
这样就没有错误了,

#include<stdio.h>
#define N 5
int main()
{
int i,j,temp,arr[N];
printf("Input a original arrays:\n");
for(i=0;i<N;i++)
scanf("%d",&arr[i]);

for(i=0;i<N-1;i++)
for(j=1;j<N-i;j++)
{
if(arr[j-1]>arr[j])
temp=arr[j-1];
arr[j-1]=arr[j];
arr[j]=temp;

}
printf("Output a sorted arrays:\n");
for(i=0;i<N;i++)
printf("%2d ",arr[i]);
return 0;

printf("??é????×??????????n????????");
//scanf("%d",&n);
//for(i=0;i<n;i++)
//printf("%d",arr[i]);

}


不过我建议 实现冒泡法有这个方法:

#include <stdio.h>
int main()
{
int i,j,n,t,a[10];
scanf("%d",&n);
printf("input a new arrays:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=1;j<n-i;j++)
if(a[j-1]>a[j])
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
printf("The sorted number:\n");
for(i=0;i<n;i++)
printf("%2d ",a[i]);
return 0;
}
newtee 2012-10-30
  • 打赏
  • 举报
回复
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
HMGuardian 2012-10-30
  • 打赏
  • 举报
回复
结贴率太低……

69,369

社区成员

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

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