博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
001.输入不定的情况
阅读量:4350 次
发布时间:2019-06-07

本文共 3088 字,大约阅读时间需要 10 分钟。

1.连续输入多个整型数据

循环语句while和for:

  • while循环:
    1. 输入不定的情况下,使用while循环比较合适,在windows系统下,先敲Ctrl+Z,再按Enter ——适用于整型输入结束;
    2. 对于非整型数据(如字符串数据)的连续输入,则需要使用第二部分内容的方式;
  • for循环:
    1. 当输入确定的情况下,使用for语句比较方法,while也可以;
    2. 对于需要遍历容器或其他序列的所有元素,可以使用C++提供的范围for语句
      //范围for语句——示例vector
      v = {0,1,2,3,4,5,6,7,8,,9};//范围变量必需是引用类型,这样才能对元素执行写操作for (auto &r : v){r *= 2; //将v中元素值翻倍}  
/*数量不定的输入数据(整型)*/ //示例:实现对用户输入的一组数求和//文件结束符://windows系统:先敲Ctrl+Z,再按Enter ——适用于整型输入结束#include 
using namespace std;int main(){ int sum = 0, val = 0; //iostream对象作为条件 /*当遇到“文件结束符(end-of-file)”,或者遇到一个无效输入时,isteam对象的状态会变为无效*/ //处于无效状态的istram对象会使条件变为假 while (cin >> val) //敲Ctrl+Z,再按Enter结束输入 { sum += val; } cout << "Sum is " << sum << endl; return 0;}

2.连续输入多个字符串

//文件结束符://windows系统:先敲Ctrl+Z,再按Enter#include 
//编写一段程序从标准输入中读入多个字符串并将它们连接在一起//用空格把输入的多个字符串分割开,输出连接成的大字符串(只是中间需要隔开,第一个不需要,多一个if)#include
#include
using namespace std;int main(){ string s, result; //result用来保存最终的结果 char cont = 'y'; //与用户交互,cont用于判断是否继续收入 cout << "请输入第一个字符串:" << endl; while (cin >> s) { //if (result.size()==0)//判断读入的是第一个字符串,不加空格 if (!result.size())//推测,这样执行效率更高 { result += s; } else //之后拼接的字符串每一个前面都加空格 { result = result + " " + s; } cout << "是否继续输入?(y or n?):" << endl; //判断是否继续输入 cin >> cont; if (cont == 'y' || cont == 'Y') { cout << "请输入下一个字符串:" << endl; } else { break; } } cout << "最终结果为" << result << endl; return 0;}

 

3.复用实例:医学统计小程序

//连续不定输入的改写范例//如果要更严谨,还可以加入每个数据的输入范围的判断#include 
#include
using namespace std;int main(){ //HE:HepaticEncephalopathy 肝性脑病 int HE_num = 0; //Asc:ascites 腹腔积液 int Asc_num = 0; //Alb:albumin 白蛋白 int Alb_num = 0; //PT:PT延长 int PT_num = 0; //STB:serum total bilirubin 血清总胆红素 int STB_num = 0; //统计总分 int sum = 0; char cont = 'y'; //s是否继续输入 while (1){ cout << "肝性脑病(1代表无,2代表1-2级,3代表3-4级):" << endl; cin >> HE_num; cout << "腹腔积液(1代表无,2代表少量,3代表中大量):" << endl; cin >> Asc_num; cout << "白蛋白(1代表>35,2代表28~35,3代表<28):" << endl; cin >> Alb_num; cout << "PT延长(1代表<4,2代表4~6,3代表>6):" << endl; cin >> PT_num; cout << "血清总胆红素(1代表<34,2代表34~51,3代表>51):" << endl; cin >> STB_num; sum = HE_num + Asc_num + Alb_num + PT_num + STB_num; //空两行 cout << endl; cout << endl; if (sum == 5 || sum == 6) cout << "结果为:A"; else if(sum >= 7 && sum <= 9) cout << "结果为:B"; else if (sum >= 10 && sum <= 15) cout << "结果为:C"; else cout << "结果有误,请检查是否正确输入!"; //空两行 cout << endl; cout << endl; cout << "是否继续输入?(y or n?):"; //判断是否继续输入 cin >> cont; if (cont == 'y' || cont == 'Y') { cout << "请继续下一轮输入与统计:" << endl; } else { break; }} return 0;}

 

 

参考资料:

1.《C++ Primer》中文版(第五版),Stanley B.Lippman等著,电子工业出版社

转载于:https://www.cnblogs.com/paulprayer/p/9979166.html

你可能感兴趣的文章
在uefi引导的win8系统上装Ubuntu双系统
查看>>
Python中生成一个没有重复元素的随机序列??
查看>>
C++ 名字空间namespace的使用
查看>>
【转】C#中的两把双刃剑:抽象类和接口
查看>>
function,new function,Function,new Function 之间的区别
查看>>
Python作业题(列表,元组)
查看>>
跟踪OceanLotus的新下载程序KerrDown
查看>>
Android_2_如何将android虚拟设备的语言设置为简体中文
查看>>
2_图像处理中正交变换的目的是什么?图像变换主要用于那些方面?
查看>>
每天一个小程序:读取txt文件存储到excel 表中
查看>>
Linux ->> scp命令复制对端机器上的文件/文件夹
查看>>
hdu1014(水~)
查看>>
BZOJ 1025: [SCOI2009]游戏
查看>>
渗透测试全套教程(从原理到实战)
查看>>
2018年研究生数学建模优秀论文汇总
查看>>
oralce查被锁的session并kill掉
查看>>
TP5使用redis
查看>>
Python题目练习(二)
查看>>
吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-plus...
查看>>
吴裕雄--天生自然 JAVASCRIPT开发学习: 类型转换
查看>>