分支循环语句

 年龄分级

int main()
{
	int age = 0;
	printf("请输入年龄:");
	scanf("%d",&age);
	if (age < 18)
		printf("青少年\n");
	else if (age > 18 && age < 25)
		printf("青年\n");
	else if (age > 25 && age < 40)
		printf("中年");
	else
		printf("老年");
	return 0;
}

 判断是否为奇数

int main()
{
	int num = 0;
	scanf("%d",&num);
	if (num % 2 == 1)
		printf("奇数\n");
	else
		printf("no!!\n");
	return 0;
}

打印出100以内的奇数

int main()
{
	int num = 1;
	while (num <= 100)
	{
		if (num % 2 == 1)
		{
			printf("%d\n",num);
		}
		num++;
	}
	return 0;
}

Switch语句 

int main()
{
	int num = 0;
	scanf("%d",&num);
	switch (num)
	{
	    case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			printf("weekday");
			break;
		case 6:
		case 7:
			printf("weekend");
			break;
default://所有case不能匹配的都走到default
			printf("选择错误");
break;
	}
	return 0;
}

while

int main()
{
	int i = 1;
	while(i<=10)
	{
		if (5 == i)
			continue;//执行到此处直接跳过下面代码,再次返回到while判定处,进入死循环
		printf("%d",i);
		i++;
		//while循环中的break用于永久的终止循环
		//continue跳过本次循环后面的代码,直接去判断部分,进行下一次循环的判断
	}
	return 0;
}
int main()
{
	int ch = 0;
	while ((ch = getchar()) != EOF)//end of file-文件结束标志,读取错误结束
	{
		putchar(ch);
	    
	}
	return 0;
}
int main()
{
	printf("请输入密码:");
	char password[20] = {0};
	scanf("%s",password);
	int ch = 0;
	while ((ch=getchar())!='\n')
	{
	   ;
	}
	printf("请确认密码Y/N:");
    int ret = getchar();
	if ('Y' == ret)
		printf("yes\n");
	else
		printf("no!!");
	return 0;
}

for循环

1.不可以在for循环体内修改循环变量,防止for循环失去控制.

2.建议for语句的循环控制变量的取值采用“前闭后开区间”写法

int main()
{
	for (;;)//for循环的判断部分省略意味着判断会恒成立(不推荐)
	{
		printf("111\n");
	}
	return 0;
}

do...while

do
{

}
while(表达式)

阶乘

int main()
{
	int i = 1;
	int n = 0;
	scanf("%d", &n);
	int ret = 1;
	for (i = 1; i <= n; i++)
	{
		ret = ret * i;
	}
	printf("%d\n", ret);
	return 0

int main()
{
	int a = 1;
	int ret = 1;
	int sum = 0;
	for (a = 1; a <= 3; a++)
	{
		ret = ret * a;
		sum = sum + ret;
	}
	printf("%d", sum);
	return 0;
}

二分查找(折半查找)

在一个有序数组中查找具体的某个数n

int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int k = 7;
	int 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)
		{
			left = mid + 1;
		}
		else if (arr[mid] > k)
		{
			right = mid - 1;
		}
		else
		{
			printf("找到了 ,下标是:%d\n",mid);
			break;
		}
	}
	if (left > right)
	{
		printf("找不到");
	}
	return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<Windows.h>
//welcome to bit!!!
int main()
{
	char arr1[] = "welcom to bit!!!!";
	char arr2[] = "#################";
	int left = 0;
	int right = strlen(arr2)- 1;
	//"abc"->[a b c \0]sizeof四个元素,int right=sizeof(arr2)/sizeof(arr2[0]-2)
	//strlen计算长度,sizeof计算元素个数
	while (left<=right)
	{
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s", arr2);
		Sleep(1000);//休眠1秒
		system("cls");//清空屏幕,system是一个库函数,可以执行系统命令
		left++;
		right--;
	}
	printf("%s", arr2);
	return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<Windows.h>
#include<string.h>
int main()
{
	int i = 0;
	char password[] = "abcdef";//假设密码是字符串:abcdef
	for (i = 0; i < 3; i++)
	{
		printf("请输入密码:>");
		scanf("%s", password);
		if (strcmp(password,"abcdef")==0)//比较两个字符串是否相等,不能使用==,而应该使用一个库函数:strcmp
		{                                //如果返回值是0,表示两个字符串相等
			printf("登录成功\n");        
			break;
		}
		else
			printf("登录失败!\n");
	}
	return 0;
}
void emun()
{
	printf("—————————\n");
	printf("——1.开始游戏——\n");
	printf("——0.结束游戏——\n");
	printf("—————————\n");
}
void game()
{
	int red = rand() % 100 + 1;//生成一个随机数,0~RED_MAX,0~32767
	int i = 0;
	while (1)
	{
		printf("猜数字:>");
		scanf("%d", &i);
		if (i < red)
		{
			printf("猜小了\n");
		}
		else if (i > red)
		{
			printf("猜大了\n");
		}
		else
		{
			printf("恭喜你,猜对了!\n");
			break;
		}
	}
}
int main()
{
	srand((unsigned)time(NULL));
	int input = 0;
	do
	{
		emun();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏");
			break;
		default:
			printf("选择错误,请重新选择");
			break;
		}
	} while (input);
	return 0;
}
//关机程序
//1.电脑运行起来。1分中后关机
//2.如果输入:我是猪,就取消关机
int main()
{
	system("shutdown -s -t 60");
	char input[20] = { 0 };
	while (1)
	{
		printf("请注意,你的电脑将在60秒之内关机,如果输入“我是猪”,就取消关机\n");
		scanf("%s", input);
		if (strcmp(input, "我是猪") == 0)
		{
			system("shutdown -a");
			break;
		}

	}
	return 0;
}

求最大公约数
暴力求解 


int main()
{
	int i = 0;
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int min = (a < b) ? a : b;
	for (i = min; i <= min; i--)
	{
		if (a % i == 0 && b % i == 0)
		{
			printf("最大公约数是:%d\n", i);
			break;
		}
	}
	return 0;
}

辗转相除法

int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d %d", &a, &b);
	while (c = a % b)
	{
		a = b;
		b = c;
	}
	printf("%d\n",b);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值