|
10鱼币
#include <stdio.h>
int main()
{
float num = 0;
double sum = 0;
int status;
do
{
printf("请输入合法的数字:");
do
{
sum = sum + num;
status = scanf("%f", &num);
} while (getchar() != '\n' && status == 1);
} while(status == 1);
printf("结果是:%.2lf\n", sum);
return 0;
}
本帖最后由 superbe 于 2019-11-3 13:48 编辑
do {
sum = sum + num;
status = scanf("%f", &num);
} while (getchar() != '\n' && status == 1);
1. 先执行scanf读入一个数,
2. 再getchar()接收一个字符,不只是逗号和空格,换成其它字符也会被接收,这个字符相当于被“吃掉”了,
3. 然后再执行scanf时从上述的字符后面一个字符重新开始读取。如果不是数字(忽略开头的空白字符)就退出循环。
这样就可以逗号或空格为分隔符,读取多个数了。
|
最佳答案
查看完整内容
do {
sum = sum + num;
status = scanf("%f", &num);
} while (getchar() != '\n' && status == 1);
1. 先执行scanf读入一个数,
2. 再getchar()接收一个字符,不只是逗号和空格,换成其它字符也会被接收,这个字符相当于被“吃掉”了,
3. 然后再执行scanf时从上述的字符后面一个字符重新开始读取。如果不是数字(忽略开头的空白字符)就退出循环。
这样就可以逗号或空格为分隔符,读取多个数了。
|