这C语言 冒泡法哪里错了?

来源:百度知道 编辑:UC知道 时间:2024/06/22 16:34:10
# include <stdio.h>
void main()
{
int arr[5];
int i,j,k,t;
for(i=0;i<5;i++)
scanf("%d",&arr[i]);
for(j=0;j<4;j++)
for(k=0;k<4-j;k++)
if(arr[k]>arr[k+1])
{
t=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
}
for(i=0;i<5;i++)
printf("%d",arr[i]);
getch();
}

for(k=0;k<4-j;k++)
if(arr[k]>arr[k+1])
{
t=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
}

改成
for(k=0;k<4-j;k++)
if(arr[k]>arr[k+1])
{
t=arr[k];
arr[k]=arr[k+1];
arr[k+1]=t;
}

# include <stdio.h>
void main()
{
int arr[5];
int i,j,k,t;
for(i=0;i<5;i++)
scanf("%d",&arr[i]);
for(j=0;j<4;j++)
for(k=0;k<4-j;k++)
if(arr[k]>arr[k+1])
{
t=arr[k];
arr[k]=arr[k+1];
arr[k+1]=t;
}
for(i=0;i<5;i++)
printf("%d",arr[i]);
getch();
}
这样就行了
arr[k]不是【j】

#include <stdio.h>
void main()
{
int arr[5];
int i,j,k,t;
for(i=0;i<5;i++)
scanf("%d",&arr[i]);
for(j=0;j<4;j++)
for(k=0;k<4-j;k++)
if(arr[k]>arr[k+1])