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

淘宝客网站虚拟主机0元开店0元铺货无加盟费开网店

淘宝客网站虚拟主机,0元开店0元铺货无加盟费开网店,微网站建设哪家强,深圳seo网络推广公司片头 哈喽#xff01;小伙伴们#xff0c;大家好~#xff0c;今天我们来学习蓝桥杯基础篇#xff08;三#xff09;#xff0c;继续练习相关习题#xff0c;准备好了吗#xff1f;我们开始啦~ 一、while循环 可以简单理解为循环版的if语句。if语句是判断1次#xff0…片头 哈喽小伙伴们大家好~今天我们来学习蓝桥杯基础篇三继续练习相关习题准备好了吗我们开始啦~ 一、while循环 可以简单理解为循环版的if语句。if语句是判断1次如果条件成立则执行后面的语句while是每次判断如果成立则执行循环体中的语句否则停止。 int main() {int i 0;while (i 10) {cout i endl;i;}return 0; } 题目1 求1~100中所有数的立方和 int main() {int sum 0 , sum2 0;int i 1;while (i 100) {sum1 i * i * i;i;}cout 1~100中所有数的立方和为: sum endl;return 0; } 题目2求斐波那契数列的第n项。f(1)1f(2)1f(3)2f(4)3f(n)f(n-1)f(n-2) 首先我们来观察斐波那契数列规律是后一个数前2个数相加 f(1)1,f(2)1 f(3)f(1)f(2) f(4)f(2)f(3) f(5)f(3)f(4) ..... f(n)f(n-2)f(n-1) 为此我们可以列出一张表表示 iab的关系 iab0f(1)f(2)1f(2)f(3)2f(3)f(4)3f(4)f(5)4f(5)f(6)5f(6)f(7).........n-3f(n-2)f(n-1)n-2f(n-1)f(n)n-1f(n)f(n1) 通过这张表我们可以看到i的范围在0~n-2采用while循环 //求斐波拉契数列的第n项, //f(1)1,f(2)1,f(3)2, //f(4)3,f(5)5,f(6)8,f(7)13,f(8)21,f(9)34,f(10)55//f(1)1,f(2)1 //f(3)f(1)f(2), //f(4)f(2)f(3), //f(5)f(3)f(4), //... //f(n)f(n-2)f(n-1)// i a b // 0 f(1) f(2) // 1 f(2) f(3) // 2 f(3) f(4) // 3 f(4) f(5) // 4 f(5) f(6) // 5 f(6) f(7) // 6 f(7) f(8) //... // n-3 f(n-2) f(n-1) // n-2 f(n-1) f(n) // n-1 f(n) f(n1)//当in-1时,应该退出循环 //i的取值范围在0~n-2int main() {int i 0;int n;cin n;int a 1;int b 1;while (i n - 1) {int c a b;a b;b c;i;}cout a endl;return 0; } 死循环循环永久执行无法结束。我们要避免写出死循环。 //死循环: 循环永久执行,无法结束。我们要避免写出死循环 int main4() {int x 1;while (x 1) puts(!);return 0; } 二、do-while循环 do-while循环不常用。do-while语句与while语句非常相似。唯一的区别do-while语句限制性循环体后检查条件。不管条件的值如何我们都要至少执行1次循环。 int main() {int x 1;while (x 1) {cout x! endl;x;}int y 1;do {cout y! endl;} while (y 1);return 0; } 输出结果 y! 再来举一个例子 int main() {int r 0;int j 1;while (j 10) {r j;j;}cout r endl;int s 0;int i 1;do {s i;i;} while (i 10);cout s endl;return 0; } 可以看到在控制台中显示的结果相同均为50 三、for循环 基本思想把控制循环次数的变量从循环体中剥离 for(init-statement ; condition ; expression) {           statement } init-statement 可以是声明语句、表达式、空语句一般用来初始化循环变量 condition 是条件表达式和 while 中的条件表达式作用一样可以为空空语句表示true expression 一般负责修改循环变量可以为空 例题1打印0~9数字 int main() {for (int i 0; i 10; i) {cout i endl;}return 0; }例题2求1~100中所有数的立方和 int main() {int sum 0;for (int j 1; j 100; j) {sum j * j * j;}cout 1~100中所有数的立方和为: sum endl;return 0; } 例题3求斐波那契数列的第n项。f(1)1f(2)1f(3)2f(4)3f(n)f(n-1)f(n-2) //使用for循环实现斐波那契数列 int main() {int a 1;int b 1;int n;cin n;for (int i 0; i n - 1; i) {int c a b;a b;b c;}cout a endl;return 0; } 此外init-statement 可以定义多个变量expression 也可以修改多个变量 例题4求 1*10 2*9 3*8 4*7 5*6  int main() {int sum 0;int i 1, j 10;for (i 1, j 10; i j; i, j--) {cout i * j endl;sum i * j;}cout sum endl;return 0; } 四、跳转语句 1. break 可以提前从循环中退出一般与if语句搭配。 例题5判断一个大于1的数是否为质数质数只能被1和自己整除的数 int main() {int num;cin num;bool flag 1; //假设该数为质数for (int i 2; i num; i) {if (num % i 0) {flag 0;break;}}if (flag 1) {cout 这个数为质数 endl;}else {cout 这个数不是质数 endl;}return 0; } 2. continue 可以直接跳到当前循环体的结尾。作用和if语句类似。 例题6求1~100中所有偶数的和 int main() {int i 1;int sum 0;for (i 1; i 100; i) {if (i % 2 1)continue;sum i;}cout sum endl;return 0; } 五、多层循环 //多层循环 int main() {//外层循环控制行数//内层循环控制列数for (int i 0, k 1; i 10; i) {for (int j 0; j 10; j, k){cout k ;}cout endl;}return 0; } 结果如下 我们还可以将代码优化一下 int main() {int n;cin n;for (int i 1, k 1; i n; i) {for (int j 1; j n; j, k) {printf(%-5d , k); //左对齐//printf(%5d , k); //右对齐//cout k ;}cout endl;}return 0; } 例题7打印1~100中的所有质数并计算质数的数量 //练习: 打印1~100中所有的质数 int main() {int num 0;for (int i 1; i 100; i) {bool flag 1; //假设此时的i为质数for (int j 2; j i; j) {if (i % j 0) {flag 0;break;}}if (flag 1) {cout i endl;num;}}cout 1~100中所有的质数有 num 个 endl;return 0; } 例题8打印正三角 *************************分析这类题型我们需要定义3个变量 i,j,k分别表示行数空格以及* 比如我输入n5,外层循环打印5行i的取值范围1~n 接下来观察空格的数量变化 第1层空格的数量为4 第2层空格的数量为3 第3层空格的数量为2 第4层空格的数量为1 第5层没有打印空格。 通过以上分析我们得知空格的数量为 n-i 再来观察*的数量变化 第1层打印1个* 第2层打印3个* 第3层打印5个* 第4层打印7个* 第5层打印9个*。 通过以上分析我们得知”*“的数量为 2*i-1 代码如下 int main() {int n;cin n;//外层控制行数for (int i 1; i n ; i) {//内层循环1控制空格数量for (int j 1; j n-i; j) {printf( );}//内层循环2控制*数量for (int k 1; k 2*i-1; k) {printf(*);}cout endl;}return 0; } 例题9打印倒三角 *********   *******    *****     ***      * 和上一道题的做法类似我们依然定义3个变量 i,j,k分别表示行数空格*的数量 比如我输入n5则打印5行i 的取值为 1~n 接下来观察空格的数量 第1层没有空格 第2层1个空格 第3层2个空格 第4层3个空格 第5层4个空格 通过上述分析我们得知空格的数量为 i-1 再来观察*的数量 第1层9颗*, 第2层7颗* 第3层5颗* 第4层3颗* 第5层1颗* 通过上述分析我们得知*的数量为 2*(n-i)1 代码如下 int main() {int n;printf(请输入行号: );scanf(%d, n);//外层循环控制行数for (int i 1; i n; i) {//内层循环1控制空格数量for (int j 1; j i - 1; j) {printf( );}//内层循环2控制*数量for (int k 1; k 2 * (n - i) 1; k) {printf(*);}cout endl;}return 0; } 例题10输入一个n打印n阶菱形n为奇数 n 9 的结果      *     ***    *****   *******  *********   *******    *****     ***      * 方法一 我们可以将这个菱形拆成2个三角形正三角和倒三角用for循环分别输出行数i空格j的数量*号的数量k 打印正三角时当 n9 时只有5行i 的取值范围 1 ~ n/21空格的取值范围 n/21 - i“*号的取值范围 2*i-1 打印倒三角时当 n9 时只有4行i 的取值范围 1 ~ n/2空格的取值范围为 i ”*号的取值范围 [2*(n/2i)-1]-2*i 代码如下 //方法一: 可以打印出菱形,但是不推荐!!! int main19() {int n; //代表行数cin n;int i, j, k;//正三角for (i 1; i n/2 1; i) {for (j 1; j n/21 - i; j) {printf( );}for (k 1; k 2 * i - 1; k) {printf(*);}cout endl;}//倒三角for (i 1; i n/2 ; i) {for (j 1; j i; j) {printf( );}for (k 1; k (2*(n/21)-1)-2*i ; k) {printf(*);}cout endl;}return 0; } 方法二采用曼哈顿距离 代码如下 //方法二: 运用曼哈顿距离 int main() {int n;cin n;//构造一个 n×n 的正方形//计算每个方格到中心原点的距离//如果距离n/2 , 都是*//如果距离n/2 , 为空格//(cx,cy)表示中心原点int cx n / 2;int cy n / 2;for (int i 0; i n-1; i) {for (int j 0; j n-1; j) {if (abs(i - cx) abs(j - cy) n / 2) {printf(*);}else {printf( );}}cout endl;}return 0; } 例题11输入一个n,打印n阶空心菱形,n为奇数 n 9 的结果      *     * *    *   *   *     *  *       *   *     *    *   *     * *      * 空心菱形顾名思义和实心菱形相比只有外围需要打印*内部都是空格 代码如下 int main() {int n;cin n;//构造一个 n×n的正方形//计算每个方格到中心原点的距离//如果距离n/2 , 都是*//如果距离n/2 , 为空格//(cx,cy)表示中心原点int cx n / 2;int cy n / 2;for (int i 0; i n - 1; i) {for (int j 0; j n - 1; j) {if (abs(i - cx) abs(j - cy) n / 2) {printf(*);}else {printf( );}}cout endl;}return 0; } 六、习题 第1题  偶数 输出1~100之间(包括1和100)的全部偶数 代码如下 int main() {int n;cin n;for (int i 1; i n; i 2) {cout i endl;}return 0; } 第2题  奇数 输入一个整数x,输出1到x之间(包括1和x)的全部奇数 代码如下 int main() {int n;cin n;for (int i 1; i n; i 2) {cout i endl;}return 0; } 第3题  正数 输入6个数字,它们要么是正数,要么是负数统计并输出正数的个数6个数字,每个占一行输出格式为x positive numbers,其中x为正数的个数 代码如下 int main() {int num 0;double x;for (int i 0; i 5; i) {cin x;if (x 0) {num;}}cout num positive numbers endl;return 0; } 另外我们还可以使用数组来解决 int main() {int num 0;int a[6];for (int i 0; i 5; i) {cin a[i];if (a[i] 0) {num;}}cout num positive numbers endl;return 0; } 第4题  连续奇数的和1 给定2个整数x和y,输出在它们之间(不包括x和y)的所有奇数的和第一行输入x,第二行输入y输出一个整数,表示所有满足条件的奇数的和 代码如下 void swap(int a, int b) {int temp a;a b;b temp; }int main() {int x, y;cin x y;if (x y) swap(x, y);int sum 0;for (int i x 1; i y; i) {if (i % 2 0)continue;sum i;}cout 所有满足条件的奇数的和为:sum endl;return 0; } 第5题  最大数和它的位置 给定100个数,请你找出其中最大的数字,以及它的输入位置(位置从1开始)输入共100行,每行包含1个整数第一行输出最大的数字第二行输出该数字的输入位置 我们采用擂台法解决此类问题 int main() {int a[110];for (int i 0; i 99; i) {cin a[i];}int max a[0];int max_i 0;for (int j 1; j 99; j) {if (a[j] max) {max a[j];max_i j;}}cout 最大的数字为: max endl;cout 该数字的输入位置为: max_i 1 endl;return 0; } 还可以进一步简化 int main() {int a[110];int max 0; //这里max赋值为0方便和后面的数进行比较int max_i;for (int i 0; i 99; i) {cin a[i];if (a[i] max) {max a[i];max_i i;}}cout 最大的数字为: max endl;cout 该数字的输入位置为: max_i 1 endl;return 0; } 第6题  递增序列 代码如下 int main() {int x;while (true) {cin x;if (x 0) break;for (int i 1; i x; i) {cout i ;}cout endl;}return 0; } 片尾 今天我们学习了C蓝桥杯基础篇三希望这篇文章对友友们有所帮助 求点赞收藏加关注 谢谢大家
http://www.hkea.cn/news/14308580/

