69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<process.h>
#define N 10
void bubble_sort(int a[])
{
int i,t,k;
system("cls");
printf("Bubble sort\n");
printf("old numbers:");
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
for(k=0;k<N;k++)
{
for(i=0;i<N-k;i++)
{
if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
}
}
printf("new numbers:");
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
}
void selection_sort(int a[])
{
int i,j,t,k;
system("cls");
printf("Selection sort\n");
printf("old numbers:");
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
for (i=0;i<N-1;i++)
{
k=i;
for (j=i+1;j<N;j++)
if (a[k]<a[j] )
k = j;
if (k!=i)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
printf("new numbers:");
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
}
void main()
{
int c,a[N],i;
printf("Input %d numbers:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("1.Bubble_sort\n2.Selection_sort\n");
scanf("%d",&c);
switch(c)
{
case 1:bubble_sort(a);break;
case 2:selection_sort(a);break;
}
}
#include<stdio.h>
#define N 10
void main()
{
int i,t,k,a[N];
printf("Bubble sort\n");
printf("old numbers:");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(k=0;k<N;k++)
{
for(i=0;i<N-k;i++)
{
if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
}
}
printf("new numbers:");
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
}
for(k=0;k<N;k++)
{
for(i=0;i<N-k-1;i++)
{
if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
}
}
#include<stdio.h>
#define N 10
void main()
{
int i, t, k, a[N];
printf("Bubble sort\n");
printf("old numbers:");
for (i = 0; i < N; i++)
scanf("%d", &a[i]);
for (k = 0; k < N; k++)
{
for (i = 0; i < N - k - 1; i++)
{
if (a[i] < a[i + 1])
{
t = a[i]; a[i] = a[i + 1]; a[i + 1] = t;
}
}
}
printf("new numbers:");
for (i = 0; i < N; i++)
printf("%4d", a[i]);
printf("\n");
system("pause");
}
for(k=0;k<N;k++)
{
for(i=0;i<N-k-1;i++)
{
if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
}
}
数组越界,当k==0时,i < N;那么i+1就会是N,下表只能是从0~N-1;因此会会越界;