成熟丰满熟妇高潮XXXXX,人妻无码AV中文系列久久兔费 ,国产精品一国产精品,国精品午夜福利视频不卡麻豆

您好,歡迎來到九壹網(wǎng)。
搜索
您的當(dāng)前位置:首頁03分支和循環(huán)

03分支和循環(huán)

來源:九壹網(wǎng)

分支語句

if…else語句

int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
			printf("hehe\n");
	}
	else
		printf("haha\n");

	//if (a == 1)
	//	if (b == 2)
	//		printf("hehe\n");
	//	else //else和最近的未匹配的if進(jìn)行匹配,與縮進(jìn)位置無關(guān)
	//		printf("haha\n");
	return 0;
}

int main()
{
	int age = 10;
	if (age < 18)
		printf("未成年\n");
	else if (age >= 18 && age < 28)
		printf("青年\n");
	else if (age >= 28 && age < 50)
		printf("壯年\n");
	else
		printf("老年\n");

	//if(18 <= age < 28) //error:18 <= age等價于 0,0 < 28永遠(yuǎn)為真!

	//if (age < 18)
	//	printf("未成年\n");
	//else
	//	printf("成年\n");

	return 0;
}

if書寫形式對比

//代碼1
if(condition){
    return x;
}
return y;

//代碼2
if(condition)
{
    return x;
}
else 
{
    return y;
}

//代碼3
int num = 4;
if (num = 5) //= 賦值   == 判斷相等
{
    printf("hehe\n");
}

//代碼4
int num = 4;
if (5 == num) 
{
    printf("hehe\n");
}

練習(xí)

//1.判斷一個數(shù)是否為奇數(shù)
int main()
{
	int num;
	scanf("%d", &num);
	if (num % 2 != 0)
		printf("%d是奇數(shù)!\n", num);
	else
		printf("%d不是奇數(shù)!\n", num);
	return 0;
}


//2.輸出1-100之間的奇數(shù)
int main()
{
	for (int num = 1; num < 101; num++)
	{
		if (num % 2 != 0)
			printf("%d ", num);
	}
	return 0;
}


//3.以下程序的打印結(jié)果是?
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		if (i = 5)
			printf("%d ", i); //死循環(huán)的打印5
	}
	return 0;
}


//4.求a b c中最大的數(shù)
int main()
{
	int a=0,b=0, c=0;
	scanf("%d %d %d", &a, &b, &c);
	if (a > b)
	{
		int tmp = a;
		a = b;
		b = tmp;
	}
	if (b > c)
	{
		int tmp = b;
		b = c;
		c = tmp;
	}
	//如果是三個數(shù)排序,就要加上以下代碼
	//if (a > b)
	//{
	//	int tmp = a;
	//	a = b;
	//	b = tmp;
	//}
	printf("%d\n", c);
	return 0;
}

switch語句

//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
	switch (day) 
	{
	case 1: 
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	default:
		printf("輸入錯誤\n");
		break;
	}

//	//switch (day)  //這個括號里面只能是整型表達(dá)式
//	//{
//	//case 1: //case 后面只能是整型常量表達(dá)式
//	//	printf("星期一\n");
//	//	break;
//	//case 2:
//	//	printf("星期二\n");
//	//	break;
//	//case 3:
//	//	printf("星期三\n");
//	//	break;
//	//case 4:
//	//	printf("星期四\n");
//	//	break;
//	//case 5:
//	//	printf("星期五\n");
//	//	break;
//	//case 6:
//	//	printf("星期六\n");
//	//	break;
//	//case 7:
//	//	printf("星期日\n");
//	//	break;
//	//}
//
//	//switch (day)  
//	//{
//	//case 1: 
//	//	printf("星期一\n");
//	//case 2:
//	//	printf("星期二\n");
//	//case 3:
//	//	printf("星期三\n");
//	//case 4:
//	//	printf("星期四\n");
//	//case 5:
//	//	printf("星期五\n");
//	//case 6:
//	//	printf("星期六\n");
//	//case 7:
//	//	printf("星期日\n");
//	//}

	//if (1 == day)
	//	printf("星期一\n");
	//if (2 == day)
	//	printf("星期二\n");
	//if (1 == day)
	//	printf("星期三\n");
	//if (1 == day)
	//	printf("星期四\n");
	...
//	return 0;
//}

練習(xí)

