Напечатайте один раз для цикла в C - PullRequest
0 голосов
/ 18 мая 2018

У меня есть этот код

if(orden[i]==1)
    for(i=0; i<ARRAY_SIZE; i++)
        if(v[i]<v[i+k])
            printf("print once "); 

Как мне сделать так, чтобы он печатал строку только один раз, если выполняется условие внутри цикла for?

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

Используйте команду break для выхода из цикла for.

if(orden[i]==1)
    for(i=0; i<ARRAY_SIZE; i++)
        if(v[i]<v[i+k])
        {
            printf("print once "); 
            break;
        }
0 голосов
/ 19 мая 2018

Если v [i] не больше, чем v [i + k], вы выходите из 'while' и затем печатаете свое значение:

while ((i < ARRAY_SIZE) && (v[i] > v[i+k])) {
    i++;
}
printf("print once ");

В качестве альтернативы вы можете использовать логическую переменную, ноне лучшее решение по причине памяти.

0 голосов
/ 18 мая 2018

Я бы рекомендовал сначала изменить индексные переменные, чтобы избежать путаницы.Я предлагаю использовать i и j.И код будет более или менее в форме:

if(orden[i]==1)  
  for(j=0; j<ARRAY_SIZE; j++)
    if((j==0)&&(v[j]<v[j+k]))
      printf("print once ");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...