C语言中,如何输入一段浮点型数据,然后以回车终止输入。
C语言中,如何输入一段浮点型数据,然后以回车终止输入?比如,输入几个学生(数目事先不指定,根据输入指定)的成绩,最后回车,终止输入我写了程序,编译无错误,但无法运行:do...
C语言中,如何输入一段浮点型数据,然后以回车终止输入?
比如,输入几个学生(数目事先不指定,根据输入指定)的成绩,最后回车,终止输入
我写了程序,编译无错误,但无法运行:
do
{
scanf("%f",&score[i]);
i++;
}
while(score!='/n');
运行后,无法回车终止,只有 esc强行退出 展开
比如,输入几个学生(数目事先不指定,根据输入指定)的成绩,最后回车,终止输入
我写了程序,编译无错误,但无法运行:
do
{
scanf("%f",&score[i]);
i++;
}
while(score!='/n');
运行后,无法回车终止,只有 esc强行退出 展开
展开全部
do
{
scanf("%f",&score[i]);
i++;
a=getchar();
if(a == '\n')
break;
}
while(1);
{
scanf("%f",&score[i]);
i++;
a=getchar();
if(a == '\n')
break;
}
while(1);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
TableDI
2024-07-18 广告
2024-07-18 广告
在Excel中,字符串匹配函数主要用于查找和定位特定字符串在文本中的位置或进行替换操作。常用的字符串匹配函数包括FIND、SEARCH、SUBSTITUTE和REPLACE等。FIND和SEARCH函数用于查找字符串的位置,而SUBSTIT...
点击进入详情页
本回答由TableDI提供
展开全部
一、你的错误:
0. while(score!='/n'); score 是数组名,是指针,指针和 ‘\n' 比较,如果你的编译器都没有警告,
那么换代这个编译器把!
1.按照你的思路,比较应该是 score[i]!=‘\n'.但是这个不可能等的,一定是死循环,因为score[i]
不会把‘\n' 读入,换行,空格,tab都会作为分割符,但是不会读入。
二、输入事先不知到具体个数,怎样终止
0. 一般都是用一个特殊终止数,比如-1什么的了。但本问题不适合,因为正确取值很可能会是-1.
1. 可以将浮点数用字符串输入, 比如输入 123.045 作为一个字符串输入,然后再把字符转化成浮点数,这样就可以用 '#'之类的特殊字符来结束。
标准库提供了一个函数 double atof(const char *nptr); 用于将字符串转换成 double 型。其头文件文件为 <stdlib.h>
实例代码:
#include <stdio.h>
#include <stdlib.h>
#define SCORE_LENGTH 20
int main()
{
double score[SCORE_LENGTH] = {0.0};
char input_tmp[20];
int counts = 0;
scanf("%s",input_tmp);//存在溢出危险,本例只是演示
while( input_tmp[0] != '#' && counts < SCORE_LENGTH){//遇到#结束,输入个数
score[counts++] = atof(input_tmp);
scanf("%s",input_tmp);
}
//输出结果
int i = 0;
while( i < counts){
printf("%f%c",score[i],i == (counts - 1) ?'\n':' ');
i++;
}
return 0;
}
测试:
输入:123 456.123 0.123 -123.123 94512.45613 #
输出:123.000000 456.123000 0.123000 -123.123000 94512.456130
希望我的回答能给你带来帮助!
0. while(score!='/n'); score 是数组名,是指针,指针和 ‘\n' 比较,如果你的编译器都没有警告,
那么换代这个编译器把!
1.按照你的思路,比较应该是 score[i]!=‘\n'.但是这个不可能等的,一定是死循环,因为score[i]
不会把‘\n' 读入,换行,空格,tab都会作为分割符,但是不会读入。
二、输入事先不知到具体个数,怎样终止
0. 一般都是用一个特殊终止数,比如-1什么的了。但本问题不适合,因为正确取值很可能会是-1.
1. 可以将浮点数用字符串输入, 比如输入 123.045 作为一个字符串输入,然后再把字符转化成浮点数,这样就可以用 '#'之类的特殊字符来结束。
标准库提供了一个函数 double atof(const char *nptr); 用于将字符串转换成 double 型。其头文件文件为 <stdlib.h>
实例代码:
#include <stdio.h>
#include <stdlib.h>
#define SCORE_LENGTH 20
int main()
{
double score[SCORE_LENGTH] = {0.0};
char input_tmp[20];
int counts = 0;
scanf("%s",input_tmp);//存在溢出危险,本例只是演示
while( input_tmp[0] != '#' && counts < SCORE_LENGTH){//遇到#结束,输入个数
score[counts++] = atof(input_tmp);
scanf("%s",input_tmp);
}
//输出结果
int i = 0;
while( i < counts){
printf("%f%c",score[i],i == (counts - 1) ?'\n':' ');
i++;
}
return 0;
}
测试:
输入:123 456.123 0.123 -123.123 94512.45613 #
输出:123.000000 456.123000 0.123000 -123.123000 94512.456130
希望我的回答能给你带来帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询