//1.以下程序的打印結(jié)果是?
int main()
{
	int n = 1;
	int m = 2;
	switch(n) //n=1
	{
	case 1:
		m++; //m=3
	case 2:
		n++; //n=2
	case 3:
		switch (n)
		{
		case 1: //不執(zhí)行
			n++;
		case 2: 
			m++; //m=4
			n++; //n=3
			break;
		}
	case 4: 
		m++; //m=5
		break;
	default:
		break;
	}
	printf("m = %d,n = %d\n", m, n); //m=5,n=3
	return 0;
}


//2.以下程序的打印結(jié)果是?
int func(int a)
{
	int b;
	switch (a)
	{
		case 1:b = 30;
		case 2:b = 20;
		case 3:b = 16;
		default:b = 0;
	}
	return b;
}

int main()
{
	int ans=func(1);
	printf("%d\n", ans); //0
	return 0;
}


//3.以下程序的返回結(jié)果是?
int func(int a)
{
	int b;
	switch (a)
	{
		case 1:b = 30;
		case 2:b = 20;
		case 3:b = 16;
		default:b = 0;
	}
	return b; //0
}


//4.以下程序的打印結(jié)果是?
int main()
{
	int x = 3;
	int y = 3;
	switch (x % 2) {
	case 1:
		switch (y)
		{
		case 0:
			printf("first");
		case 1:
			printf("second");
			break;
		default:
			printf("hello");
		}
	case 2:
		printf("third");
	}
	return 0;  //hellothird
}

循環(huán)語句

while語句

int main()
{
	int i = 0;
	while (i < 10)
	{
		i++;
		if (i == 5)
			continue;
		printf("%d ", i); //1 2 3 4 6 7 8 9 10 
	}

	//int i = 1;
	
	//while (i < 11)
	//{
	//	if (i == 5)
	//		continue;
	//	printf("%d ", i); //1 2 3 4 死循環(huán)
	//	i++;
	//}

	//while (i < 11)
	//{
	//	if (i == 5)
	//		break;
	//	printf("%d ", i); //1 2 3 4 
	//	i++;
	//}

	//while (i<11)
	//{
	//	printf("%d ", i);
	//	i++;
	//}
	
	//while (1) //死循環(huán)
	//	printf("hehe\n");

	return 0;
}

總結(jié):continue在while循環(huán)中的作用是:

getchar()

//代碼1
int main()
{
	int ch = 0;
	//ctrl + z - ch獲取到EOF
	//EOF - end of file - 值為-1
	while ((ch = getchar()) != EOF)
	{
		putchar(ch);
	}

	//int ch=getchar();
	//putchar(ch);
	//printf("%c\n", ch);
	return 0;
}

//代碼2
int main()
{
	int ret = 0;
	int ch = 0;
	char password[20] = { 0 };
	printf("請輸入密碼:");
	scanf("%s", password);//請輸入密碼,并存放在password數(shù)組中
	//緩沖區(qū)還剩余一個'\n'
	//讀取一個'\n'
	while ((ch = getchar()) != '\n')
	{
		;
	}
	printf("請確認(rèn)(Y/N):>");
	ret = getchar();//Y/N
	if (ret == 'Y')
	{
		printf("確定成功\n");
	}
	else
	{
		printf("放棄確認(rèn)\n");
	}

	//printf("%d\n", '\n'); //10
	return 0;
}

//代碼3
int main()
{
	int ch = 0;
	while ((ch=getchar())!=EOF)
	{
		if (ch < '0' || ch>'9')
			continue;
		putchar(ch);
	}
	return 0;
}

輸入緩沖區(qū):

練習(xí)

//1.以下程序的輸出結(jié)果是?
int main()
{
	int i = 0;
	for (i = 0; i<10; i++)
	{
		if (i = 5)
			printf("%d ", i); //死循環(huán)的打印5
	}
	return 0;
}


//2.求兩個數(shù)的最大公約數(shù)和最小公倍數(shù)
Min(int x, int y)
{
	return x < y ? x : y;
}

Max(int x, int y)
{
	return x > y ? x : y;
}

int main()
{
	int a = 0;
	int b = 0;
	int yue = 0;
	int bei = 0;
	int min = 0;
	int max = 0;
	int pos = 1;
	scanf("%d%d", &a, &b);
	min = Min(a, b);
	max = Max(a, b);
	//求最大公約數(shù)
	while (pos <= min) 
	{
		if (a % pos == 0 && b % pos == 0)
			yue = pos;
		pos++;
	}
	pos = max;
	//求最小公倍數(shù)
	while(max<=a*b)
	{
		if (pos % a == 0 && pos % b == 0) {
			bei = pos;
			break;
		}
		pos++;
	}
	printf("%d %d\n",yue,bei);
	return 0;
}


