nihongdengxia 发表于 2020-11-10 17:39:21

数字的大小排列问题,输入10个数字输出从小到大。输入字母后会出错,求指点,谢谢啦。

#include <stdio.h>

int main()
{

        int a;
        intj, swap;
        int i=0;

        for (i = 0; i < 10; i++)
        {
          
          printf("请输入100000以内的数字,第%d个数字是",i+1);
          scanf("%d", &a);
          
          if((a<='z'&&a>='a')||(a<='Z'&&a>='A'))
          {printf:("要输入的是数字");
          
          }
       
   }
        for (i = 1; i < 9; i++)
                for (j = 0; j < 9-i; j++)
                        if (a > a)
                        {
                                swap = a;
                                a = a;
                                a = swap;
                        }

        for (i = 0; i < 10; i++)
          
                printf("%d ", a);


        return 0;
}

jackz007 发表于 2020-11-10 18:19:00

本帖最后由 jackz007 于 2020-11-10 18:21 编辑

#include <stdio.h>
#include <string.h>

int main()
{
      char s                                                            ;
      int a, i , j , k , swap                                          ;
      for (i = 0 ; i < 10 ; i ++) {
                do {
                        printf("请输入100000以内的数字,第%d个数字是 : " , i + 1) ;
                        fflush(stdout)                                           ;
                        fgets(s , 256 , stdin)                                 ;
                        k = sscanf(s , "%d" , & a)                            ;
                        if(! k) printf("要输入的是数字!\n\n")                   ;
                } while(! k)                                                   ;
      }
      for(i = 1 ; i < 10 ; i ++) {
                for(j = i ; j && a < a ; j --) {
                        swap = a                                    ;
                        a = a                                    ;
                        a = swap                                          ;
                }
      }
      printf("%d" , a)                                                ;
      for(i = 1 ; i < 10 ; i ++) printf("\t%d" , a)                     ;
      printf("\n\n")                                                       ;
}
      编译、运行实况:
D:\0002.Exercise\C>g++ -o x x.c

D:\0002.Exercise\C>x
请输入100000以内的数字,第1个数字是 : 9
请输入100000以内的数字,第2个数字是 : 8
请输入100000以内的数字,第3个数字是 : 7
请输入100000以内的数字,第4个数字是 : A
要输入的是数字!

请输入100000以内的数字,第4个数字是 : 6
请输入100000以内的数字,第5个数字是 : C
要输入的是数字!

请输入100000以内的数字,第5个数字是 : 5
请输入100000以内的数字,第6个数字是 : 0
请输入100000以内的数字,第7个数字是 : 1
请输入100000以内的数字,第8个数字是 : 2
请输入100000以内的数字,第9个数字是 : 3
请输入100000以内的数字,第10个数字是 : 4
0       1       2       3       4       5       6       7       8       9


D:\0002.Exercise\C>
页: [1]
查看完整版本: 数字的大小排列问题,输入10个数字输出从小到大。输入字母后会出错,求指点,谢谢啦。