c - 检查矩阵的第一行和最后一行是否只有负值
问题描述
我在制作这个程序时遇到了一些问题我创建了两个数组,我去插入第一行和最后一行,然后我检查每个元素是否> 0,但它似乎不起作用..
那是我的代码:
int main()
{
int i, j, n, m;
int matrix[10][20];
int first_row[m];
int last_row[m];
printf("Enter number of rows : ");
scanf("%d", &n);
printf("Enter number of columns : ");
scanf("%d", &m);
/* Input data in matrix */
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
printf("Enter data in [%d][%d]: ", i, j);
scanf("%d", &matrix[i][j]);
if(matrix[i=0][j]) // First row
first_row[i] = matrix[i=0][j];
if(matrix[i=n-1][j]) // second row
last_row[i] = matrix[i=n-1][j];
}
}
for(i=0;i<n;i++)
{
for (j=j+1;j<n;j++)
{
if(last_row[i] < 0)
printf("Negative element");
}
}
}
解决方案
我假设在 if 条件中matrix[i=0][j]
,并matrix[i=n-1][j]
检查当前输入的行是分别是第一行还是最后一行。如果是这种情况,那么您只需要简单地检查 i 是 0 ( i == 0
) 还是 n - 1 ( i == n-1
) 而不是使用matrix[i=0][j]
and matrix[i=n-1][j]
。
此外,在索引所在的 for 循环中,该行first_row[i] = matrix[i=0][j];
和last_row[i] = matrix[i=n-1][j];
将更新i
您应该避免的内容。i
如果您打算将值分配给first_row
and last_row
,您应该将它们更改为first_row[j] = matrix[0][j];
andlast_row[j] = matrix[n-1][j];
以获得期望的结果(注意j
应该用于索引first_row
而last_row
不是i
因为j
表示矩阵列)。
如果要检查矩阵中的每个元素是否有负值,for (j=j+1;j<n;j++)
则应将 for 循环更改为for (j=0;j<m;j++)
并且matrix[i][j]
应使用last_row[i]
.
编辑:也正如@chux 建议的那样,您应该考虑在输入后初始化matrix
,first_row
和last_row
数组,n
以m
避免分别大于 10 和 20的任何n
和值的分段错误。m
#include <stdio.h>
int main()
{
int i, j, n, m;
printf("Enter number of rows : ");
scanf("%d", &n);
printf("Enter number of columns : ");
scanf("%d", &m);
int matrix[n][m];
int first_row[m];
int last_row[m];
/* Input data in matrix */
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
printf("Enter data in [%d][%d]: ", i, j);
scanf("%d", &matrix[i][j]);
if(i == 0) // First row
first_row[j] = matrix[0][j];
if(i == n-1) // second row
last_row[j] = matrix[n-1][j];
}
}
for(i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
if(matrix[i][j] < 0)
printf("Negative element %d\n", matrix[i][j]);
}
}
}
推荐阅读
- python - 如何使用pyspark将具有多个可能值的Json数组列表转换为数据框中的列
- javascript - 从总秒数数组的中位数中查找确切的小时数、分钟数、秒数
- html - SVG 剪辑路径动画在 Firefox 上不起作用
- c# - 每次单击按钮时将更新的变量数据分配给 TextBlock
- algorithm - 如何找到按位“与”在给定范围内的所有子数组?
- r - 为什么拉普拉斯矩阵不对称?
- python - 尝试使用“pip install flask-wtf”安装 flask-wtf 后没有名为“flask_wtf”的模块
- django - / 'pages_extras' 处的 TemplateSyntaxError 不是已注册的标签库。必须是 Django 2 中的一个
- python - pymodbus输入寄存器中的负数应该如何表示?
- javascript - for/in 循环递减 javascript