C语言学习总结11.6

1、跳转语句break、continue与goto语句#define _CRT_SECURE_NO_WARNINGS#include <

1、跳转语句

break、continue与goto语句

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main0101()
{
	//break跳出语句
	for (int i = 0; i < 10; i++)
	{
		for (int j = 0; j < 10; j++)
		{
			if (j == 5)
			{
				break;
			}
			printf("%d %d\n", i, j); 
		}

	}
	return EXIT_SUCCESS;
}

int main0102()
{
	//continue跳出语句,终止本次循环,并执行下一次循环
	for (int i = 0; i < 100; i++)
	{
		if (i % 2 == 1)
		{
			continue;
		}
		printf("%d\n",i);
	}
	return 0;
}

int main0103()
{
	//goto跳出语句 无条件跳转
	printf("hello worle1\n");
	printf("hello worle2\n");
	goto FLAG1;
	printf("hello worle3\n");
	printf("hello worle4\n");
	FLAG1:
	printf("hello worle5\n");
	printf("hello worle6\n");
	return 0;
}

int main0104()
{

	int i = 0, j = 0;
	for (i; i < 10; i++)
	{
		if (i == 5)
		{
			goto FLGA2;
		}
		printf("i=%d\n", i);
	}
	for (j; j < 10; j++)
	{
	FLGA2:
		printf("j=%d\n", j);
	}
}

int main0105()
{
FLGA:
	printf("hello world\n");
	goto FLGA;
	return 0;
}

2、数组的定义与使用

数组的定义:

数据类型 数组名[元素个数]={值1,值2,…值n};

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main0201()
{

	//变量定义:
	//数据类型 变量=值
	//数组定义:
	//数据类型 数组[元素个数]={值1,值2,值3}
	int array[10] = { 8,4,5,6,2,3,9,7,1,0, };
	//数组下标  数组名[下标]
	//数组下标是从0开始计数,数到下标个数最大值-1为止 
	//printf("%d\n", array[2]);
	for (int i = 0; i < 10; i++)
	{
		printf("%d\n", array[i]);

	}
	return 0;
}

int main0202()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	arr[4] = arr[7];
	arr[2] = arr[4] * 2;
	for (int i = 0; i < 10; i++)
	{
		printf("%d\n", arr[i]);

	}

}

int main0203()
{
	//数组在内存中的存储方式和大小	
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	//下标为0的元素地址
	//printf("%p\n", &arr[0]);
	/*printf("%p\n", &arr[1]);
	printf("%p\n", &arr[2]);
	printf("%p\n", &arr[3]);
	printf("%p\n", &arr[4]);*/

	//printf("%p\n", arr);//与arr[0]地址相同
	//数组名是一个地址常量,指向数组首地址的常量

	printf("数组在内存中占的大小为:%d\n", sizeof(arr));
	printf("数组元素大小:%d\n", sizeof(arr[1]));
	printf("数组元素个数:%d\n", sizeof(arr)/sizeof(arr[0]));
	//数组在内存中占的大小 = 数据类型 * 元素个数

	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		printf("%d\n", arr[i]);
	}
	return 0;
}
#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

#define SIZE 10
int main0301()
{

	//int arr[10] = {1,2,3,4,5,6,7,8,9,10 };
	//int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	//int arr[10] = { 1,2,3,4 };
	//int arr[10] = { 0};
	//int arr[10] = {1};
	int arr[10];
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		printf("%d\n", arr[i]);
	}
	return 0;
}

int main0302()
{
	int i = 10;
	//数组元素必须是常量,常量表达式
	//数组必须预先知道大小 动态数组-》 开辟堆空间
	int arr[SIZE];
	for (int i = 0; i < SIZE; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (int i = 0; i < SIZE; i++)
	{
		printf("%d\n", arr[i]);
	}
}

int main0303(void)
{

	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	//数组下标越界
	//printf("%d\n",arr[-1]);//err
	//printf("%d\n",arr[10]);//err
	for (int i = 0; i < 10; i++)
	{
		printf("%d\n", arr[i]);//err
	}
}

3、练习十只小猪称体重

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

#define SIZE 10


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

		if (arr[i] > max)
		{
			max = arr[i];
		}
		
	}
	printf("最重的小猪体重是:%d\n", max);
	return 0;
}

