GrassSs G GrassSs Регистрация 23 Июл 2013 Сообщения 81 Репутация 1 Спасибо 0 Монет 0 27 Ноя 2016 #1 Программа виснет когда попадается не совершенное число. #include stdio.h int main() { int m, n, i, count1 = 0, count2 = 0, a, b, f = 0; scanf("%d%d",&m,&n); for (i = m; i <=n; i++) { a = i; while(a>0) { while(b != 1) {b = a % 2; if (b == 1) {if(a == i) {f = 1;} break;} a = a / 2; count1++;} if(f == 0) {while(b != 0) {b = a % 2; if(b == 0) {f = 1; if(a == 0) {f = 0;} break;} a = a / 2; count2++;} }} if (f == 0 && count1 == count2 - 1) {printf("%d ",i);} f = 0; count1 = 0; count2 = 0; } }
Программа виснет когда попадается не совершенное число. #include stdio.h int main() { int m, n, i, count1 = 0, count2 = 0, a, b, f = 0; scanf("%d%d",&m,&n); for (i = m; i <=n; i++) { a = i; while(a>0) { while(b != 1) {b = a % 2; if (b == 1) {if(a == i) {f = 1;} break;} a = a / 2; count1++;} if(f == 0) {while(b != 0) {b = a % 2; if(b == 0) {f = 1; if(a == 0) {f = 0;} break;} a = a / 2; count2++;} }} if (f == 0 && count1 == count2 - 1) {printf("%d ",i);} f = 0; count1 = 0; count2 = 0; } }
Altspieller A Altspieller Регистрация 28 Сен 2013 Сообщения 97 Репутация 0 Спасибо 0 Монет 0 27 Ноя 2016 #2 Конечно, не можешь найти проблему. Перепиши это же с отступами и нормальными именами переменных - уже половина проблем снимется, тут же читать невозможно. И код выкладывай на pastebin.com или ideone.com Позитивный голос 0
Конечно, не можешь найти проблему. Перепиши это же с отступами и нормальными именами переменных - уже половина проблем снимется, тут же читать невозможно. И код выкладывай на pastebin.com или ideone.com