//3.打印1000年到2000年之間的閏年
int main()
{
	for (int year = 1000; year <= 2000; year++)
	{
		if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
			printf("%d ",year);
	}
	return 0;
}


//4.打印n以內(nèi)的素數(shù)
int isPrime(int num)
{
	for (int i = 2; i < num; i++)
	{
		if (num % i == 0) 
			return 0;
	}
	return 1;
}

int main()
{
	int n = 0;
	scanf("%d", &n);
	for (int i = 2; i <= n; i++)
	{
		if (isPrime(i))
			printf("%d\n", i);
	}
	return 0;
}


//5.輸入三個數(shù),并從大到小輸出。
int main()
{
	//解法1
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d %d %d", &a, &b, &c);
	if (a > b)
	{
		int tmp = a;
		a = b;
		b = tmp;
	}
	if (b > c)
	{
		int tmp = b;
		b = c;
		c = tmp;
	}
	if (a > b)
	{
		int tmp = a;
		a = b;
		b = tmp;
	}
	printf("%d %d %d\n", a,b,c);


	//int arr[3] = { 0 };
	//for (int i = 0; i < 3; i++)
	//{
	//	scanf("%d", &arr[i]);
	//}

	解法2:冒泡排序
	//for (int i = 3; i >= 2; i--)
	//	for (int j = 1; j < i; j++)
	//	{
	//		if (arr[j - 1] > arr[j]) {
	//			int tmp = arr[j];
	//			arr[j] = arr[j - 1];
	//			arr[j - 1] = tmp;
	//		}
	//	}

	//for (int i = 2; i >= 0; i--)
	//{
	//	printf("%d ", arr[i]);
	//}
	return 0;
}

for語句

int main()
{
	int i = 0;
	//    初始化     判斷    調(diào)整
	for (int i = 1; i <= 10; i++)
	{
		if (i == 5)
			//break; //1 2 3 4
			continue; //1 2 3 4 6 7 8 9 10
		printf("%d ", i);
	}
	return 0;
}

//變種1
int main()
{
	//for循環(huán)的初始化,調(diào)整、判斷都可以省略
	//但是for循環(huán)的判斷部分被省略,那判斷條件就是:恒為真
	for (;;) // 死循環(huán)
	{
		printf("hehe\n");
	}
	return 0;
}

int main()
{
	int i = 0;
	int j = 0;
	for (; i < 10; i++)
	{
		//第二次外循環(huán)開始后,內(nèi)循環(huán)中的j仍未10,故不打印 hehe
		for (; j < 10; j++) 
		{
			printf("hehe\n"); //打印10個hehe
		}
	}

	//for (int i = 0; i < 10; i++)
	//{
	//	for (int j = 0; j < 10; j++)
	//	{
	//		printf("hehe\n"); //打印100個hehe
	//	}
	//}
	return 0;
}

//變種2
int main()
{
	int x, y;
	for (x = 0, y = 0; x < 2 && y < 5; x++, y++)
	{
		printf("hehe\n"); //打印兩個 hehe
	}
	return 0;
}

for循環(huán)與while循環(huán)對比:

一些建議:

  1. 不可在for循環(huán)體內(nèi)修改循環(huán)變量,防止for循環(huán)失去控制。
  2. 建議for語句的循環(huán)控制變量的取值采用“前閉后開區(qū)間”寫法。
//2.
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

//1.
//int main()
//{
//	int i = 0;
//	for (int  i = 0; i < 10; i++)
//	{
//		if (i = 5)
//			printf("haha\n");
//		printf("hehe\n");
//	}
//	return 0;
//}

練習(xí)

//1.請問以下循環(huán)要循環(huán)多少次?
int main()
{
	int i = 0;
	int k = 0;
	for (i = 0, k = 0; k = 0; i++, k++) //k=0為假,循環(huán)零次
		k++; 
	return 0;
}

do…while語句

int main()
{
	int i = 1;
	do
	{
		if (i == 5)
			break;
			//continue; //1 2 3 4 死循環(huán)
		printf("%d ", i);
		i++;
	}
	while (i <= 10);
	return 0;
}

練習(xí)

