作者:@小萌新
专栏:@C语言复习
作者简介: 大二学生 希望能和大家一起进步!
本篇博客简介:回顾之前的分支循环以及一些题目博客
这里面很多知识好像也没有什么好讲解的
大部分都是我们常用的知识 不管是写项目还是刷题的时候都一直在用
可能唯一需要讲解的就是一个switch case语句了吧
int main()
{int day = 0;cin >> day;switch (day){case 1: cout << "周内";case 2:cout << "周内";case 3:cout << "周内";case 4:cout << "周内";case 5:cout << "周内";case 6:cout << "周末";case 7:cout << "周末";default:cout << "出bug啦!!";break;}return 0;
}
由于不常用所以它的一些特性也差不多快忘光了
比如说上面这样子 就是因为没有加break出现的bug
getchar是获取一个字符
putchar是输出一个字符
而eof是文件结束的标志 实际上它的值就是-1 我们可以使用ctrl+z来模拟它的实现
下面我们开始设计一个程序 如果它是一个小写字符就把他转化成大写字符并且输出
如果他是一个大写字符我们就把它转化成小写字符并且输出
int main()
{char ch;while ((ch = getchar())!=EOF){if (ch >= 'a' && ch <= 'z'){ch -= 32;putchar(ch);}else if (ch >= 'A' && ch <= 'Z'){ch += 32;putchar(ch);}else{cout << endl;}}return 0;
}
代码并不难 这里主要主义的就是EOF的使用当我们要多次输入的时候我们可以使用EOF来解决这个问题
两个题目都不难 当时老师出这俩题目应该是考验我们对于字符串的比较(strcmp)是否熟练
一个是输入密码三次 如果三次都输错就锁定 如果对了就打印成功进入
int main()
{char passward[] = "abcdef";char arr[20] = "";int i = 0;for ( i = 0; i < 3; i++){cin >> arr;if (strcmp(arr,passward)== 0){cout << "密码输入正确" << endl;break;}else{cout << "密码输入错误" << endl;}}if (i == 3){cout << "连续输入错误三次 账号已锁定" << endl;}return 0;
}
说不上有什么难度 想想看很神奇 两个月自己的代码水平就进步了这么多
还有一个题目大同小异 在规定时间内输入密码 否则电脑就会关机
int main()
{char input[20] = "";cout << "注意!你的电脑将在一分钟内关机 请输入 123 以取消关机 " << endl;system("shutdown -s -t 60");
again:cin >> input;if (strcmp(input, "123") == 0){system("shutdown -a");}else{cout << "输入错误请重新输入!" << endl ;goto again;}return 0;
}
这段代码也没有什么难点 有需要注意的地方就是我们使用的system命令 还有一个goto的用法
还有几道求阶乘的题目实在是太简单了我就懒得写了
还有一道比较有意思的题目是这样子的
int main()
{char arr1[12] = "hello world";char arr2[12] = "###########";int left = 0;int right = 10;cout << arr2 << endl;Sleep(1000);while (left <= right){arr2[left] = arr1[left];arr2[right] = arr1[right];left++;right--;cout << arr2;Sleep(1000);system("cls");}cout << arr2;return 0;
}
代码表示如下
这道题目重做一遍还是比较有意义的
从这里我学会了sleep这个函数其实是包含在windows这个头文件下面的
以及使用system的cls命令
对于初步接触C语言时候的题目 现在做起来已经可以得心应手了
希望自己能够变得越来越强 在两个月后做现在学的题目也可以得心应手起来