`定义一个可存放10个整数的一维数组,对数组中的数据进行排序,其中输入、输出、排序均由编写函数完成,函数定义采用指针变量作为函数的形式参数。
#include
int input(int *p)
{
int i;
for(i=0;i<10;i++)
scanf("%d",&p[i]);
return *p;
}
int output(int *p)
{
int i;
for(i=0;i<10;i++)
printf("%d ",p[i]);
printf("\n");
}
int sort(int *p)
{
int i,j;
int temp;
for(i=0;i<10;i++)
for(j=0;j<10-i;j++)
if(p[j+1]temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
int main()
{
int a[10];
input(a);
sort(a);
output(a);
return 0;
}
把所有for循环都改成i=1;i<=10即可。
#include<stdio.h>
int input(int *p)
{
int i;
for(i=1;i<=10;i++)
scanf("%d",&p[i]);
return *p;
}
int output(int *p)
{
int i;
for(i=1;i<=10;i++)
printf("%d ",p[i]);
printf("\n");
}
int sort(int *p)
{
int i,j;
int temp;
for(i=1;i<=10;i++)
for(j=1;j<=10-i;j++)
if(p[j+1]<p[j])
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
int main()
{
int a[10];
input(a);
sort(a);
output(a);
return 0;
}
望采纳。
i= 0; j循环 到 9, j+1 = 10, p[10] 这不越界了嘛