【发布时间】:2016-11-10 07:56:18
【问题描述】:
我有以下作业问题,我似乎无法找到解决方案。 问题:创建一个 5x5 整数矩阵,并检查矩阵的任何元素是否在区间 [-10,15] 内,并将属于区间的元素添加到 25 个元素的数组中。该程序应以 C/C++ 实现。问题:现在我编写了以下代码,我遇到的问题是当我尝试在嵌套的 for 循环中传输我发现符合条件的元素时。问题是当我循环遍历 5 个元素并同时迭代 25 个元素时。我怎样才能做到这一点?这是我的代码:
#include <stdio.h>
#include "stdafx.h"
void main()
{
int i, j, k, l, m;
int a[5][5];
int b[25];
printf("Please enter the elements of the matrix:\n");
for ( i = 0; i < 5; i++)
{
for ( k = 0; k < 5; k++)
{
scanf_s("%d", &a[i][k]);
}
}
for ( k = 0; k < 25; k++)
{
for ( l = 0; l < 5; l++)
{
if (a[k][l] > -10 && a[k][l] < 15) {
b[k] = a[k][l];
}
}
}
printf("The elements which are in the range [-10, 15], are the following:\n");
for (m = 0; m < 25; m++)
{
printf("%d\n", b[m]);
}
}
【问题讨论】:
-
在循环变量@addy 上更正,除了他们还需要保留一个计数器,该计数器保留用于
b数组的索引,并在每次添加元素时递增它。 例如b[bi++] = a[k][l] -
你说得对,帕迪。让我编辑我的评论。我无法编辑,所以我删除了我之前的评论并添加了新评论。
-
Ivan 删除 K -10 && a[k][l]
-
b[k]是错误的。您需要使用独立索引访问b(不是您用于访问a的索引之一)。