2016-11-20 8 views
-2

как я могу переписать это на C?Псевдокод в C

for i = 1; i <= N && !quit; i++ 
     { 
     for j = 1; i <= N && !quit; j++ 
      { 
      quit = x(i,j) equals y(i,j) 
      } 
     } 

Я пытался что-то вроде этого

for (i = 1; i >= 1; i++) 
     { 
     for j = 1; j >= 1; j++) 
      { 
      if (x==y) 
        printf("Good"); 
      else 
        continue; 
      } 
     } 

Но я думаю, что это полный нонсенс, и я просто не могу понять, правильное решение. Программа подсчитывает два уравнения: x=a+u*i; y=b+v*j, где я знаю a, b, u, v и мне нужен (x=y), еще раз повторяем до x=y. Если он не может быть равным, он будет printf("Wrong").

+1

Проверьте разницу между оператором присваивания и оператором равенства – snr

+0

Ваш код C, вероятно, должен выглядеть намного более похожим на псевдокод. Похоже, что 'x' и' y' должны быть функциями или, возможно, массивами в зависимости от «синтаксиса» псевдокода. Кроме того, если 'x' и' y' являются массивами, вам может потребоваться настроить некоторые вещи из-за того, что C имеет 0-массивные массивы, в то время как многие описания псевдокодов предполагают массивы на основе 1. –

ответ

0

Попробуйте это:

for (i=1; i <= N && !quit; i++) 
{ 
    for (j=1; j <= N && !quit; j++) 
    { 
      if (x==y){ 
       printf("Good"); 
       break; 
      } 

      if(j==N && i==N && x!=y){ 
       printf("Wrong"); 
      } 

    } 
} 
-1

Взгляните на следующий код:

unsigned i; 
    unsigned j; 
    bool quit = false; 
    for (i = 1; i <= N && !quit; i++) 
    { 
     for (j = 1; j <= N && !quit; j++) 
     { 
      if (x[i][j] == y[i][j]) 
      { 
      quit = true; 
      } 
     } 
    } 

я предположил, что х и у являются глобальные массивы, такие как следующие:

int x[N+1][N+1] = { 0 }; 
int y[N+1][N+1] = { 0 }; 

Rearange ваш кода для ваших нужд.