#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;
}
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
为什么在连续输入两个字符的时候程序就结束了
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
墨梅无痕 2022-02-12 03:24关注不是连续输入两个字母程序会结束,就是输入一个字母程序也会结束。
int main() { float num = 0; double sum = 0; int status; // 这个 do 循环用于读取多行数据 do { printf("Input number:"); // 这个 do 循环用于读取一行上的多个数 do { sum = sum + num; // 这句明确是读取浮点数,当读取到字母时, scanf 返回 0,则status == 0,退出循环。 status = scanf("%f", &num); }while((getchar() != '\n') && (status == 1)); }while(status == 1); printf("Result: %2lf\n", sum); // 猜测这里输出是要保留两位小数,则格式应为 %0.2lf return 0; }
用字母作为退出循环的条件,这是必要的,否则就成死循环了。
参阅:scanf()函数详解 http://c.biancheng.net/cpp/html/34.html本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报 编辑记录微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容关注码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
初阶码 2022-02-18 12:50这个程序是用户同一行输入多个数字,数字之间可以是任意一个分隔符
赞回复编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
回复按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2020-05-15 09:28回答 2 已采纳 ``` #include using namespace std; int diff(char ch1, char ch2) { if (ch1 > ch2) return ch
- 2022-03-18 01:58回答 3 已采纳 char a='a'char b = a-1;char c = a+1;b和c就是a前后的两个字符如下: #include <stdio.h> int main() { char
- 2018-10-10 15:48回答 2 已采纳 #include #include using namespace std; string StrCon(const string& a, const string& b) { strin
- 2016-10-07 14:52{{7*'7'}}的博客 昨天用C编程,遇到一个关于scanf的细节问题,假如运行如下程序: #include int main() { char ch1,ch2; printf("Input for ch1:/n"); scanf("%c",&ch1); printf("ch1=%c/n",ch1); printf("Input ...
- 2018-10-26 17:48回答 1 已采纳 ``` 楼主:char *p[5];这里你只是定义声明了p是一个数组指针,该数组共有5个元素,其中每个元素是一个指针。需要对每个指针申请一个char大小的内存空间才能向其中赋值。 不然肯定
- 2022-03-08 15:31回答 3 已采纳 参考: #include <iostream> using namespace std; int main() { char ch; int A=0,a=0,digit
- 2022-05-29 02:29回答 2 已采纳 #include<stdio.h> void fun(char* s,int m,int n) { int i; for(i = m-1; i <(m+n-1);
- 2021-07-21 02:00一块石头子的博客 一、可编程控制器的编程语言PLC为用户提供了完整的编程语言,以适应编制用户程序的需要。PLC提供的编程语言通常有以下几种:梯形图、指令表、功能图和功能块图。下面以S7-300系列PLC为例加以说明。1...
- 2021-05-12 08:16回答 3 已采纳 #include <string> int main() { char c; c=getchar(); char ch[80] = { 0 }; gets(ch); i
- 2021-05-13 12:25回答 4 已采纳 // 删除数字 #include <stdio.h> #define N 100 int main(void) { char s[N]; int j,k; gets(s);// 输
- 2021-07-27 03:35回答 2 已采纳 通过ASCII码就行,很简单。
- 2021-01-03 10:44虚伪的小白的博客 来自:编程剑谱我应该比大多数读者年龄都要大一些,所以我就自称”谱哥“,做事靠谱,为人靠谱的意思;针对 C 语言三大核心:数组、指针、函数,今天继续写技术文章。上次 C 语言写到了数组,有些书是先讲指针,有些...
- 2021-07-15 11:02回答 3 已采纳 测试代码没有问题。你 scanf_s("%s", fname);改成 scanf("%s", fname);试试
- 2021-11-30 11:27阔升的博客 汇编语言程序设计一,汇编语言程序设计概述1,程序设计语言2,汇编语言源程序3,汇编语言程序开发过程二,汇编语言基本语法(重点)1,汇编语言的语句类型2,常量、标识符和表达式3,汇编语言程序伪指令(重点)4,DOS...
- 2023-12-26 14:15鹧鸪沁鲤的博客 本实验将通过编写一个简单的汇编程序来比较两个字符串是否相等。程序将定义两个字符串S1和S2,比较它们是否完全匹配,并根据比较结果输出“Match!”或“No match!
- 没有解决我的问题, 去提问
问题事件
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司