#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
double sum = 0;
int ii = 0;
char buf[256], *token;
printf("Enter the numbers to average on a single line, separated by space and press enter when done\n");
fgets(buf, 255, stdin);
token = strtok(buf, " ");
while (token != NULL)
{
sum += atof(token);
ii++;
token = strtok("", " "); // Get next number
}
printf("Average is %lf", sum / (double)ii);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上述程序是为了找到用户给出的大量数字.该程序没有错误.我有代码的这些问题:
当你运行它时,它会要求你输入nos.由您找到平均值的空格分隔.当您输入以空格分隔的数字时 - 例如您输入 - 9080 5749 4343 8509 9790,然后它将打印第一个数字作为答案(即9080).如果输入9497 795 88,则会打印"Average is 9497.00000000".如果您输入27 59 05,则会打印"平均值为27.0000000"等等.
任何人都能说出它的错误吗?我尝试用getline()替换代码的gets()但它在输出上给出了"Segmention Fault"错误.