关于循环语句的各类练习题

(1)用while语句实现密码确认

代码如下

#define  _CRT_SECURE_NO_WARNINGS#include <stdio.h>int main(){char password[20] = { 0 };printf("请输入密码:>");//123456scanf("%s", password);printf("请确认密码:>");//清理缓冲区//getchar()//处理'
'int tmp = 0;while ((tmp = getchar()) != '
');{;//空语句}int ch = getchar();if (ch == 'Y'){printf("确认成功
");}else{printf("确认失败
");}}

输出结果如下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Zi_5LyfaWk=,size_20,color_FFFFFF,t_70,g_se,x_16

 (2)计算n的阶乘。

代码如下

#define  _CRT_SECURE_NO_WARNINGS#include <stdio.h>int main(){int i = 0;int n = 0;int ret = 1;printf("Please enter a number:
");scanf("%d", &n);for (i = 1; i <= n; i++){ret = ret * i;}printf("ret=%d", ret);return 0;}

输出结果如下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Zi_5LyfaWk=,size_20,color_FFFFFF,t_70,g_se,x_16

 (3)计算n个数阶乘之和

代码如下

#define  _CRT_SECURE_NO_WARNINGS#include <stdio.h>int main(){int i = 0;int n = 0;int ret = 1;int sum = 0;int s = 0;printf("Please enter a number:
");scanf("%d", &s);for (n = 1; n <= s; n++){int ret = 1;for (i = 1; i <= n; i++){ret = ret * i;}sum = sum + ret;}  printf("sum=%d", sum);return 0;}

输出结果如下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Zi_5LyfaWk=,size_20,color_FFFFFF,t_70,g_se,x_16

(4)在一个有序数组中查找到某个数字下标

代码如下

#define  _CRT_SECURE_NO_WARNINGS#include <stdio.h>int main(){int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int k = 7;//假设要找的数字是7int sz = sizeof(arr) / sizeof(arr[0]);//计算数组中的元素个数int left = 0;int right = sz - 1;while (left<=right){int mid = (left + right) / 2;if (arr[mid] > k){right = mid - 1;}else if (arr[mid] < k){left = mid + 1;}else{printf("已找到数字的下标:%d
",mid);break;//跳出循环}      }if (left > right){printf("未能找到数字下标
");}return 0;}

输出结果如下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Zi_5LyfaWk=,size_20,color_FFFFFF,t_70,g_se,x_16

(5)编写代码,演示多个字符从两边移动向中间汇聚

代码如下

#define  _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <windows.h>int main(){char arr1[] = "I love you HYR!!!!!";char arr2[] = "*******************";int left = 0;int right = strlen(arr1) - 1;while (left <= right){arr2[left] = arr1[left];arr2[right] = arr1[right];printf("%s
", arr2);Sleep(1000);//睡眠1秒,使用时需要加上头文件#include<windows.h>system("cls");//清空屏幕left++;right--;}printf("%s
", arr2);return 0;}

输出结果如下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Zi_5LyfaWk=,size_20,color_FFFFFF,t_70,g_se,x_16

 

(6)输入三次密码,全输错就退出程序

代码如下

#define  _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>int main(){int i = 0;char password[] = { 0 };for (i = 0; i < 3; i++){printf("请输入密码:>");//假设正确的密码是123456scanf("%s", password);//password不用取地址,因为password是字符串,他的名字password本身就是地址if (strcmp(password, "123456") == 0){printf("输入密码正确,登陆成功");break;}else{printf("输入密码错误,请再输一次:
");}}if (i == 3){printf("三次密码均错误,退出程序
");}return 0;}

输出结果如下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Zi_5LyfaWk=,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值