如何选择一行来计算c中的矩阵减法

时间:2013-07-30 05:59:37

标签: c

我的矩阵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;
    }
  }      
} 

1 个答案:

答案 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 ;
 }