我的矩阵A
大小为2x3 {7 7 7,4 4 4}
,矩阵B
的大小为2x3 {4 4 4,1 1 1}
和array[c] = {5 5 2}
我希望用户选择一行来进行减法,如果行减法大于数组,则会要求用户选择另一行。
我的问题是,如果我选择第1行减法{7 7 7} - {4 4 4} = {3 3 3}
,第三个值大于2
,它应该会中断并要求用户选择另一行,但我的代码无效方式。
while(count!=0){
printf("enter row number");
scanf("%d",&i);
if(running[i]){
exec=1;
for(j=0;j<column;j++){
if(A[i][j]-B[i][j]>array[j]){
exec=0;
break;
}
}
if(exec){
printf("Row %d is executing\n",i+1);
running[i]=0;
count--;
break;
}
}
}
答案 0 :(得分:0)
嗨请使用do while循环找到下面的代码,
注意:如果您希望可以使用malloc
动态分配,我正在静态初始化数组#include <stdio.h>
int main()
{
int rowNum,i,j;
char execute = 'N' ; // flag variable used to repeat the loop
int A[2][3] = {7,7,7,4,4,4}; // Allocate the matrices dynamically if required
int B[2][3] = {4,4,4,2,2,2} ;
int c[3] = {5,5,2};
do {
execute = 'N';
printf("\nEnter row number to perform substraction:");
scanf("%d",&rowNum);
if(rowNum <= 2) // checking whether entered row number is greater than 2
{
for( i = rowNum-1, j =0 ; j <3 ; j++)
{
if((A[i][j] - B[i][j]) > c[j] )
{
execute = 'Y' ;
printf("Condition failed,Enter valid row number");
break ;
}
}
}
else
printf("Crossed max number of rows\n");
}
while(execute=='Y');
return 0 ;
}