当前位置: 首页 > article >正文

C++学习笔记(25)

三、循环计数
有两个任务:
1)采用一个 while 循环,把 1 到 100 之间的数值累加起来。
2)采用一个 for 循环,把用户每次从键盘输入的数值累加起来,如果总和超过了 5000,循环结束。
示例:
#include <iostream>
using namespace std;
int main()
{
// 用一个 while 循环,把 1 到 100 之间的数值累加起来。
/*int ii = 1;
int sum = 0;
while (ii<=100)
{
sum = sum + ii;
ii++;
}
cout << "sum=" << sum << endl;*/
// 采用一个 for 循环,把用户每次从键盘输入的数值累加起来,如果总和超过了 5000,循环结
束。
int sum = 0;
for (sum=0; sum<=5000; )
{
int val = 0;
cout << "请输入一个数字:"; cin >> val;
sum = sum + val;
}
}
四、循环选数
有两个任务:
1)用一个 while 循环,接受从键盘输入的整数,如果输入的整数不在 1 到 100 之间(包括 1 和 100),
认为无效,丢弃;如果输入的整数在 1 到 100 之间,则把每次输入的值累加起来;如果输入的整数为 0,
跳出循环。最后,显示有效数据的个数和总和。
2)输出 1 到 100 之间(包括 1 和 100)的能整除 5 的数字。
示例一:
#include <iostream>
using namespace std;
int main()
{
// 1)用一个 while 循环,接受从键盘输入的整数,
// 如果输入的整数不在 1 到 100 之间(包括 1 和 100),认为无效,丢弃;
// 如果输入的整数在 1 到 100 之间,则把每次输入的值累加起来;
// 如果输入的整数为 0,跳出循环。
// 最后,显示有效数据的个数和总和。
int val; // 存放从键盘输入的整数。
int ii = 0; // 存放有效数据(1 到 100 之间)的个数。
int sum = 0; // 存放有效数据的总和。
while (true)
{
cout << "请输入一个整数:"; cin >> val;
if (val == 0) break;
else if (val < 1 || val>100) continue;
else
{
// 整数在 1 到 100 之间的有效数据。
ii++;
sum += val;
}
}
cout << "有效数据的个数=" << ii << ",有效数据的总和=" << sum << endl;
}
示例二:
#include <iostream>
using namespace std;
int main()
{
// 输出 1 到 100 之间(包括 1 和 100)的能整除 5 的数字。
for (int ii = 5; ii <= 100; ii = ii + 5)
{
cout << ii << " ";
}
cout << endl;
for (int ii = 1; ii <= 100; ii++)
{
if (ii%5==0) cout << ii << " ";
}
cout << endl;
}
五、玩转字符
有三个任务:
1)从界面上输入一个字母,显示该字母后面的字母,如果后面没有字母,给出提示。不允许用 if…e
lse if…和 switch 语句。a b A B
2)自定义一个函数,把字符的'0'、'1'、'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'转换为整数的 0、1、2、
3、4、5、6、7、8、9。不允许用 if…else if…和 switch 语句。
函数原型:
int ctoi(const char ch); // ch 为字符'0'、'1'、'2'、…'9',返回值为整数 0、1、2、…9。
调用示例:
cout << ctoi('0') << endl; // 输出结果是 0。
cout << ctoi('1') << endl; // 输出结果是 1。
cout << ctoi('9') << endl; // 输出结果是 9。
3)实现字符操作常用库函数的功能,如下:
int isalpha(int ch); // 若 ch 是字母('A'-'Z','a'-'z')返回非 0,否则返回 0。
int isalnum(int ch); // 若 ch 是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非 0,否则返回 0。
int isdigit(int ch); // 若 ch 是数字('0'-'9')返回非 0,否则返回 0。
int islower(int ch); // 若 ch 是小写字母('a'-'z')返回非 0,否则返回 0。
int isupper(int ch); // 若 ch 是大写字母('A'-'Z')返回非 0,否则返回 0。
int tolower(int ch); // 若 ch 是大写字母('A'-'Z'),则返回它的小写字母('a'-'z')。
int toupper(int ch); // 若 ch 是小写字母('a'-'z'),则返回它的大写字母('A'-'Z')。
示例一:
#include <iostream>
using namespace std;
int main()
{
// 1)从界面上输入一个字母,显示该字母后面的字母,如果后面没有字母,给出提示。
// 不允许用 if…else if…和 switch 语句。
char ch;
cout << "请输入一个字母:"; cin >> ch;
// 判断输入字符的合法性,如果不是字母,提示并退出。
if (!((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))) { cout << "输入的字符不是字母。
"; return 0; }
// 如果输入字符是'Z'和'z',后面没有字母,提示并退出。
if (ch == 'Z' || ch == 'z') { cout << "后面没有字母了。"; return 0; }
// 显示 ch 后面的字母。
cout << ch << "后面的字母是:" << (char)(ch + 1) << endl;
}
示例二:
#include <iostream>
using namespace std;
int ctoi(const char ch) // ch 为字符'0'、'1'、'2'、…'9',返回值为整数 0、1、2、…9。
{
return ch - '0';
}
int main()
{
// 2)自定义一个函数,把字符的'0'、'1'、'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9' // 转换为整数的 0、1、2、3、4、5、6、7、8、9。不允许用 if…else if…和 switch 语句。
cout << ctoi('0') << endl;
cout << ctoi('1') << endl;
cout << ctoi('2') << endl;
cout << ctoi('3') << endl;
cout << ctoi('8') << endl;
cout << ctoi('9') << endl;
}
示例三:
#include <iostream>
using namespace std;
int _isalpha(int ch); // 若 ch 是字母('A'-'Z','a'-'z')返回非 0,否则返回 0。
int _isalnum(int ch); // 若 ch 是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非 0,否则返
回 0。
int _isdigit(int ch); // 若 ch 是数字('0'-'9')返回非 0,否则返回 0。
int _islower(int ch); // 若 ch 是小写字母('a'-'z')返回非 0,否则返回 0。
int _isupper(int ch); // 若 ch 是大写字母('A'-'Z')返回非 0,否则返回 0。
int _tolower_(int ch); // 若 ch 是大写字母('A'-'Z'),则返回它的小写字母('a'-'z')。
// 若 ch 是小写字母('a'-'z'),则返回它的大写字母('A'-'Z')。
int _toupper_(int ch) {
if (ch >= 'a' && ch <= 'z') return ch - 32;
return ch;
}
int main()
{
char CC = _toupper_('x'); cout << "CC=" << CC << endl;
}
六、计算字符串的长度
从界面上输入一个字符串(C 风格),计算字符串的长度。如果输入的是"abcde",显示的结果是 5。
其它要求:
1)把计算字符串长度的功能封装成一个函数。
2)采用 for 循环,用数组表示法和临时变量计数。
3)采用 while 循环,用指针表示法和临时变量计数。
4)不用临时变量计数,用递归实现(奇巧淫技)。
示例:
#include <iostream>
using namespace std;
// 采用 for 循环,用数组表示法和临时变量计数。
//int length(char* str)
//{
// int len = 0;
// for (len = 0; str[len] != 0; len++)
// ;
//
// return len;
//}
// 采用 while 循环,用指针表示法和临时变量计数。
//int length(char* str)
//{
// int len = 0;
// char* ptr = str; // 指向字符串的开始。
//
// while (*ptr++) len++;
//
// return len;
//}
// 不用临时变量计数,用递归实现(奇巧淫技)。
int length(char* str)
{
if (*str == 0) return 0; // 递归中止的条件。
str++; // 后移一个字符。
int len = length(str) + 1; // 递归调用自己,递归每增加一层,字符串长度加 1。
return len;
// return length(++str) + 1;
}
int main()
{
// 从界面上输入一个字符串(C 风格),计算字符串的长度。
char str[31];
memset(str, 0, sizeof(str)); // 初始化是个好习惯。
cout << "请输入一个字符串:"; cin >> str;
cout << "字符串的长度是:" << length(str) << endl;
}
 


