函数,为什么输入1总是不行?

#include<stdio.h>

int main()

{

int a[10], i, n;

scanf("%d", &n);

for (i = 0; i < n; i++)

scanf("%d", &a[i]);

printf("排序之前的数组:");

for (i = 0; i < n; i++)

printf("%d ", a[i]);

sort(a, n);

printf("\n排序之后的数组:");

for (i = 0; i < n; i++)

printf("%d ", a[i]);

}

int sort(int a[], int n)

{

int i, j, k, t;

for(i=0;i<n;i++)

    {

      k=i;

  for(j=i+1;j<n;j++)

    if(a[j]<a[k])

    k=j;

   t=a[i];

    a[i]=a[k];

      a[k]=t;

}

}

for(j=i+1;j<n;j++)

进入不了这个for循环,无法进行排序。

不是输1不行,是你没有提示,第一个输的是数组大小,还要再输一次才是往数据插入1个数据,输入之前加点提示

int a[10], i, n;

printf("请输入数据个数:");

scanf("%d", &n);

printf("请依次输入%d个数据:",n);

for (i = 0; i < n; i++)

scanf("%d", &a[i]);

printf("排序之前的数组:");

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632