用C语言,使用二维数组int[4][5]存储键盘输入的二十个整数,将这二十个数中的正整数先按顺序存储于另一个一维数组b[20]中,(先行后列顺序存储),输出b中各元素
时间: 2023-12-25 10:06:00 浏览: 80
好的,以下是使用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int a[4][5];
int b[20];
int count = 0;
// 读入二十个整数
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
scanf("%d", &a[i][j]);
if (a[i][j] > 0) {
b[count++] = a[i][j];
}
}
}
// 输出b中各元素
for (int i = 0; i < count; i++) {
printf("%d ", b[i]);
}
return 0;
}
```
这段代码和Java版的实现思路相同,只是语法有些不同。
首先定义了一个二维数组 `a` 来存储键盘输入的二十个整数,以及一个一维数组 `b` 来存储正整数。使用变量 `count` 来记录 `b` 数组中已经存储了多少个正整数。
然后使用双重循环来读入二十个整数,并且判断它是否为正整数。如果是正整数,就将它存储到 `b` 数组中,并且 `count` 自增。
最后再循环输出 `b` 数组中的元素。注意要使用 `%d` 来输出整数。
相关问题
用C语言,使用二维数组int[4][5]存储键盘输入的二十个整数,输出其中最大值以及所在的下标
好的,以下是使用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int a[4][5];
int max = a[0][0];
int row = 0, col = 0;
// 读入二十个整数
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
scanf("%d", &a[i][j]);
if (a[i][j] > max) {
max = a[i][j];
row = i;
col = j;
}
}
}
// 输出最大值及其所在的下标
printf("Max: %d\n", max);
printf("Row: %d, Col: %d\n", row, col);
return 0;
}
```
这段代码先定义了一个二维数组 `a` 来存储键盘输入的二十个整数。然后定义了变量 `max` 来记录数组中的最大值,以及变量 `row` 和 `col` 来分别记录最大值所在的行和列。
接着使用双重循环来读入二十个整数,并且判断它是否大于 `max`。如果大于 `max`,就更新 `max` 为当前值,并且记录下当前值所在的行和列。
最后输出 `max` 以及它所在的行和列。
C语言输入二维数组输出数字
可以使用双重循环遍历二维数组,然后使用printf函数输出数组中的每个元素。具体代码如下:
```c
#include <stdio.h>
int main() {
int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
这段代码定义了一个3行4列的二维数组,并使用双重循环遍历输出数组中的每个元素。使用printf函数输出时,"%d "表示输出一个整数并在后面加一个空格,"\n"表示换行。
阅读全文