m0_61873236 2022-02-09 12:56 采纳率: 85%
浏览 115
已结题

c语言程序要求的问题

c语言初学者
编写一个程序 程序要求:输入数字 当按下ctrl+D的时候将数字反转
例子:

Enter numbers forwards:
10
50
20
40 
(CTRL+D)
Reversed:
40
20
50
10


Enter numbers forwards:
5
4
-3
-2
-1 
(CTRL+D)
Reversed:
-1
-2
-3
4
5

这是我已经写的输入数字的代码 想问下接下来该怎么做:

 #include <stdio.h>

   int i;
   int number[999];
   
   printf("Enter numbers forwards:");
   while(1) {
   for(i=0;i<999;i++) {
   scanf("%d",number[i]);
  • 写回答

4条回答 默认 最新

  • _GX_ 2022-02-09 16:35
    关注

    前面几个人都写错了,scanf()返回的是成功读入数据的个数,但是如果遇到输入流结尾或读取错误,返回的是EOF,一般EOF定义为-1,所以正确的写法应该是判断scanf()的返回值是否为1
    在Windows系统的终端下,按ctrl+z再回车表示输入流结束
    在Linux/Unix系统的终端下,按ctrl+d表示输入流结束

    #include <stdio.h>
    
    #define N 100
    
    int main()
    {
        int a[N], i = 0;
        printf("Enter numbers forwards:\n");
        while (i < N && scanf("%d", &a[i]) == 1) // 判断i<N防止数组越界,判断scanf()返回值确定读入数据成功,如果scanf()遇到输入流结尾或提取错误,返回的是EOF
            i++;
        printf("Reversed:\n");
        while (i > 0) // 逆序输出,i是已输入数据的个数
            printf("%d\n", a[--i]);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月9日
  • 已采纳回答 2月9日
  • 创建了问题 2月9日