c语言学习-4

三、选择与循环

1.if与else

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
/*
else不能单独出现

if与else if,可以不断地进行else if,最后才可以是else,语句只会有一个得到执行

if 内部写if和else,一定要加上大括号,
*/
int main()
{
	int i;
	while (scanf("%d", &i) != EOF)
	{
		if(i > 0){//在if的括号后面不可以加;(分号),会造成表达式无论是真还是加,都会执行后面的语句
			printf("i is bigger than 0\n");
		}
		else {//上面的条件为假时,走else
			printf("i is not bigger than 0\n");
		}

		//printf("i = %d\n", i);
	}

	return 0;
}
10
i is bigger than 0
20
i is bigger than 0
-5
i is not bigger than 0
^Z
^Z
^Z

D:\cbook\第三章 选择与循环\Debug\01.ifelse.exe (进程 2988)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .

2.while循环

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

//从1加到100
/*
当黑窗口(即控制台)卡住,只有两种情况:
	一种卡在scanf了(这时候手输入内容,是可以输入进去的),
	另一种是卡在死循环,死循环黑窗口中输入不进去内容
*/
int main()
{
	int i = 1;
	int total = 0;//存储最终的和
	while (i <= 100)//while后面不能加分号,否则会死循环;
	{
		total += i;
		i++;
	}//语句都用花括号括起来
	printf("total = %d\n", total);

	return 0;
}
total = 5050

D:\cbook\第三章 选择与循环\Debug\02.while循环.exe (进程 18556)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .

3.会出现死循环的原因

当黑窗口(即控制台)卡住,只有两种情况:
一种卡在scanf了(这时候手输入内容,是可以输入进去的),
另一种是卡在死循环,死循环黑窗口中输入不进去内容

会出现死循环的原因:
1.while()后面加了分号
2.while()语句体内没有让表达式趋近于的操作

4.for循环

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

//从1加到100
/*
当黑窗口(即控制台)卡住,只有两种情况:
	一种卡在scanf了(这时候手输入内容,是可以输入进去的),
	另一种是卡在死循环,死循环黑窗口中输入不进去内容

会出现死循环的原因:
1.while()后面加了分号
2.while()语句体内没有让表达式趋近于假的操作
*/
int main()
{
	int i, total;
	//for语句中只能有两个分号
	for (i = 1, total = 0; i <= 100; i++)//for循环后面不能加分号
	{
		total += i;
	}
	printf("total = %d\n", total);

	return 0;
}
total = 5050

D:\cbook\第三章 选择与循环\Debug\03.for循环.exe (进程 10700)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .

5.continue语句

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

//从1加到100之间奇数求和

int main()
{
	int i, total;
	//for语句中只能有两个分号
	for (i = 1, total = 0; i <= 100; i++)//for循环后面不能加分号
	{
		if (i % 2 == 0) //如果i是偶数
		{
			continue;//提前结束i为偶数的这轮循环
		}
		total += i;
	}
	printf("total = %d\n", total);

	return 0;
}
total = 2500

D:\cbook\第三章 选择与循环\Debug\04.continue.exe (进程 15288)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .

6.break语句

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

//从1加到100,当和大于2000,就终止循环
int main()
{
	int i, total;
	//for语句中只能有两个分号
	for (i = 1, total = 0; i <= 100; i++)//for循环后面不能加分号
	{
		if (total > 2000) 
		{
			break;//当求和大于2000,就终止循环
		}
		total += i;
	}
	printf("total = %d,i = %d\n", total,i);

	return 0;
}
total = 2016,i = 64

D:\cbook\第三章 选择与循环\Debug\05.break语句.exe (进程 16504)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .

7.判断对称数-整型数12321

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

/*
Description
输入一个整型数,判断是否是对称数,如果是,输出yes,否则输出no,不用考虑这个整型数过大,int类型存不下,不用考虑负值;
例如12321是对称数,输出yes,124421是对称数,输出yes,1231不是对称数,输出no
lnput
一个整型数
Output
输出是yes,或者no

思路:1234 --> 4321
把最初输入的整型数a,反过来后,再存到另外一个整型数b,判断a和b是否相等,如果相等就输出yes,否则输出no
*/
int main()
{
	int a, c, b, temp;
	while (scanf("%d", &a) != EOF)
	{
		b = 0;
		c=a;
		while (a)
		{
			temp = a % 10;
			b = b * 10 + temp;
			printf("%d", a % 10);
			a = a / 10;
		}
		printf("\n");
		printf("b = %d\n",b);

		if (c == b) {
			printf("yes\n");
		}
		else {
			printf("no\n");
		}
		printf("\n");
	}

	return 0;
}
1234
4321
b = 4321
no

1234321
1234321
b = 1234321
yes

^Z
^Z
^Z

D:\cbook\第三章 选择与循环\Debug\06.判断对称数.exe (进程 21968)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良辰美景好时光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值