用c语言编写一个程序,要求用户输入9个100以内的整数,存储在一个数组中。1.将这个数组由小到大和由大到小排列,并把他们分别打印出来。2.创建一个3x3的二维数组,将输入的数组填充到这个二维数组中,并以矩阵的形式打印这个二维数组,并计算出每一行每一列的和,将其分别放在每行每列旁边
时间: 2024-10-13 22:04:31 浏览: 34
在C语言中,你可以按照以下步骤编写一个程序来满足上述需求:
首先,我们需要定义两个函数,一个用于排序数组,另一个用于生成并打印二维数组。
```c
#include <stdio.h>
#include <stdlib.h>
// 冒泡排序函数,按升序排列
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 打印二维数组及行列和
void printMatrix(int matrix[3][3], int rowSums[3], int colSums[3]) {
for (int i = 0; i < 3; i++) {
printf("Row %d: ", i);
for (int j = 0; j < 3; j++) {
printf("%d ", matrix[i][j]);
rowSums[i] += matrix[i][j];
colSums[j] += matrix[i][j];
}
printf("| Sum: %d\n", rowSums[i]);
}
for (int i = 0; i < 3; i++) {
printf("Column %d: ", i);
for (int j = 0; j < 3; j++) {
printf("%d ", colSums[j]);
}
printf("| Sum: %d\n", colSums[i]);
}
}
int main() {
int inputArray[9];
int n = 9;
// 用户输入9个100以内的整数
printf("Enter 9 numbers between 0 and 100: ");
for (int i = 0; i < n; i++) {
scanf("%d", &inputArray[i]);
}
// 排序数组
bubbleSort(inputArray, n);
// 创建并打印3x3矩阵
int matrix[3][3], rowSums[3] = {0}, colSums[3] = {0};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3 && i * 3 + j < n; j++) {
matrix[i][j] = inputArray[i * 3 + j];
}
}
printMatrix(matrix, rowSums, colSums);
return 0;
}
```
阅读全文