4、数组逆置

练习如何将一个数组逆序排列

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main05()
{

	//将一个数组逆置操作
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
		int i = 0;
	int j = sizeof(arr) / sizeof(arr[0])-1;//数组下标大小
	while (i < j)
	{
		//通过临时变量交换数据
		int temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;
		i++;
		j--;
	}
	for (int i = 0; i < 10; i++)
	{
		printf("%d\n", arr[i]);
	}
	
}

5、冒泡排序法

将10个无序的随机数字有序的排列起来

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main06()

	{
		int arr[] = { 5,7,8,4,2,6,9,3,1,10 };

		for (int i = 0; i < 10 - 1; i++)//外层控制行
		{
			for (int j = 0; j < 10-1-i; j++)
				//内层控制列,10个数字对比9次 9个数字对比8次,故j<10-1-i  
			{
				if (arr[j] < arr[j + 1])//升序排列,将 < 改为 > 则成降序排列
				{
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}

		}
		for (int i = 0; i < 10; i++)
		{
			printf("%d\n", arr[i]);
		}
		return 0;
	}

6、二维数组的定义与使用

数据类型 数组名[元素个数]={值1,值2};
或:
数组类型 数组名[行][列]=
	{
	{值1,值2},
	{值3,值4}
	}
#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main0701()
{
	//数据类型 数组名[元素个数]={值1,值2};
	//数组类型 数组名[行][列]=
	//{
	//{值1,值2},
	//{值3,值4}
	//}
	int arr[2][3] = { {1,2,3}, {4,5,6} };
	/*{
		{1,2,3},
		{4,5,6}
	};//也可以写在一行上,如上所述*/
	//arr[1][2] = 20;//将第一行第二列的值6改为20,从0开始数
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%d  ", arr[i][j]);
		}
		printf("\n");//打印出1行以后换行操作
	}
	printf("二维数组的大小为:%d\n", sizeof(arr));
	//二维数组大小=行*列*sizeof(数据类型)
	printf("二维数组一行大小:%d\n", sizeof(arr[0]));
	printf("二维数组元素大小:%d\n", sizeof(arr[0][0]));

	printf("二维数组行数:%d\n", sizeof(arr) / sizeof(arr[0]));
	printf("二维数组列数:%d\n", sizeof(arr[0] )/ sizeof(arr[0][0]));
	return 0;
}

int main0702()
{
	int arr[2][3] =
	{
		{1,2,3},
		{4,5,6}
	};
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%p\n",& arr[i][j]);
		}

	}

	//二维数组首地址
	//printf("%p\n", arr);
	//printf("%p\n", arr[0]);
	//printf("%p\n", &arr[0][0]);//这三行均表示二维数组首地址

	//printf("%p\n", arr[1]);

	return 0;
}

int main0703()
{
	//二维数组初始化
	//int arr[2][3]={{1,2,3},{4,5,6}};
	//int arr[2][3] = { 1,2,3,4,5,6 };
	int arr[][3] = { 1,2,3,4,5,6,7 };
	//int arr[][3] = { 0 };//一行三列
	//数组下标只有挨着数组名的可以省略
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%d", arr[i][j]);
		}
		printf("\n");
	}
}

7、学生考试练习

5个学生3各学科,求出每名学生的平均成绩、总成绩、每门学科总成绩、学科平均成绩

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>


