c语言从0->1入门——循环语句(二)

举报
秋名山码民 发表于 2022/05/15 23:35:06 2022/05/15
【摘要】 关于作者:2019NOIP退役成员,学习c语言已有多年经验,更懂得考试的题目,和初学者学习时所遇到的问题华为云享专家,以及CSDN的新星创作者,有写博客的一定能力 关于本栏目本栏目的宗旨是带你入门c语言,作者打算用题海+c语言的概念来完成本栏目,适用人群:面向广大的编程爱好者和大学生来进行创作学完本栏后你能达到的水平:计算机二级水平左右,入门c语言学习题目:主要来源于网络和c语言的入门算法...

关于作者:

2019NOIP退役成员,学习c语言已有多年经验,更懂得考试的题目,和初学者学习时所遇到的问题

华为云享专家,以及CSDN的新星创作者,有写博客的一定能力

关于本栏目

本栏目的宗旨是带你入门c语言,作者打算用题海+c语言的概念来完成本栏目,

适用人群:面向广大的编程爱好者和大学生来进行创作

学完本栏后你能达到的水平:计算机二级水平左右,入门c语言学习

题目:主要来源于网络和c语言的入门算法题目

写在前面的话(第八天)

记住我们的宗旨:努力去做,让一切交给时间来评判!

今天我们学习俩个语句:while和do…while语句

while语句

while(condition)//为真执行循环体
{
   statement(s);
}

while 循环的关键点是循环可能一次都不会执行。当条件为 false 时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。

#include <stdio.h>
 //输出0-9
int main ()
{
   int a = 0;
   while( a < 10 )
   {
      printf("a 的值: %d\n", a);
      a++;
   }
   return 0;
}

do…while语句

do
{
   statement(s);

}while( condition );

与while循环不同的地方是:
do…while循环至少执行一次

#include <stdio.h>
int main ()
{
   int a = 0;
   do
   {
   		printf("我虽然不满足条件,但是也执行一次");
   	}while(a>0);
   return 0;
}

案例

我们来做一个案例,巩固一下这俩天学的知识:

假设用户的密码是一个三位整数,令用户输入密码,如果输入成功,则提示welcome,如果输入失败,则提示”bad password“,如果三次都没有输入成功,则锁定,提示:“user locked”

用do…while+if判断:

#include <stdio.h>
int main()
{
	int key = 123;
	int times = 0;//次数
	bool passed = 0;
	do
	{
		times++;
		int input = 0;
		printf("请输入密码:");
		scanf_s("%d", &input);
		if (key == input)
		{
			passed = 1;
			break;
		}
		else
		{
			printf("bad password\n");
		}
	} while (times < 3);
	if (passed)
	{
		printf("Welcome");
	}
	else
	{
		printf("user locked");
	}
	return 0;

}

使用 while, for 分别输 1~100 以内的所有的奇数和偶数的和:

#include  <stdio.h>
int main()
{
    int  sum=0;
    int  num=1;
    int  sum2=0;
    int  num2=2;
    while(num<100)
    {
        sum=sum+num;
        num=num+2;
    }
    printf("奇数和为:%d\n",sum);

    while(num2<=100)
    {
        sum2=sum2+num2;
        num2=num2+2;
    }
    printf("偶数和为:%d\n",sum2);
}
#include  <stdio.h>

int main()
{

    int  sum=0;
    int sum2=0;
    int num,num2;
    for(num=1;num<100;num=num+2)
    {
        sum=sum+num;
    }

    printf("奇数和%d\n",sum);
    for(num2=2;num2<=100;num2=num2+2)
    {
        sum2=sum2+num2;
    }
    printf("偶数和%d\n",sum2);
}

用 continue 语句求输出 100~200 之间的不能被3整除的数

#include<stdio.h>
int main()
{
    int n;
    for(n=100;n<=200;n++)
    {
        if(n%3==0)
            continue;
        printf("%d",n);
    }
    printf("\n");
    return 0;
}

最后

留一个作业:

打印房子问题:
观察下面图片,来写出代码:

在这里插入图片描述
在这里插入图片描述

#include<iostream>
using namespace std;
int main()
{
	int n,m;
	cin >> n >> m;
	for(int i = 1; i<=n; i++)
	{
		for(int j = 1;j<=m; j++)
		{
			cout<<"+-";
		}
		cout<<"+"<<endl;
		for(int j = 1;j<=m; j++)
		{
			cout<<"|*";
		}
		cout<<"|"<<endl;
	}
	for(int j = 1;j<=m; j++)
	{
		cout<<"+-";
	}
	cout<<"+"<<endl;
	return 0;
}

循环就到此结束了,这块很重要还请多花时间来学习!!!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。