http://www.kler.cn/news/309394.html

相关文章:

  • TypeScript —枚举的应用
  • “拍照赚钱”的任务定价(2017数学建模国赛b题)
  • 中国农业银行——数据湖建设
  • 5V全桥驱动芯片单通道可替代型号LG9110S,应用于牙刷,电子锁,共享单车锁等产品中具有过温保护功能
  • Python模块化程序设计理念及实战
  • 【快慢指针】突破环形链表
  • 企微无限群发:精准营销与合规边界的探索
  • 性能测试的五大目标
  • 基于yolov8的舌苔识别检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • Meme“淘金”热潮下:Meme发射平台的安全风险分析
  • Python文本数据切分及HTML数据处理
  • bootstrapping in the main distro: listing WSL distros: running WSL xxxx
  • DevOps工程师的职业发展路径
  • 荣耀时刻|Anzo Capital 闪耀2024国际金融产业博览会
  • 尚航科技受邀出席腾讯全球数字生态大会,并重磅发布云智算中心共建计划
  • flutter widget.onPressed回调无效
  • 学会这个AI副业,小白也能轻松副业变现100+!
  • python内置模块pathlib.Path类操作目录和文件
  • 游戏各个知识小点汇总
  • web安全测试入门
  • 如何用安卓玩Java版Minecraft,安卓手机安装我的世界Java版游戏的教程
  • LabVIEW提高开发效率技巧----VI服务器和动态调用
  • 【Webpack--000】了解Webpack
  • 如何查看微信聊天记录?四种实用方法查询微信聊天记录,赶快码住!
  • 分析内存动态加载PE文件
  • 第十一章 【后端】商品分类管理微服务(11.3)——商品管理模块 yumi-etms-goods
  • NLP与文本生成:使用GPT模型构建自动写作系统
  • 建筑机器人通用操作系统设计方案
  • Js中call、apply和bind的区别
  • C语言 | Leetcode C语言题解之第412题Fizz Buzz