Я принимаю онлайн-курс.как исправить этот код
вопрос домашнее задание:
Используйте функцию рэнд(), чтобы напечатать первые 50 чисел от 1 до 100. Попытка поставить каждые 5 случайное число только в одной строке. Используйте функцию setw() для выравнивания.
В настоящее время у меня есть следующее. Я знаю, что это бесконечный цикл и ошибка, о которой я думаю, проблема в моем заявлении if
.
#include <iostream>
#include <time.h>
#include <iomanip>
using namespace std;
int main() {
int random_number;
srand(time(NULL));
random_number = rand() % 100 + 1;
cout << "50 random numbers are:" << endl;
while (random_number < 100, rand() % 100 + 1)
{
cout << random_number << setw(5) << endl;
if (random_number == 100)
break;
}
system("pause");
}
Вопрос не ясен для меня. Вы пытаетесь напечатать 50 случайных чисел в диапазоне '[1, 100]'? Вы в порядке с повторением (то есть, вы хотите, чтобы номера были уникальными)? –
Назначение состоит в том, чтобы напечатать 50 номеров, поэтому начните с этого, создайте цикл цикла, который каждый раз выполняет итерацию в 50 раз, а затем выполняет форматирование строк соответствующим образом. –
Также обратите внимание, что: 'random_number <100, rand()% 100 + 1'. Оператор запятой выполнит 'random_number <100', отбросит его возвращаемое значение, выполнит' rand()% 100 + 1' и вернет его возвращаемое значение. Это означает, что выражение эквивалентно 'rand()% 100 + 1'. –