#include<stdio.h>
void main()
{
int i,j,t,a[15];
printf("enter data:\n");
for(i=0;i<16;i++)
{printf("a[%d]=",i);
scanf("%5d",&a[i]);
}
printf("\n");
printf("the original data is:\n");
for(i=0;i<16;i++)
{printf("%5d",a[i]);}
for(i=0;i<16;i++)
{for(j=0;j<16-i;j++)
if(a[i]<a[i+1])
t=a[i+1];
a[i+1]=a[i];a[i]=t;}
printf("the sorted number is:\n");
for(i=0;i<16;i++)
printf("%5d",a[i]);
printf("\n");
}
哪里有错误啊????
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
//我将你手动输入的部分改成了随机生成数字,别介意
void main()
{
int i,j,t,a[15];
printf("enter data:\n");
srand((int)time(0));
for(i=0;i<15;i++)
{
a[i]=rand()%500;
}
printf("\n");
printf("the original data is:\n");
//你所定义的数组大小为15.所以你的数组地址为0~14将16处全部改成15
for(i=0;i<15;i++)
{
printf("%5d",a[i]);
}
//冒泡排序中内侧的循环才是比较需要的。
for(i=0;i<15;i++)
{
for(j=0;j<15-i;j++)
{
if(a[j]<a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
printf("the sorted number is:\n");
for(i=0;i<15;i++)
printf("%5d",a[i]);
printf("\n");getchar();
}
#include<time.h>
#include<stdlib.h>
//我将你手动输入的部分改成了随机生成数字,别介意
void main()
{
int i,j,t,a[15];
printf("enter data:\n");
srand((int)time(0));
for(i=0;i<15;i++)
{
a[i]=rand()%500;
}
printf("\n");
printf("the original data is:\n");
//你所定义的数组大小为15.所以你的数组地址为0~14将16处全部改成15
for(i=0;i<15;i++)
{
printf("%5d",a[i]);
}
//冒泡排序中内侧的循环才是比较需要的。
for(i=0;i<15;i++)
{
for(j=0;j<15-i;j++)
{
if(a[j]<a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
printf("the sorted number is:\n");
for(i=0;i<15;i++)
printf("%5d",a[i]);
printf("\n");getchar();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-09-26
for(i=0;i<16;i++) 第6行,应该是for(i=0;i<15;i++) 是15,从0开始的到14一共是15个数字
数组边界越界会发生指针错误
其他的for循环也一样的错了
改过来就行
数组边界越界会发生指针错误
其他的for循环也一样的错了
改过来就行
第2个回答 2013-09-26
for(i=0;i<15;i++)
{
for(j=i;j<15;j++)
{
if(a[i]<a[j])
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
其他地方更改:
16都改成15
{
for(j=i;j<15;j++)
{
if(a[i]<a[j])
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
其他地方更改:
16都改成15
第3个回答 2013-09-26
1、数组长度。15个数字 里面的16全改15 否则越界了~~
2、调换的错误:
for(j=0;j<15-i;j++){
if(a[i]<a[i+1])
{
t=a[i+1];
a[i+1]=a[i];
a[i]=t;
}
}
第4个回答 2013-09-26
把scanf("%5d",&a[i]);改成scanf("%d",&a[i]);
%5d 主要是用在显示的缩进上面,输入不用!!
还有越界的问题,a[15]是从a[0] 到a[14],
%5d 主要是用在显示的缩进上面,输入不用!!
还有越界的问题,a[15]是从a[0] 到a[14],