2015-04-01 5 views
1
int liContador1, liContador2, liElse = 0; 

    for (liContador1 = 1; liContador1 <= liNumeroB; liContador1++) 
    { 
     for (liContador2 = liContador1 + 1; liContador2 <= liNumeroB; liContador2++) 
     { 
      if (NumerosAmigos(liContador1, liContador2)) 
       printf("\n%d, %d", liContador1, liContador2); 

      else 
       liElse++; **or what can i do?** 
     } 
    } 

    if (liElse != 0) 
     printf("\nThe numbers are not friends.\n"); 

Я делаю программу для поиска предыдущих дружественных чисел до заданного значения. Программа печатает найденную пару чисел, но ей нужно отобразить сообщение, если нет пары дружественных чисел.Любая идея выхода FOR и печать сообщения

Проблема в том, что я не могу думать о том, как это сделать. Я попытался с BREAK, continiue, БУХГАЛТЕРАМИ ..

Это то, что я пытался:

else 
       liElse++; 

Кто-нибудь есть какие-либо идеи о том, как я могу сделать, чтобы решить эту проблему?.

Приветствуем вас и благодарим всех за помощь!.

+0

Вам не нужно отображать номера, найденные после цикла? Я прав? –

+1

Вы хотите подсчитать количество найденных дружественных чисел (так что при печати вы увеличиваете 'liElse'). Если после цикла это число равно нулю, напечатайте «Номера не друзья». Обратите внимание, что лучше печатать новые строки в конце выходов, а не в начале. Это помогает сообщениям появляться своевременно, среди других преимуществ. –

+0

СПАСИБО Джонатан Леффлер, я исправил его. Большое спасибо!... –

ответ

0

рассмотрите следующий код, используя один BOOL var.

int liContador1, liContador2; 
bool bBreak = true; 
for (liContador1 = 1; bBreak && (liContador1 <= liNumeroB); liContador1++) 
{ 
    for (liContador2 = liContador1 + 1; liContador2 <= liNumeroB; liContador2++) 
    { 
     if (NumerosAmigos(liContador1, liContador2)) 
     { 
      printf("\n%d, %d", liContador1, liContador2); 
     } 
     else 
     { 
      bBreak = false; 
      break; 
     } 
    } 
} 

if (!bBreak) 
    printf("\nThe numbers are not friends.\n"); 
Смежные вопросы