scanf后加空格,的后果

本文介绍了一个C语言实现的选择排序算法示例,通过定义一个独立的排序函数来完成数组的排序,并解决了输入过程中出现的额外输入问题。

最近练习C语言函数,用函数进行选择排序

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     void sort(int array[],int n);
 6     int i,slist[10];
 7 
 8     for (i = 0; i<10 ;i++)
 9     {
10         scanf("%d ",&slist[i]);
11     }
12     sort(slist,10);
13     printf("The sorted array:\n");
14     for(i= 0;i <10;i++)
15     {
16         printf("%3d",slist[i]);
17     }
18     printf("\n");
19     return (0) ;
20  } 
21  
22  void sort(int array[],int n)
23  {
24      int i,j,k,m;
25      for(i = 0;i < n-1;i++)
26      {
27          k = i;
28          for(j = i+1;j < n; j++)
29          {
30              if(array[j]<array[k])
31              {
32                  k = j;
33             }
34          }
35         m = array[i];
36          array[i] = array[k];
37          array[k] = m;
38      }
39  }

调试运行后,输入完数组后总要再输入一个数才能显示结果。在网上找到选择排序的方法,发现代码内容一样就是找不到错误。经过多番询问,得知scanf %d后不需要加空格

 

#include <stdio.h>

int main()
{
    void sort(int array[],int n);
    int i,slist[10];

    for (i = 0; i<10 ;i++)
    {
        scanf("%d",&slist[i]);
    }
    sort(slist,10);
    printf("The sorted array:\n");
    for(i= 0;i <10;i++)
    {
        printf("%3d",slist[i]);
    }
    printf("\n");
    return (0) ;
 } 
 
 void sort(int array[],int n)
 {
     int i,j,k,m;
     for(i = 0;i < n-1;i++)
     {
         k = i;
         for(j = i+1;j < n; j++)
         {
             if(array[j]<array[k])
             {
                 k = j;
            }
         }
        m = array[i];
         array[i] = array[k];
         array[k] = m;
     }
 }

去掉scanf 里面的空格

转载于:https://www.cnblogs.com/Pythonstart/p/5946145.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值