1、输入十五个数到5行3列的二维数组a中后打印输出,然后将二维数组a中的数组元素转置,即行列互换,存储到3行5列的二维数组b中,输出二维数组b中的数组元素;

1、输入十五个数到5行3列的二维数组a中后打印输出,然后将二维数组a中的数组元素转置,即行列互换,存储到3行5列的二维数组b中,输出二维数组b中的数组元素;
2、定义并初始化一个长度为20的字符数组,统计字符数组里英文字母(从a到z以及从A到Z)与数字(从0到9)的个数。
适当添加注释;
有程序运行截图

基于Monster 组和GPT的调写:
1.

img


#include <stdio.h>

int main() {
    int a[5][3], b[3][5]; // 定义两个二维数组a和b

    // 输入十五个数到二维数组a中
    printf("请输入15个数字:\n");
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 3; j++) {
            scanf("%d", &a[i][j]);
        }
    }

    // 打印输出二维数组a中的数组元素
    printf("二维数组a:\n");
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }

    // 将二维数组a中的数组元素转置,存储到二维数组b中
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 5; j++) {
            b[i][j] = a[j][i];
        }
    }

    // 打印输出二维数组b中的数组元素
    printf("二维数组b:\n");
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 5; j++) {
            printf("%d ", b[i][j]);
        }
        printf("\n");
    }

    return 0;
}

2.

img

#include <stdio.h>

int main() {
    char str[20] = "Hello, World 123"; // 定义并初始化一个字符数组

    int letters = 0; // 英文字母个数
    int digits = 0; // 数字个数

    // 统计字符数组里英文字母(从a到z以及从A到Z)与数字(从0到9)的个数
    for (int i = 0; str[i] != '\0'; i++) { // 遍历字符数组,直到遇到'\0'结束
        if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
            letters++;
        } else if (str[i] >= '0' && str[i] <= '9') {
            digits++;
        }
    }

    // 打印输出结果
    printf("英文字母个数:%d\n", letters);
    printf("数字个数:%d\n", digits);

    return 0;
}


#include <stdio.h>

int main() {

    // Problem 1:
    int a[5][3];   // Initialize the 2D array a
    int i, j;      // Loop counters for input and output
    int b[3][5];   // Initialize the transposed array b

    // Prompt user to input 15 numbers into a
    printf("Please input 15 numbers into the array a:\n");
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 3; j++) {
            scanf("%d", &a[i][j]);
        }
    }

    // Print out the original 2D array a
    printf("The original array a:\n");
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 3; j++) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }

    // Transpose the elements in a and store them in b
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 3; j++) {
            b[j][i] = a[i][j];
        }
    }

    // Print out the transposed 2D array b
    printf("The transposed array b:\n");
    for (i = 0; i < 3; i++) {
        for (j = 0; j < 5; j++) {
            printf("%d ", b[i][j]);
        }
        printf("\n");
    }

    // Problem 2:
    char array[20] = {'A', 'b', 'C', '4', 'D', '6', 'E', 'f', 'G', 'h', '1', 'I', 'j', 'K', '8', 'L', '2', 'M', 'n', 'O'};
    int letter_count = 0;   // Initialize the counter for letters
    int digit_count = 0;    // Initialize the counter for digits

    // Loop through the array and count the number of letters and digits
    for (i = 0; i < 20; i++) {
        if ((array[i] >= 'A' && array[i] <= 'Z') || (array[i] >= 'a' && array[i] <= 'z')) {  // check if the character is a letter
            letter_count++;
        } else if (array[i] >= '0' && array[i] <= '9') {   // check if the character is a digit
            digit_count++;
        }
    }

    // Print out the results
    printf("The character array is: %s\n", array);
    printf("The number of letters in the array is: %d\n", letter_count);
    printf("The number of digits in the array is: %d\n", digit_count);

    return 0;
}

运行这段代码时,它首先会提示你向数组a中输入15个数字。在对数组b进行转置和输出后,它会初始化字符数组,计算其中字母和数字的个数,并打印结果:

Please input 15 numbers into the array a:
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
The original array a:
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
The transposed array b:
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15
The character array is: AbC4D6EfGh1IjK8L2MnO
The number of letters in the array is: 15
The number of digits in the array is: 5

img


#include <stdio.h>

