yueyufeng 发表于 2023-12-15 20:41:50

没输出

把保留的数逆序输出
#include<stdio.h>
int main()
{
    int a,i=0,j;
    while(1)
    {
      scanf("%d",&a);
      i++;
    }
    for(j=i-1;j>0;j--)
    {
      printf("%d ",a);
    }
    printf("%d",a);
    return 0;
}

FishC 发表于 2023-12-15 20:42:06

你的代码有两个问题。首先,在while循环中,你没有退出循环的条件。其次,在for循环中,你没有更新变量a的值。以下是修复后的代码:

#include <stdio.h>

int main()
{
    int a, i = 0, j;
    int numbers; // 假设最多输入100个数
   
    while (1)
    {
      scanf("%d", &a);
      if (a == 0) // 假设输入0表示结束输入
            break;
      
      numbers = a;
      i++;
    }
   
    for (j = i - 1; j >= 0; j--)
    {
      printf("%d ", numbers);
    }
   
    return 0;
}

在修复的代码中,我们使用一个数组numbers来保存输入的数字。当输入0时,表示输入结束,然后使用for循环逆序输出数组中的数字。注意,我们将i的初始值设为0,而不是1,是因为数组的下标从0开始。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

sfqxx 发表于 2023-12-15 21:12:41

这个C语言程序在输入部分是一个无限循环,因此程序会持续接收输入,直到手动停止,否则它将一直运行下去。此外,输出部分的代码没有在输入循环结束后写入,这也是程序不会输出任何内容的原因。如果您想在输入特定的数之后停止接收,并输出逆序的数值,那么您可以尝试以下修改后的代码:

#include<stdio.h>
int main()
{
    int a,n,i;
    scanf("%d",&n); // 输入你要输入的数字的数量
    for(i=0;i<n;i++){
      scanf("%d",&a);
    }
    for(i=n-1;i>0;i--){
      printf("%d ",a);
    }
    printf("%d ",a);
    return 0;
}
在这个程序中,它将首先询问您要输入多少个数字,然后您可以按照这个数量输入您的数字,最后,它会以逆序的方式打印出这些数字。

求最佳答案
页: [1]
查看完整版本: 没输出