C语言的流程控制,if,switch,while,for...,数组

本文介绍了C语言中的流程控制结构,包括IF语句、SWITCHCASE、WHILE和FOR循环的使用,并讲解了Break和Continue在循环中的作用。此外,还详细讨论了一维和二维数组的定义、初始化以及如何通过sizeof计算数组元素个数。最后,通过冒泡排序示例展示了循环嵌套的应用。
摘要由CSDN通过智能技术生成

IF语句

判断一个字符是否是大小写;如果是小写就直接输出,如果是大写就转化为小写输出。

实现代码如下:

#include <stdio.h>

int main() 
{
	char data;
	printf("请输入一个字符\n");
	scanf("%c",&data);
	
	if(data>97 && data<122){ //ASCII码的小写字母对应的整数在97到122之间
		printf("%c\n",data);
	}else if(data>=65 && data<=90){
		printf("%c\n",data+32);	//ASCII码的大小写字母对应的整数差为32	
	}else{
		printf("请输入正确的字符\n");	
	}
	printf("done!\n");
	
	
	
	return 0;
}

运行结果如下:

 

SWITCH CASE语句

 输入代码如下:

#include <stdio.h>

int main()
{
	int data;
	printf("请输入一个数:\n");
	scanf("%d",&data);
	
	switch(data){
		case 1:
			puts("data是1");
		break;
		case 2:
			puts("data是2");
		break;
		case 3:
			puts("data是3");
		break;
		default:
			puts("其他情况");
	}

	return 0;
}

得到如下结果:

 

WHILE循环

输入代码如下:

#include <stdio.h>

int main()
{
	int sum = 0;
	int data = 0;
	
	while(data<=100){
		sum = sum + data;
		data++;
	}
	
	printf("计算完成,和为%d",sum);
	
	return 0;
}

得到结果如下:

 

FOR循环

for循环的基本格式是 for(表达式1表达式2表达式3), 注意分隔用”;“号!

表达式1是”条件赋初值“(可省略,定义在其他地方),表达式2是”判断临界值“,表达式3是”条件改变“(可省略,改写在循环体内)。不管省略哪个,分号都不能丢,如果全省略就是for(;;)死循环。

一个简单的例子:

#include <stdio.h>

int main()
{
	int i;
	
	for(i=0; i<10; i++){
		puts("hahaha");
	}
	
	return 0;
}

输出结果为:

Break 和 Continue

break: 提前结束整个循环

continue: 提前结束本轮循环

数组 

一维数组的定义的例子:int a[10]; //此处的10代表有10个元素,分别是a[0]到a[9],每个元素都是一个int类型的变量。

如果要定义的时候就申明数组元素的值,则为:

 int a[10] = {1,2,3,4,5,6,7,8,9,10};  
 int a[] = {1,2,3,4,5,6,7,8,9,10}; //此时数组依然和上面一样

 int a[10] = {1,2,3};  //此时数组是{1,2,3,0,0,0,0,0,0,0}
 int a[] = {1,2,3}; //此时数组是{1,2,3}

使用sizeof()关键词来计算数组元素的个数:

#include <stdio.h>

int main()
{
	int a[] = {2, 3, 4,5,8,3,6,9,10,5,7};
	int size;

	size = sizeof(a)/sizeof(a[0]);//sizeof是一个关键字,可以获得对应数据的内存空间大小
	//此处的思路是:把整个数组的大小,除以数组中一个元素的大小,获得数组元素的总个数
	
    printf("%d",size);
	
	return 0;
}

二维数组的定义的例子:int a[3][4]; //代表一个三行四列的数组。

C语言对于二维数组的定义方式,使得二维数组可被视为一种特殊的一维数组。比如a[3][4]可以视为3个元素a[0],a[1],a[2], 而每个元素又是一个有4个元素的数组,例如a[0]包含a[0][0],a[0][1],a[0][2], a[0][3]。

二维数组的赋值:

 int a[2][3] = {{1,2,3},{8,9,10}};  
 int a[2][3] = {1,2,3,8,9,10};  //与第一种表达方式相同,都是一个两行三列的二维数组
 int a[][3] = {1,2,3,8,9,10};  //与第一种表达方式相同,都是一个两行三列的二维数组,但是只能不写行不能不写列

 int a[2][3] = {{2},{3}}; //此时只对各行的第一个列的数字赋值,其他为0
 int a[2][3] = {{0,2},{0,0,3}}; //分别对第一行第二列和第二行第三列的数字赋值,其他为0
 int a[2][3] = {{2,6}}; //只对第一行第一列和第二列的数字赋值,其他为0

 注意,不管是一维还是二维数组,其中相邻数据的地址都是连续的。

循环的嵌套

经典的冒泡排序法就是循环的嵌套:

实现的代码如下:

#include <stdio.h>

int main()
{
	int array[] = {12,8,14,9,68,34};
	int i;
	int j;
	int tmp;
	int len = sizeof(array)/sizeof(array[0]);
	
	for(i=0; i<len-1 ;i++){
		for(j=0; j<len-1-i; j++){
			if(array[j]<array[j+1]){
				tmp = array[j];
				array[j] = array[j+1];
				array[j+1] = tmp;
			}	
		}
	}
	for(i=0; i<len; i++){
		printf("%d ",array[i]); //%d后面要加空格,否则输出的数字全部挤在一起
	}
	return 0;
}

结果如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值