//1.計算n的階乘
int main()
{
	int n = 0;
	int ret = 1;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++)
	{
		ret *= i;
	}
	printf("%d\n", ret);
	return 0;
}


//2.計算1!+2!+ ...n!
int main()
{
	int n = 0;
	int num = 1;
	int ret = 0;

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


//3.在有序數(shù)組中尋找指定元素
//二分查找
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int k = 7;
	int sz = sizeof(arr) / sizeof(arr[0]); //計算元素個數(shù)
	int lt = 0;
	int rt = sz;
	while (lt <= rt)
	{
		int mid = (lt + rt) / 2;
		if (arr[mid] == k)
		{
			printf("找到了,下標(biāo)為: %d\n", mid);
			break;
		}
		else if (arr[mid] < k)
		{
			lt = mid + 1;
		}
		else
		{
			rt = mid - 1;
		}
	}
	if (lt > rt)
		printf("找不到\n");
	return 0;
}

//順序查找
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int k = 7;
//	//寫一個代碼,在arr數(shù)組(有序的)中找到7
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	for (int i = 0; i < sz; i++)
//	{
//		if (k == arr[i])
//		{
//			printf("找到了,下標(biāo)是:%d\n", i);
//			break;
//		}
//		if (i == sz)
//			printf("找不到\n");
//	}
//	return 0;
//}


//4.編寫代碼,演示多個字符從兩端向中間匯聚顯示
//考點:數(shù)組拷貝
#include<string.h>
#include<windows.h>
#include<stdlib.h>

int main()
{
	//welcome to aoligei!!!
	//#####################
	//w###################!
	//we#################!!
	//wel###############!!!
	//...
	//welcome to aoligei!!!
	//
	//char arr[]="abc";
	//[a b c \0]
	// 0 1 2 3
	//4-2
	char arr1[] = "welcome to aoligei!!!";
	char arr2[] = "#####################";
	int left = 0;
	//int right = sizeof(arr1) / sizeof(arr1[0]) - 1; //err
	//int right = sizeof(arr1) / sizeof(arr1[0]) - 2;
	int right = strlen(arr1)-1;
	
	while (left<=right)
	{
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s\n", arr2);
		//休息一秒
		Sleep(1000);
		system("cls");//執(zhí)行系統(tǒng)命令的一個函數(shù) - cls - 清空屏幕
		left++;
		right--;
	}
    printf("%s\n", arr2);
	return 0;
}


//5.模擬用戶登錄情景,并且只能登錄三次。
//(只允許輸入三次密碼,如果密碼正確則提示登錄成功,
//如果三次均輸入錯誤,則退出程序。)
//考點:比較字符串是否相等 - strcmp
#include<string.h>

int main()
{
	char password[20] = { 0 };
	for (int i = 0; i < 3; i++)
	{
		printf("請輸入密碼:");
		scanf("%s", password);
		//if (password == "123456") //== 不能用來比較兩個字符串是否相等
		//strcmp中比較的兩個字符串若相等,則返回0
		if (strcmp(password, "123456") == 0) 
		{
			printf("登錄成功\n");
			break;
		}
		if (i == 2)
			printf("登錄失敗!\n");
	}
	return 0;
}


//6.以下程序的輸出結(jié)果是?
int main()
{
	int a = 0, b = 0;
	for (a = 1, b = 1; a <= 100; a++)
	{
		if (b >= 20) break;
		if (b % 3 == 1)
		{
			b = b + 3;
			continue;
		}
		b = b - 5;
	}
	printf("%d\n", a); //8
	return 0;
}


//7. 1到 100 的所有整數(shù)中出現(xiàn)多少個數(shù)字9
int main()
{
	int count = 0;
	for (int i = 1; i <= 100; i++)
	{
		int num = i;
		while (num != 0)
		{
			if (num % 10 == 9)
				count++;
			num /= 10;
		}
	}
	printf("%d\n", count);
	return 0;
}


//8.計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出結(jié)果
int main()
{
	double sum = 0.0;
	int flag = 1;
	for (int i = 1; i <= 100; i++)
	{
		sum += flag * 1.0 / i;
		flag = -flag;
	}
	//注意這里的輸出格式是 %lf
	printf("%lf\n", sum); //0.688172
	return 0;
}


//9.求10 個整數(shù)中最大值
#define N 10 

