1.题目:对10个数进行排序
分析:利用循环将每一个数和后一个数进行比较,然后交换位置。
#include<stdio.h>
#include<stdlib.h>
void main()
{
int temp;
int a[10] = { 12, 45, 78, 2, 44, 36, 95, 102, 405, 302 };
for (int i = 0; i < 10; i++)
{
for (int j = i + 1; j < 10; j++)
if (a[i]>a[j])//升序
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
for (int k = 0; k < 10; k++)
{
printf("%d,", a[k]);
}
system("pause");
}
打印结果为:
2.题目:求一个3*3矩阵对角线元素之和
分析:定义一个二维数组,通过下标求出和
#include<stdio.h>
#include<stdlib.h>
void main()
{
int a[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int sum=0;
for (int i = 0; i < 3; i++)//先计算出(0,0),(1,1),(2,2)
{
sum += a[i][i];
}
for (int j = 2; j >=0; j--)//(0,2),(1,1),(2,0)
{
sum += a[2 - j][j];
}
printf("%d\n", sum);
system("pause");
}
打印结果为:
3.题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
分析:这里我按照升序的规律插入,比较插入数与数组中每个数的大小,当插入数小于或者等于数组中某个数,该位置就是插入的位置
#define #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void main()
{
int num;
int a[10] = { 1, 2, 3, 4, 5, 9, 17, 18, 29, 102 };//升序
int b[11];//用来储存新的数组
printf("请输入一个要插入的整数:");
scanf("%d", &num);
for (int i = 0; i < 10; i++)
{
b[i] = a[i];
if (num <= a[i])//直到有小于或者等于的,即是要插入的位置
{
b[i] = num;
for (int j = i; j < 10; j++)
{
b[j + 1] = a[j];
}
break;
}
}
for (int i = 0; i < 11; i++)
{
printf("%d,", b[i]);
system("pause");
}
结果: