【问题标题】:How to give multi line input in c without using array如何在不使用数组的情况下在c中给出多行输入
【发布时间】:2015-01-02 11:41:25
【问题描述】:

例如,我想返回一次输入的许多数字的阶乘 终端的第一行询问要返回多少个数字,然后从第二行开始,用户在每行输入数字,这应该不使用数组来完成,请帮助我被困在这里

Input
    3
    4
    5
    2

这是输出

 Output
    24
    120
    2

【问题讨论】:

  • 提示:使用realloc()。期间。
  • @shreesh 首先让我清楚的是,您如何一次将许多输入用于阶乘以及将其存储在哪里...
  • 你尝试了什么?为什么“无数组”要求?堆内存区域算作数组吗?

标签: c io factorial


【解决方案1】:

你可以这样做

while( fgets(buf, sizeof buf,stdin) != NULL)
{
   // Use `atoi(buf)` to get your integers
}

【讨论】:

    【解决方案2】:

    您可以使用readline(例如在Linux 上)或getline(3)(在POSIX 上)-或fgets到处-来阅读 该行和strtol(3) 解析它。你可以有一个do...while 循环使用feof(3)(在某些输入函数之后调用)作为停止条件。

    另外,fscanf(3)(以及 scanf̀ orsscanf̀ 等相关函数)返回成功扫描项目的数量,如果使用这些函数,您应该对其进行测试。

    【讨论】:

      【解决方案3】:

      这看起来像是一个家庭作业问题,或者来自教科书。

      这种类型的问题通常不需要您在产生任何输出之前接受所有输入。即使输入和输出是分开列出的,您的程序也可以交错其读取和写入过程。

      所以您可以使用 scanf 或任何其他方法一次读取一个数字,然后 读取每个数字后产生适当的输出。

      对于这个问题,您不需要数组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-20
        • 2021-09-17
        • 2021-05-24
        • 2018-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多