本系列仅作为我自己学习时的总结,各位看官点点赞吧!

目录

1.计算n的阶乘

2.计算1!+2!+3!+...+10!

3.在一个有序数组中查找具体的某个数字。

4.编写代码,演示多个字符从两端移动,向中间汇聚。

5.编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。)


1.计算n的阶乘

思路:

要算n的阶乘,首先我们要有一个数n,n的阶乘是从1*2*3...*n的,所以还需要有一个循环变量i来一直相乘。

int main()
{int n = 0;scanf("%d", &n);int i = 0;int ret = 1;for (i = 1; i <= n; i++){ret = ret * i;}printf("%d\n", ret);return 0;
}

2.计算1!+2!+3!+...+10!

思路:

首先,我们依据上张图的代码,可以得出n的阶乘,那要求 1!+2!+3!+...+10!只需要将每一个数的阶乘加到一起,用一个sum变量保存即可。

int main()
{int n = 0;scanf("%d", &n);int i = 0;int ret = 1;int sum = 0;for (i = 1; i <= n; i++){ret = ret * i;sum = sum + ret;}printf("%d\n", sum);return 0;
}

3.在一个有序数组中查找具体的某个数字。

思路:

(二分查找)这里我直接就用图片来讲解二分查找的过程了

字丑,希望大家多多担待。

这也是二分查找的代码

int main()
{int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int k = 12;int sz = sizeof(arr) / sizeof(arr[0]);//这里是求数组末端下标的一种方式int left = 0;int right = sz - 1;//int mid = (left + right) / 2;/*int mid = left + (right - left) / 2;*///这里用下面这种写法更好。while (left<=right){//int mid = (left + right) / 2;int mid = left + (right - left) / 2;//这里用下面这种写法更好。if (arr[mid] < k){left = mid + 1;}else if (arr[mid] > k){right = mid - 1;}else{printf("找到了,下标是:%d\n", mid);break;}}if (left > right){printf("找不到了");}return 0;
}

这其中有几个需要注意的地方,

int mid = (left + right) / 2;
int mid = left + (right - left) / 2;
这里用下面这种写法更好。,因为整形类型大小是有范围的,万一你的两个数相加超出了范围,就会导致错误。

int sz = sizeof(arr) / sizeof(arr[0]);

这里是求数组末端下标的一种方式

4.编写代码,演示多个字符从两端移动,向中间汇聚。

思路:

welcome to anhui!!!!!!
######################
w####################!
we##################!!
wel################!!!
...
welcome to anhui!!!!!!

首先,不管三七二十一,我们要有两个数组,然后就是把上面的数组的元素覆盖到下面的数组上去即可,再来个循环。

#include <string.h>
#include <windows.h>
#include <stdlib.h>
//
int main()
{char arr1[] = "welcome to anhui!!!!!!";char arr2[] = "######################";int left = 0;int right = strlen(arr1) - 1;while (left<=right){arr2[left] = arr1[left];arr2[right] = arr1[right];printf("%s\n", arr2);left++;right--;Sleep(1000);system("cls");}printf("%s\n", arr2);return 0;
}

这里要注意,两个库函数,Sleep是包含在stdlib这个头文件中的,单位是毫秒。system是windows自带的,而clc则是清屏的命令。

5.编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。)

思路:

只能登录三次,那就用一个变量来代表三次,然后就是比较输入的字符串和密码是不是相等即可。

千万要注意两个字符串的比较是不能使用==
应该使用strcmp

int main()
{int n = 0;char password[20] = { 0 };//假设密码是abcdeffor (n = 1; n <= 3; n++){printf("请输入密码:");scanf("%s", password);if (strcmp(password, "abcdef") == 0){printf("密码正确\n");break;}else{printf("重新输入密码\n");}}if (4 == n){printf("输入错误,退出程序\n");}return 0;
}

c语言刷题系列(三)相关推荐

  1. c语言刷题系列(一)

    本系列随着我的C语言系列而更新,我会讲解我在学习中碰到的问题,都是基础,都是干货.非常适用于新手,还请各位看官支持一下吧! 1.判断一个数是否为奇数 int main() {int n = 0;sca ...

  2. C语言刷题系列——14.(结构)计算两个复数之积15.按等级统计学生成绩16.根据成绩高低将学生记录排序

    几个与结构体相关的题 14.计算两个复数之积

  3. C语言刷题系列——5.使用函数判断完全平方数

  4. 牛客网C语言刷题(三)

    ✅作者简介:大家好我是:嵌入式基地,是一名嵌入式工程师,希望一起努力,一起进步!

  5. C语言刷题系列——9.在数组中查找指定元素

  6. C语言刷题系列——12.判断回文字符串

  7. leetcode刷题(三)——容斥原理

    leetcode刷题系列三.这一节的内容主要是容斥原理的题目和题解. 百度百科上容斥原理的解释: 在计数时,必须注意没有重复,没有遗漏.为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法 ...

  8. python必刷面试_Python面试必刷题系列(5)

    本篇是[Python面试必刷题系列]的第5篇文章.通过收集.整理Python真实面试题,给大家讲解面试中的python高频考察点,希望能够引起读者的足够重视. 往期回顾: Python中 is 和 = ...

  9. 【Shell牛客刷题系列】SHELL5 打印空行的行号:一起学习grep命令搭配正则表达式的使用

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

最新文章

  1. Unicode、UTF-8 和 ISO8859-1到底有什么区别(转载)
  2. 《云图计划》的动效简析
  3. 金铲铲之战高峰期1万人排队,LOL手游如果公测会怎样?
  4. PAT 1153 Decode Registration Card of PAT (25 分)- 甲级
  5. Python+selenium搭建自动化框架
  6. 编程大讲坛 坛坛是佳酿--编程大讲坛:C语言核心开发技术从入门到精通
  7. 开源项目:使用CUDA NV12转JPG
  8. python37安装失败怎么搞_Linux 安装Python37
  9. JDK环境变量设置以及检验是否配置成功
  10. 中国科学院国家授时中心
  11. 交错、反交错与IVTC —— 从入门到放弃
  12. 路由器与交换机知识总
  13. 丰田chr内外循环怎么区分_丰田C-HR怎么开启暖风
  14. iVMS-4200 Vs区别_【欧国联:德国 VS 瑞士】体育足球赛事专业紅單推荐
  15. 鼓励自己最有效的10个方法
  16. java积分_java积分体系设计
  17. Cocos2d-x中图字原理之深入分析
  18. 随手记_英语_学术写作_英文科技论文
  19. 智慧城市运维中心——智慧纽约
  20. 超好用的前嗅ForeSpider爬虫软件教程

热门文章

  1. TypeError: bad operand type for unary +: 'str'
  2. 程序员的自我修养之数学基础06:秩(线性无关和线性相关,秩的意义、秩的求法、奇异矩阵和非奇异矩阵)
  3. 【智能电表】格力空调遥控器红外协议
  4. Linux内核之 printk 打印
  5. 职称计算机考试哪个专业简单,全国计算机职称考试哪些科目简单容易通关
  6. 在 Mac 上为 Apple ID 账户余额充值的方法
  7. 一些算法分析中的常用级数
  8. 计算机毕业设计android的日常财务管理系统APP(源码+系统+mysql数据库+Lw文档)
  9. 车载无线WIFI让开车不再枯燥
  10. 概论第6章_正态总体的抽样分布_卡方分布_F分布_t分布