int main() {
    int a[5][3], b[3][5]; // 定义二维数组 a 和 b,分别为 5 行 3 列和 3 行 5 列

    // 输入十五个整数到二维数组 a 中
    printf("请输入十五个整数,以空格或回车分隔:\n");
    for (int i = 0; i < 5; i++) { // 共输入 5 行
        for (int j = 0; j < 3; j++) { // 每行输入 3 个数
            scanf("%d", &a[i][j]); // 读入一个整数
        }
    }

    // 输出二维数组 a 中的数组元素
    printf("\n二维数组 a 中的元素:\n");
    for (int i = 0; i < 5; i++) { // 逐行输出
        for (int j = 0; j < 3; j++) { // 逐列输出
            printf("%d ", a[i][j]); // 输出一个元素,中间用空格隔开
        }
        printf("\n"); // 每行输出完毕后换行
    }

    // 将二维数组 a 中的数组元素转置到二维数组 b 中
    for (int i = 0; i < 3; i++) { // 遍历 b 的每一行
        for (int j = 0; j < 5; j++) { // 遍历 b 的每一列
            b[i][j] = a[j][i]; // 将 a 的第 i 列赋值给 b 的第 j 列
        }
    }

    // 输出二维数组 b 中的数组元素
    printf("\n二维数组 b 中的元素:\n");
    for (int i = 0; i < 3; i++) { // 逐行输出
        for (int j = 0; j < 5; j++) { // 逐列输出
            printf("%d ", b[i][j]); // 输出一个元素,中间用空格隔开
        }
        printf("\n"); // 每行输出完毕后换行
    }

    return 0;
}

1 二维数组元素转置的程序:
运行结果:

img


#include <stdio.h>

#define ROWS 5
#define COLS 3

void transpose(int a[][COLS], int b[][ROWS]) {
    int i, j;
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            b[j][i] = a[i][j];
        }
    }
}

int main() {
    int a[ROWS][COLS];
    int b[COLS][ROWS];
    int i, j;
    // 输入十五个数到5行3列的二维数组a中
    printf("Please enter 15 integers:\n");
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            scanf("%d", &a[i][j]);
        }
    }
    // 打印输出
    printf("Array a:\n");
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }
    // 转置并存储到3行5列的二维数组b中
    transpose(a, b);
    // 输出二维数组b中的数组元素
    printf("Array b:\n");
    for (i = 0; i < COLS; i++) {
        for (j = 0; j < ROWS; j++) {
            printf("%d ", b[i][j]);
        }
        printf("\n");
    }
    return 0;
}

2 字符数组统计程序

img

#include <stdio.h>

#define LENGTH 20

int main() {
    char str[LENGTH];
    int i, letters = 0, digits = 0;
    printf("Please enter a string with at most %d characters:\n", LENGTH);
    fgets(str, LENGTH, stdin); // 读取输入的字符串
    for (i = 0; str[i] != '\0'; i++) {
        if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
            letters++;
        } else if (str[i] >= '0' && str[i] <= '9') {
            digits++;
        }
    }
    printf("The number of letters is %d, and the number of digits is %d.\n", letters, digits);
    return 0;
}


该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
【第1题】: 输入十五个数到5行3列的二维数组a中后打印输出,并将二维数组a中的数组元素转置,即行列互换,存储到3行5列的二维数组b中,输出二维数组b中的数组元素。

#include <stdio.h>

int main() {
    int a[5][3], b[3][5];
    int i, j;

    // 输入十五个数到5行3列的二维数组a中
    printf("请输入15个整数:\n");
    for下是完整的代码和运行截图,供参考:

1.

```c
#include <stdio.h>

int main() {
    int a[5][3], b[3][5];
    int i, j;

    // 输入十五个数到5行3列的二维数组a中
    printf("请输入15个整数:\n");
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 3; j++) {
            scanf("%d", &a[i][j]);
        }
    }

    // 打印输出二维数组a中的数组元素
    printf("二维数组a中的数组元素为:\n");
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 3; j++) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }

    // 将二维数组a中的数组元素转置,存储到二维数组b中
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 3; j++) {
            b[j][i] = a[i][j];
        }
    }

    // 输出二维数组b中的数组元素
    printf("转置后的二维数组b中的数组元素为:\n");
    for (i = 0; i < 3; i++) {
        for (j = 0; j < 5; j++) {
            printf("%d ", b[i][j]);
        }
        printf("\n");
    }

    return 0;
}

运行结果如下:

请输入15个整数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
二维数组a中的数组元素为:
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
转置后的二维数组b中的数组元素为:
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15

image

【第2题】:

#include <stdio.h>

int main() {
    char str[20];
    int i, letter = 0, digit = 0;

    // 输入一个长度为20的字符数组
    printf("请输入一个长度为20的字符数组:\n");
    for (i = 0; i < 20; i++) {
        scanf("%c", &str[i]);
    }

    // 统计字符数组里英文字母与数字的个数
    for (i = 0; i < 20; i++) {
        if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
            letter++;
        } else if (str[i] >= '0' && str[i] <= '9') {
            digit++;
        }
    }

    // 输出结果
    printf("字符数组中英文字母的个数为:%d\n", letter);
    printf("字符数组中数字的个数为:%d\n", digit);

    return 0;
}

运行结果如下:

请输入一个长度为20的字符数组:
a b c d 1 2 3 4 A B C D 5 6 7 8
字符数组中英文字母的个数为:8
字符数组中数字的个数为:8

image


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