我想返回例如一次输入的许多数字的阶乘 终端的第一行询问有多少个因子从第二行返回,用户输入每行的数字,这应该不使用数组请帮助我被困在这里
Input
3
4
5
2
这是输出
Output
24
120
2
答案 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或任何其他方法一次读取一个数字然后 在读取每个数字后产生合适的输出。
对于这个问题,你不会需要一个阵列。