相关文章:

  • 做网站平台应该注意哪些网站建设常用的开发语言介绍
  • php搭建网站教程洛宁网站开发
  • 阿里云可以放几个网站罗湖商城网站设计价格
  • 视觉设计专业seo搜索推广
  • 湛江正规网站制作方案不能制作网页的软件是
  • 小型网站开发惠州做网站乐云seo轻松上线
  • 镇江网站建设top关键词seo优化
  • 小型企业建设网站网站建设工作进度
  • 中国建设工程造价管理协会网站招聘滁州建设网站
  • 什么网站做任务的q币广州网站备案方案
  • wordpress 管理入口seo店铺描述
  • 外贸公司网站素材网站建设 域名
  • 个人淘宝客网站天津工程招标信息网官网
  • 宝安网站设计公司大型seo公司
  • 简易手机网站开发做网站的宽度为多少
  • 怎么查网站做404页面没四川省肿瘤医院
  • 二级学院网站建设方案北京建设工程有限公司
  • 网站备案 材料电商网站建设培训
  • 上海工商网站官网网站主办者什么意思
  • 南昌网站开发培训班自己建个网站怎么挣钱
  • 静态网站管理系统网站结构分析
  • 瑞华特散热器网站谁给做的域名访问网站的知识
  • 广州做网站优化费用wordpress分享类主题
  • 站群管理系统cms安徽二建标准
  • 微信网站和手机网站的区别太原网站建设方案咨询
  • 深圳建站模板建站网站建设超链接字体变色代码
  • 做企业网站公司wordpress推荐php版本
  • 网站购物车功能外包装设计网站
  • 做网站建设的公司管理咨询系统
  • 做网站如何对接支付网站点击弹出下载框 怎么做的