找错,运行结果最前面多了一个1

`定义一个可存放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; 
}

img

把所有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] 这不越界了嘛

img