C语言 有一个5行3列的二维数组a,随机输入15个数,再输入一个整数10,在数组中查找此数,若找到,输出下标,否则输出0。
时间: 2023-09-18 14:05:29 浏览: 55
### 回答1:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a[5][3];
int i, j, num, flag = 0;
// 随机生成15个数
srand(time(NULL));
for (i = 0; i < 5; i++)
{
for (j = 0; j < 3; j++)
{
a[i][j] = rand() % 100;
printf("%d ", a[i][j]);
}
printf("\n");
}
// 输入一个整数
printf("请输入一个整数:");
scanf("%d", &num);
// 在数组中查找此数
for (i = 0; i < 5; i++)
{
for (j = 0; j < 3; j++)
{
if (a[i][j] == num)
{
printf("找到了,下标为[%d][%d]\n", i, j);
flag = 1;
break;
}
}
if (flag == 1)
break;
}
// 没找到,输出0
if (flag == 0)
printf("没找到,输出0\n");
return 0;
}
```
### 回答2:
C语言中,我们可以使用以下代码实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int a[5][3]; // 定义一个5行3列的二维数组a
int num, flag = 0; // num表示要查找的整数,flag用于标记是否找到
int i, j; // 循环变量
// 使用随机数填充二维数组
srand(time(0));
for (i = 0; i < 5; i++) {
for (j = 0; j < 3; j++) {
a[i][j] = rand() % 100; // 生成0-99的随机数
}
}
// 打印二维数组
printf("二维数组a:\n");
for (i = 0; i < 5; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
// 输入要查找的整数
printf("\n请输入要查找的整数:");
scanf("%d", &num);
// 在二维数组中查找整数
for (i = 0; i < 5; i++) {
for (j = 0; j < 3; j++) {
if (a[i][j] == num) {
printf("找到了,下标为[%d][%d]\n", i, j);
flag = 1;
break;
}
}
if (flag == 1) {
break;
}
}
// 若没有找到,输出0
if (flag == 0) {
printf("未找到\n");
}
return 0;
}
```
以上代码通过随机生成的二维数组a和输入的整数num,使用两层循环遍历整个二维数组,逐个比较查找目标是否存在于数组中。如果找到了,输出该元素的下标,否则输出未找到的提示。
### 回答3:
可以通过以下步骤来解决这个问题:
1. 定义一个5行3列的二维数组a,并利用随机数生成器(例如rand函数)生成15个数填充到数组a中。假设生成的随机数范围是1到100。
2. 输入一个整数num作为目标值。
3. 使用嵌套循环遍历数组a,逐个比较数组元素与目标值num。如果找到相等的值,记录该位置的行索引和列索引。
4. 当遍历完整个数组a后,在判断是否找到目标数。如果找到了,输出该数所在的行索引和列索引;否则,输出0表示没有找到。
下面是C语言代码的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int a[5][3];
int i, j;
int num;
int found = 0; // 用于标记是否找到目标数
int row = 0, col = 0; // 记录目标数的位置
srand((unsigned)time(NULL)); // 初始化随机数种子
// 生成随机数并填充到数组a中
for (i = 0; i < 5; i++) {
for (j = 0; j < 3; j++) {
a[i][j] = rand() % 100 + 1;
}
}
// 输入目标数
printf("请输入一个整数:");
scanf("%d", &num);
// 在数组a中查找目标数
for (i = 0; i < 5; i++) {
for (j = 0; j < 3; j++) {
if (a[i][j] == num) {
found = 1;
row = i;
col = j;
break;
}
}
if (found) {
break;
}
}
// 输出结果
if (found) {
printf("目标数 %d 的位置为:行:%d 列:%d\n", num, row, col);
} else {
printf("目标数 %d 未找到。\n", num);
}
return 0;
}
```
希望能对你有帮助!