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

天津建网站的公司/论坛优化seo

天津建网站的公司,论坛优化seo,河南建设网站公司,小程序和公众号有什么区别文章目录前言一、计算 n的阶乘。二、计算 1!2!3!……10!三、在一个有序数组中查找具体的某个数字key。(二分查找)四、编写代码,演示多个字符从两端移动,向中间汇聚。五、编写代码实现,模拟用户登录情景,并且…

文章目录

  • 前言
  • 一、计算 n的阶乘。
  • 二、计算 1!+2!+3!+……+10!
  • 三、在一个有序数组中查找具体的某个数字key。(二分查找)
  • 四、编写代码,演示多个字符从两端移动,向中间汇聚。
  • 五、编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。
  • 六、猜数字游戏


前言

主要有以下几道练习题,使用C语言实现它们。
1. 计算 n的阶乘。
2. 计算 1!+2!+3!+……+10!
3. 在一个有序数组中查找具体的某个数字n。(讲解二分查找)
4. 编写代码,演示多个字符从两端移动,向中间汇聚。
5. 编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。
6.设计一个猜数字游戏。
要求:

随机产生一个1-100的数字,然后你来猜。
a.猜对了:恭喜你!
b.猜错了,告诉你猜大了还是猜小了,继续猜。
c.玩完一把可以选择继续游戏,直到退出游戏。


提示:以下是本篇文章正文内容,下面案例可供参考

一、计算 n的阶乘。

//1.输入一个数,计算其阶乘
int main()
{int n = 0;int i = 0; int val = 1;scanf("%d",&n);for (i = n; i > 0; i--){val *= i;}printf("%d\n",val);}

二、计算 1!+2!+3!+……+10!

代码如下(示例):

