如何在不使用数组的情况下在c中给出多行输入

时间:2015-01-02 11:41:25

标签: c io factorial

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

Input
    3
    4
    5
    2

这是输出

 Output
    24
    120
    2

3 个答案:

答案 0 :(得分:0)

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

此外,fscanf(3)(以及scanf̀ or sscanf等相关功能)会返回成功扫描的项目数,如果使用这些功能,则应进行测试。

答案 1 :(得分:0)

您可以执行类似

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

答案 2 :(得分:0)

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

此类问题通常不要求您在生成任何输出之前接受所有输入。即使输入和输出是单独列出的,您的程序也可以交错其读写过程。

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

对于这个问题,你不会需要一个阵列。