数组与函数C语言作业 1.输入一个5行5列的int型数组,输出每行和每列的平均值 2.编写一个函数sortStrings,该函数接受一个字符串数组和数组的大小作为参数,使用冒泡排序算法对字符串数组进行排序。
时间: 2024-12-16 16:16:43 浏览: 17
在C语言中,你可以通过以下几个步骤来完成这两个任务:
1. 输入一个5行5列的整数(int)数组并计算每行和每列的平均值:
```c
#include <stdio.h>
void calculate_row_col_avg(int arr[5][5], int rows, int cols) {
// 计算每行的平均值
for (int i = 0; i < rows; i++) {
int sum = 0;
for (int j = 0; j < cols; j++) {
sum += arr[i][j];
}
float avg = (float)sum / cols;
printf("Row %d average: %.2f\n", i+1, avg);
}
// 计算每列的平均值
for (int j = 0; j < cols; j++) {
int sum = 0;
for (int i = 0; i < rows; i++) {
sum += arr[i][j];
}
float avg = (float)sum / rows;
printf("Column %d average: %.2f\n", j+1, avg);
}
}
int main() {
int arr[5][5];
// 读取数组元素
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
scanf("%d", &arr[i][j]);
}
}
// 调用函数计算并打印平均值
int rows = 5, cols = 5;
calculate_row_col_avg(arr, rows, cols);
return 0;
}
```
2. 编写一个名为`sortStrings`的函数,使用冒泡排序算法对字符串数组进行排序:
```c
#include <stdio.h>
#include <string.h>
// 冒泡排序字符串数组的函数
void sortStrings(char strings[][20], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (strcmp(strings[j], strings[j + 1]) > 0) {
char temp[20];
strcpy(temp, strings[j]); // 备份当前元素
strcpy(strings[j], strings[j + 1]);
strcpy(strings[j + 1], temp); // 将较大的移动到后位
}
}
}
}
int main() {
char strings[5][20]; // 假设我们有5个字符串
int size;
// 读取字符串数组和大小
printf("Enter number of strings and their values:\n");
scanf("%d", &size);
for (int i = 0; i < size; i++) {
fgets(strings[i], sizeof(strings[i]), stdin); // 从用户那里获取字符串,包括换行符
strings[i][strcspn(strings[i], "\n")] = '\0'; // 删除换行符
}
// 对字符串数组进行排序
sortStrings(strings, size);
// 打印排序后的字符串
for (int i = 0; i < size; i++) {
printf("%s ", strings[i]);
}
printf("\n");
return 0;
}
```
阅读全文