mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7
92 字
1 分钟
数组与排序
2026-07-12

一、一维数组#

1.1 一维数组的输入输出#

#include <stdio.h>
int main() {
int arr[10];
int i;
printf("请输入10个整数:\n");
for(i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
printf("数组元素为:\n");
for(i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}

1.2 课前测#

#include <stdio.h>
int main() {
int a[5], i, sum = 0;
for(i = 0; i < 5; i++) {
scanf("%d", &a[i]);
sum += a[i];
}
printf("sum=%d\n", sum);
return 0;
}

1.3 统计数字的数量#

#include <stdio.h>
int main() {
int a[10], i, count = 0;
for(i = 0; i < 10; i++) {
scanf("%d", &a[i]);
if(a[i] > 0) count++;
}
printf("正数的个数为:%d\n", count);
return 0;
}

1.4 军事训练等级考评#

#include <stdio.h>
int main() {
int score[10], i, level[4] = {0};
for(i = 0; i < 10; i++) {
scanf("%d", &score[i]);
if(score[i] >= 90) level[0]++;
else if(score[i] >= 80) level[1]++;
else if(score[i] >= 60) level[2]++;
else level[3]++;
}
printf("优秀:%d,良好:%d,及格:%d,不及格:%d\n", level[0], level[1], level[2], level[3]);
return 0;
}

二、二维数组#

2.1 二维数组基础操作#

#include<stdio.h>
#define M 3
#define N 4
void InputArray(int a[][N], int m, int n)
{
int i, j;
for(i = 0; i < m; i++)
{
for(j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);
}
}
}
void PrintArray(int a[][N], int m, int n)
{
int i, j;
for(i = 0; i < m; i++)
{
for(j = 0; j < n; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
}
int main()
{
int a[M][N] = {1,2,3,4,5,6,7,8,9,10,11,12};
InputArray(a, M, N);
PrintArray(a, M, N);
return 0;
}

2.2 字符串输入#

#include <stdio.h>
int main() {
char str[100];
printf("请输入字符串:\n");
scanf("%s", str);
printf("输入的字符串是:%s\n", str);
return 0;
}

2.3 获取数字字符#

#include <stdio.h>
int main() {
char str[100];
int i = 0;
gets(str);
while(str[i] != '\0') {
if(str[i] >= '0' && str[i] <= '9') {
printf("%c ", str[i]);
}
i++;
}
printf("\n");
return 0;
}

三、排序算法#

3.1 选择排序#

#include <stdio.h>
#define MAXN 10
int main()
{
int i, k, n, a[MAXN] = { 9,7,6,6,3,2,8,1,8,4 };
for (int j = 0; j < 9; j++) {
for (int i = 0; i < 9 - j; i++) {
if (a[i] < a[i + 1]) {
int sign = a[i];
a[i] = a[i + 1];
a[i + 1] = sign;
}
}
}
for (i = 0; i < MAXN; i++)
printf("%d ", a[i]);
return 0;
}

3.2 冒泡排序(交换排序)#

#include <stdio.h>
int main() {
int a[10] = { 2,4,2,57,64,23,45,67,89,12 };
int i, j, flag;
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9 - i; j++)
{
if (a[j] > a[j + 1])
{
flag = a[j];
a[j] = a[j + 1];
a[j + 1] = flag;
}
}
}
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}

3.3 杨辉三角#

#include<stdio.h>
#define N 30
int main()
{
int a[N][N];
int n, i, j;
printf("请输入杨辉三角的行数:");
scanf("%d", &n);
for(i = 0; i < n; i++)
{
a[i][0] = 1;
a[i][i] = 1;
for(j = 1; j < i; j++)
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
for(i = 0; i < n; i++)
{
for(j = 0; j <= i; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

数组与排序
https://blog.radarweb.top/posts/c/数组与排序/
作者
Sherry
发布于
2026-07-12
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录