int main08()
{
	//定义一个数组 存储五名学生三门成绩  arr[5][3]
	//求出每名学生的总成绩 平均成绩
	//求出每门学科的总成绩 平均成绩 

	
	int arr[5][3];
	
	for (int i = 0; i < 5; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			scanf("%d", &arr[i][j]);//获取5名学生成绩
		}
	}
	for (int i = 0; i < 5; i++)//打印学生成绩
	{
		int sum = 0;
		for (int j = 0; j < 3; j++)
		{
			
			sum += arr[i][j];
			//printf("%d ", arr[i][j]);
		}
		printf("第%d名学生的总成绩为:%d\t平均成绩为:%d\n", i + 1, sum,sum / 3);
		//printf("\n");
	}
	for (int i = 0; i < 3; i++)
	{
		int sum = 0;
		for (int j = 0; j < 5; j++)
		{
			sum += arr[j][i];
		}
		printf("第%d门功课的总成绩为:%d\t平均成绩为:%d\n", i + 1, sum, sum / 5);

	}
	return 0;
}

8、多维数组

三维数组定义: 数据类型 数组名[层][行][列]

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main0901()
{
	//一位数组定义:   数据类型 数组名 [元素个数]
	//二维数组定义:   数组类型 数组名[行][列]
	//三维数组定义:   数据类型 数组名[层][行][列]

	int arr[2][3][4] =
	{
		{
			{1,2,3,4},
			{2,3,4,5},
			{3,4,5,6}
		},
		{
			{4,5,6,7},
			{5,6,7,8},
			{6,7,8,9}
		}
	};
	for (int  i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			for	(int k = 0; k < 4; k++)
			{
				printf("%d\t", arr[i][j][k]);
			}
			printf("\n");
		}
	}
	printf("三维数组的大小:%d\n", sizeof(arr));//96=2*3*4*4=层*行*列*sizeof(数据类型)
	printf("三维数组中的一层大小:%d\n", sizeof(arr[0]));
	printf("三维数组中的一行大小:%d\n", sizeof(arr[0][0]));
	printf("三维数组中的一个元素大小:%d\n", sizeof(arr[0][0][0]));


	printf("层:%d\n", sizeof(arr) / sizeof(arr[0]));//   数组大小/每层大小
	printf("行:%d\n", sizeof(arr)/sizeof(arr[0][0]));//   数组大小/每行大小
	printf("列:%d\n", sizeof(arr[0][0]) / sizeof(arr[0][0][0]));//   行大小/一个元素大小
}

9、字符数组和字符串

char name[10];

表示定义了10字节的内存空间,如果字符串长度大于10,那么存在语法错误,这里所指的字符串包括\0,虽然系统会在结尾加’\0’,但并不会为它开辟新的空间。

定义字符数组可以用以下几种方式:
char *arr = "hello";
char arr[] = "hello"
char arr[] = {'h','e','l','l','o','\0'};
char arr[5] = { 'h','e','l','l','o' };
#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main010_01()
{
	//定义字符数组
	char arr[5] = { 'h','e','l','l','o' };
	//字符
	//char ch = 'a';
	//字符串 字符串结束标志为\0 数组0等同于\0  但不同于’0‘
	//char *arr = "hello";
	//char arr[] = "hello"
	//char arr[] = {'h','e','l','l','o','\0'};
	printf("%s", arr);
	/*for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		printf("%s", arr);

	}*/
}

int main10_02()
{

	//定义字符数组存储字符串,字符串以\0为结束标志
	char ch[10];//只能打印到helloworl   最后还有一位\0

	scanf("%s", ch);
	printf("%s", ch);
	return 0;
}

int main()
{
	//字符串拼接
	char ch1[] = "hello";
	char ch2[] = "world";
	char ch3[20];

	int i = 0;
	int j = 0;
	while (ch1[i] != '\0');
	{
		ch3[i] = ch1[i];
		i++;
	}
	while (ch2[j] != '\0')
	{
		ch3[i + j] = ch2[j];
		j++;
	}
	ch3[i + j] = '\0';
	printf("%s\n", ch3);
	return 0;
}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/10277.html

(0)
上一篇 2023年 4月 22日 下午11:57
下一篇 2023年 4月 22日 下午11:57

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信