IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 05—数组 -> 正文阅读

[数据结构与算法]05—数组

写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友。


数组

1.定义一维数组

输入10个地区的面积(面积为整数),对它们由小到大排序并输出排序后的结果。

//先输入10个地区的面积
#include<stdio.h>
int main()
{
	int a[10];
	int i;
	printf("请输入10个面积:\n");
	for (i = 0; i <= 9; i++)
		scanf_s("%d", &a[i]);
	printf("\n");
	return 0;
}

在这里插入图片描述
例1
在这里插入图片描述

#include<stdio.h>
int main()
{
	int i, a[10] = { 0,1,2,3,4,5,6,7,8,9 };
	for (i = 9; i >= 0; i--)
		printf("%d\t", a[i]);
	printf("\n");
	return 0;
}

运行结果:
在这里插入图片描述
练习
![在这里插入图片描述](https://img-blog.csdnimg.cn/d820288bced649aa9e052cfc89a1cab8.png
选择法/冒泡法(沉底法)

//选择法
#include<stdio.h>
int main()
{
	int a[10];
	int i,j,t;
	printf("请输入10个面积:\n");
	for (i = 0; i <= 9; i++)
		scanf_s("%d", &a[i]);
	for(i=0;i<=8;i++)
		for (j = i+1; j <= 9; j++)
			if(a[i]>a[j])
			{
				t = a[i];
				a[i] = a[j];
				a[j] = t;
			}
	printf("排序后的面积依次是:\n");
	for (i = 0; i <= 9; i++)
		printf("%d\t", a[i]);
	printf("\n");
	return 0;
}
//冒泡法(沉底法)
#include<stdio.h>
int main()
{
	int a[10];
	int i,j,t;
	printf("请输入10个面积:\n");
	for (i = 0; i <= 9; i++)
		scanf_s("%d", &a[i]);
	for(j=0;j<=8;j++)
		for (i = 0; i <= 8-j; i++)
			if(a[i]>a[i+1])
			{
				t = a[i];
				a[i] = a[i+1];
				a[i+1] = t;
			}
	printf("排序后的面积依次是:\n");
	for (i = 0; i <= 9; i++)
		printf("%d\t", a[i]);
	printf("\n");
	return 0;
}

2.定义二维数组

在这里插入图片描述
在这里插入图片描述
练习
在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main()
{
	int a[2][3] = { {1,2,3},{4,5,6} };
	int b[3][2], i, j;
	for (i = 0; i <= 1; i++)
		for (j = 0; j <= 2; j++)
			b[j][i] = a[i][j];
	printf("数组b为:\n");
	for (j = 0; j <= 2; j++)
	{
		for (i = 0; i <= 1; i++)
			printf("%d\t", b[j][i]);
		printf("\n");
	}
	return 0;
}

运行结果:
在这里插入图片描述
例2
在这里插入图片描述

#include<stdio.h>
int main()
{
	int i, j, max;
	int a[3][3] = { {1,2,3},{9,8,7},{-10,10,-5} };
	max = a[0][0];
	for (i = 0; i <= 2; i++)
	{
		for (j = 0; j <= 2; j++)
			if (a[i][j] > max)
				max = a[i][j];
	}
	printf("最大元素的值为%d\n",max);
	return 0;
}

运行结果:
在这里插入图片描述

3.定义字符数组

在这里插入图片描述
在这里插入图片描述

4.输出字符数组

1.挨个输出printf("%c",)
2.整体输出printf("%s",)或者puts()

4.1 挨个输出printf("%c",)

例3
在这里插入图片描述

#include<stdio.h>
int main()
{
	char c[15] = { 'H','o','u','B','o','S','h','i',' ','S','h','u','a','i','!' };
	int i;
	for (i = 0; i <= 14; i++)
		printf("%c", c[i]);    //挨个输出字符
	printf("\n");
	return 0;
}

运行结果:
在这里插入图片描述

例4
在这里插入图片描述

#include<stdio.h>
int main()
{
	char c[3][3] = { {' ','*',' '},{'*',' ','*'},{' ','*',' '} };
	int i, j;
	for (i = 0; i <= 2; i++)
	{
		for (j = 0; j <= 2; j++)
			printf("%c", c[i][j]);
		printf("\n");
	}
	return 0;
}

运行结果:
在这里插入图片描述

4.2 整体输出printf("%s",)或者puts()

例5
在这里插入图片描述

#include<stdio.h>
int main()
{
	char c[15] = { 'H','o','u','B','o','S','h','i',' ','S','h','u','a','i','!' };
	printf("%s\n", c);
	return 0;
}
#include<stdio.h>
int main()
{
	char c[15] = { 'H','o','u','B','o','S','h','i',' ','S','h','u','a','i','!' };
	puts(c);
	return 0;
}

在这里需要注意:\0
\0后边的字符不会被输出来
在这里插入图片描述
定义字符的时候养成一个好习惯:在字符最后加一个’\0’

#include<stdio.h>
int main()
{
	char c[16] = { 'H','o','u','B','o','S','h','i',' ','S','h','u','a','i','!','\0' };
	puts(c);
	return 0;
}

在这里插入图片描述

5.输入字符数组

1.挨个单词输入 scanf("%s%s...",2.整体输入gets()

例6
在这里插入图片描述

#include<stdio.h>
int main()
{
	char c1[12],c2[12],c3[12];
	scanf("%s%s%s", c1, c2, c3);
	return 0;
}

在这里插入图片描述

#include<stdio.h>
int main()
{
	char c[18];
	gets_s(c);
	return 0;
}

在这里插入图片描述
练习
在这里插入图片描述

//程序1
#include<stdio.h>
int main()
{
	char c[81];
	int i, dancishu = 1;
	gets_s(c);
	for (i = 0; c[i] != '\0'; i++)
		if (c[i] = ' '&&c[i + 1] != ' ')
			dancishu++;

	return 0;
}
//遇到第一位是空格,需要单词数=0

在这里插入图片描述

//程序2
#include<stdio.h>
int main()
{
	char c[81];
	int i, dancishu = 1;
	gets_s(c);
	if (c[0] == ' ')  //解决程序1存在的问题
		dancishu = 0;
	for (i = 0; c[i] != '\0'; i++)
		if (c[i] = ' '&&c[i + 1] != ' ')
			dancishu++;
	return 0;
}
//最后两位是:空格+\0,会多计算一个单词数

在这里插入图片描述

//程序3
#include<stdio.h>
int main()
{
	char c[81];
	int i, dancishu = 1;
	gets_s(c);
	if (c[0] == ' ')
		dancishu = 0;
	for (i = 0; c[i] != '\0'; i++)
		if (c[i] = ' '&&c[i + 1] != ' '&&c[i+1]!='\0')  //解决程序2的问题
			dancishu++;
	printf("有%d个单词",dancishu);
	return 0;
}

以上是自己通过学习整理所得,大家有相关问题,可以留言,一起交流学习!

转载或者引用本文内容请注明来源及原作者

参考
《C语言》4小时不挂科【猴博士爱讲课】——第4~7课

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 19:10:58  更:2022-01-30 19:11:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 18:19:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码