//2.计算1!+2!+...+10!
//方法一:两层循环
int main()
{int i = 0;int j = 0;int val = 1;int sum = 0;for (j = 1; j < 11; j++){for (i = j; i > 0; i--){val *= i;}sum += val;val = 1;//注意这里需要对val初始化,否则将在小循环中继续使用上一次的阶乘值,导致结果不对}printf("%d\n", sum);
}
//2.计算1!+2!+...+10!
//方法二:一层循环
int main()
{int j = 0;int val = 1;int sum = 0;for (j = 1; j < 11; j++){val *= j;sum += val;}printf("%d\n", sum);
}

三、在一个有序数组中查找具体的某个数字key。(二分查找)

3.在一个有序数组中查找具体的某个数字n。(讲解二分查找)
二分法查找(折半算法)
int main()
{int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int key = 0;int len = sizeof(arr)/sizeof(arr[0]);//数组长度/数组内一个元素长度=数组元素个数int left = 0;int right = len - 1;printf("请输入您要查找的数字:");scanf("%d", &key);while (left <= right){int mid = (left + right) / 2;if (arr[mid] > key){right = mid - 1;}else if (arr[mid] < key){left = mid + 1;}else{printf("找到了,这个数字的下标是:%d\n", mid);break;}}if (left > right){printf("没有这个数字!查找失败!");}return 0;
}

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

4. 编写代码,演示多个字符从两端移动,向中间汇聚。int main()
{char arr1[] = "welcome to bit...";char arr2[] = "#################";int left = 0;int right = strlen(arr1) - 1;printf("%s\n", arr2);//while循环实现while (left <= right){Sleep(200);//延迟函数,在windows.h中。单位毫秒。arr2[left] = arr1[left];arr2[right] = arr1[right];system("cls");left++;right--;printf("%s\n", arr2);}//for循环实现for (left = 0, right = strlen(arr1) - 1;left <= right;left++, right--){Sleep(200);arr2[left] = arr1[left];arr2[right] = arr1[right];printf("%s\n", arr2);}return 0;
}

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

5. 编写代码实现,模拟用户登录情景,并且只能登录三次。
(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。int main()
{int i = 0;char password[20] = " ";for (i = 0; i < 3; i++){printf("请输入密码:>>");scanf("%s", password);//数组名本身就是地址,因此此处输入时不需要取地址符号if ((strcmp(password, "123456")) == 0)//strcmp()函数,比较两个字符串是否相等,如果相等则返回0{printf("密码正确!登录成功!\n");break;}else{printf("密码错误,请重新输入!\n");}}if (3 == i){printf("三次密码输入错误,退出程序!");}return 0;
}

注意:对比两个字符串是否相同,千万不可直接比较,比如此代码中:if(password == “123456”)这种表示方法是错误的!!!
必须使用strcmp()函数来比较。


六、猜数字游戏

//6.猜数字游戏:
//	随机产生一个1-100的数字,然后你来猜
//    a.猜对了:恭喜你!
//	  b.猜错了,告诉你猜大了还是猜小了,继续猜。
//	  c.玩完一把可以选择继续游戏,直到退出游戏。void menu()
{printf("**********WELCOME!!!***********\n");printf("*******************************\n");printf("***********1.play**************\n");printf("***********0.exit**************\n");printf("*******************************\n");
}
void game()
{int randNum = rand() % 100 + 1;//rand()函数返回一个0-32767之间的随机数字。//取模100就生成了0-99之间的数字,再+1就是0-100的随机数。printf("随机数字已生成,请输入你的猜想:");int myNum = 0;while (myNum != randNum){scanf("%d", &myNum);if (myNum > randNum){printf("猜大了!!!重新猜吧\n");}else if(myNum < randNum){printf("猜小了!!!重新猜吧\n");}}printf("恭喜你!猜对了!\n");printf("正确答案就是:%d\n",randNum);}int main()
{int input = 0;srand((unsigned)time(NULL));//因为rand()函数需要srand()给它一个随机数种子,才能每次运行程序生成不一样的随机数。//此处如果设置为一个固定的数比如srand(100),则生成的随机数永远相同。//为了给出一个随机数种子,我们使用时间戳,即time()函数(在time.h文件中),该函数返回当前时间戳转换成的一个数字,随着时间不同,该数值一直变化。do{menu();printf("是否开始游戏>>>");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("游戏退出");break;}} while (input);
}

注意:
1.rand()函数返回一个0-32767之间的随机数字。取模100就生成了0-99之间的数字,再+1就是0-100的随机数。
2.因为rand()函数需要srand()给它一个随机数种子,才能每次运行程序生成不一样的随机数。
此处如果设置为一个固定的数比如srand(100),则生成的随机数永远相同。
为了给出一个随机数种子,我们使用时间戳,即time()函数(在time.h文件中),该函数返回当前时间戳转换成的一个数字,随着时间不同,该数值一直变化。

http://www.lbrq.cn/news/1091305.html

相关文章:

  • 浏览器打开自己做的网站/网站流量宝
  • 鄂州做网站报价/百度代理合作平台
  • wordpress 心理测试/seo外包顾问
  • 专业网站建设的/八大营销方式有哪几种
  • 糖果网站是李笑来做的吗/深圳最好的外贸seo培训
  • 上海网站建设改版/品牌营销的四大策略
  • 巫山做网站哪家强/百度推广多少钱一天
  • 贸易公司寮步网站建设哪家好/关键词推广是什么
  • 推荐好的简历制作网站/中央电视台新闻联播广告价格
  • 门户网站建设情况/2345网址大全
  • 网站做cdn/地推网app推广平台
  • 容易做的网站/友情链接检索
  • 上海企业网站建设报价/最新足球消息
  • 怎么做网页版网站/免费制作网页平台
  • 刷业务网站怎么做/手机百度网页版 入口
  • 免费影视网站建设/舆情分析网站
  • 南京做网站优化的企业排名/seo 重庆
  • 网站上传wordpress/游戏推广员是做什么的
  • p2p理财网站开发框架/一站式软文发布推广平台
  • 天津建站平台/湖北网站建设制作
  • 宁夏住房和建设厅官方网站/新app推广去哪里找
  • 那个网站专门做婚纱相册/网络推广自学
  • python做网站缺点/seo课堂
  • 长沙个人做网站排名/优化防控措施
  • 网站建设入门/如何做好一个网站
  • 劳力士手表价格及图片 官方网站/亚马逊跨境电商
  • 特效素材网站/什么样的人适合做策划
  • 网站单子/找索引擎seo
  • 中职网站建设与管理/网络营销介绍
  • 广州网站建设广州网络推广公司好/国外网站推广平台有哪些?
  • java集合框架面试点(2)
  • ubuntu下docker安装thingsboard物联网平台详细记录(附每张图)
  • Linux权限机制:RUID/EUID/SUID与进程安全
  • 数据赋能(332)——安全与合规——保密管理
  • centos7安装docker命令
  • Ethereum:Geth + Clef 本地开发环境,如何优雅地签名并发送一笔以太坊交易?