【发布时间】:2013-05-28 22:18:40
【问题描述】:
我必须找到用户在命令行输入的双精度数的平均值,所以我的程序应该可以处理任意数量的输入。我知道我必须找到所有数字的总和,然后除以输入的数量。
我在想,要找到输入的数量,我会使用 sscanf 在我的参数列表中读取“char *num”。因为 sscanf 返回读取的字符。然后我想用它来除以得到平均值。但是我的代码有问题。 :(
#include <stdio.h>
void average(int arg_list, char *num[])
{
int x;
double sum, average;
x = sscanf(num, "%s\n", &x);
for (int i = 0; i != '\0'; i++)
{
sum = sum + num[i];
}
average = sum/x;
printf("%lf\n", average);;
}
int main(int argc, char *argv[])
{
if (argc == 0)
{
perror("Error!\n");
}
average(argc, argv);
}
具体来说,当我尝试编译我的程序时,编译器会抱怨“sscanf”和总和。 :/
【问题讨论】:
-
一个问题是
sscanf中的格式字符串使用%s来扫描整数。你试过%d吗? -
哦!让我看看有没有帮助,谢谢! :)