-2

我有A大小为 2x3的矩阵和大小为 2x3 的{7 7 7,4 4 4}矩阵和一个B{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;
    }
  }      
} 
4

1 回答 1

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 ;
 }      
于 2013-07-30T07:45:08.387 回答