int main()
{
	int arr[N] = { 0 }; //這里使用宏定義來為數(shù)組開辟空間
	int max = 0;
	for (int i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
		if (arr[i] > max) {
			max = arr[i];
		}
	}
	printf("%d\n", max);
	return 0;
}


//10.在屏幕上輸出9*9乘法口訣表
int main()
{
	for (int i = 1; i <= 9; i++)
	{
		for (int j = i; j <= 9; j++) //注意:這里的j從i開始!
		{
			printf("%d * %d = %d\t", i, j, i * j);
		}
		printf("\n");
	}
	return 0;
}

猜數(shù)字游戲

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

//11.猜數(shù)字游戲
//11.1電腦會生成一個隨機(jī)數(shù)
//11.2猜數(shù)字

void menu()
{
	printf("*********************************\n");
	printf("****     1.play    0.exit    ****\n");
	printf("*********************************\n");
}

//RAND_MAX 0-32767

void game()
{
	//1.生成一個隨機(jī)數(shù)
	int ret = 0;
	int guess = 0;//接收猜的數(shù)字
	int count = 0;//記錄猜數(shù)字的次數(shù)
	//拿時間戳來設(shè)置隨機(jī)數(shù)的生成起始點
	//time_t time(time_t * timer)
	//time_t
	//ret = rand(); //生成 0-32767 之間的隨機(jī)數(shù)
	ret = rand() % 100 + 1;//生成 1-100 之間的隨機(jī)數(shù)
	//printf("%d\n",ret);
	//2.猜數(shù)字
	while (1)
	{
		printf("請猜數(shù)字:");
		scanf("%d", &guess);
		if (guess > ret)
		{
			printf("猜大了!\n");
			count++;
			if (count > 2)
				printf("能不能不要下幾把拆!\n");
		}
		else if (guess < ret)
		{
			printf("猜小了!\n");
			count++;
			if (count > 2)
				printf("您怎么回事?不會猜?\n");
		}
		else
		{
			printf("額,終于猜對了。。。\n");
			break;
		}
	}
}

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("請選擇:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game(); //猜數(shù)字游戲
			break;
		case 0:
			printf("退出游戲\n");
			break;
		default:
			printf("選擇錯誤\n");
			break;
		}
	} while (input);
	return 0;
}

goto語句

C語言中提供了可以隨意濫用的goto語句和標(biāo)記跳轉(zhuǎn)的標(biāo)號。

從理論上goto語句是沒有必要的,但是某些場合下goto語句還是用得著的,最常見的用法就是終止程序在某些深度嵌套的結(jié)構(gòu)的處理過程,例如一次跳出兩層或多層循環(huán)。

這種情況使用break是達(dá)不到目的的。它只能從最內(nèi)層循環(huán)退出到上一層的循環(huán)。

for(...)
    for(...)
    {
        for(...)
        {
            if(disaster)
                goto error;
        }
    }
	...
error:
	if(disaster)
        //處理錯誤情況

關(guān)機(jī)小程序

//關(guān)機(jī)小程序
#include<string.h>

int main()
{
	char input[20] = { 0 };
	//shutdown -s -t 60
	//system() - 執(zhí)行系統(tǒng)命令的
	system("shutdown -s -t 60");
	while (1)
	{
		printf("請注意,您的電腦將在1分鐘內(nèi)關(guān)機(jī),如果輸入:【我是豬】,就取消關(guān)機(jī)\n請輸入:");
		scanf("%s", input);
		if (strcmp(input, "我是豬") == 0)//比較兩個字符串 - strcmp() -相等則返回0
		{
			system("shutdown -a");
			break;
		}
	}
	return 0;
}

//int main()
//{
//	char input[20] = { 0 };
//	//shutdown -s -t 60
//	//system() - 執(zhí)行系統(tǒng)命令的
//	system("shutdown -s -t 60");
//again:
//	printf("請注意,您的電腦將在1分鐘內(nèi)關(guān)機(jī),如果輸入:【我是豬】,就取消關(guān)機(jī)\n請輸入:");
//	scanf("%s", input);
//	if (strcmp(input, "我是豬") == 0)//比較兩個字符串 - strcmp() -相等則返回0
//	{
//		system("shutdown -a");
//	}
//	else
//	{
//		goto again;
//	}
//	return 0;
//}

因篇幅問題不能全部顯示,請點此查看更多更全內(nèi)容

Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號-2

違法及侵權(quán)請聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市萬商天勤律師事務(wù)所王興未律師提供法律服務(wù)