Member 13180816 Ответов: 1

Передача массива и проверка


Привет, ребята, у меня есть вопрос по процедурной функции. Допустим, пользователь вводит месяц и день, храня месяц в массиве месяцев и день в массиве дней. Когда пользователь вводит день каждой даты, как я могу проверить его, посмотрев в number_days_of_months максимальное количество дней в данном месяце; если больше максимального, он напечатает сообщение об ошибке и прочитает новое значение дня, пока оно не станет действительным для данного месяца.
Пример:
Введите даты в формате ММ/ДД/гг (в конце введите 0 Для месяца):
1/1
2/31
2 месяца 28 дней. Введите действительный день: 30


#include <iostream>
using namespace std;
void prodedure(int number_days_of_months[], int days_month, int days[], int size_days, int months[], int months_size);

int main()
{

	int months[10]; //stores the month enter by the user 
	int days[10];   //stores the days enter by the user
	int number_days_of_months[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; //representing each of the 12 months of the year 




	prodedure(number_days_of_months, 12, days, 10, months, 10);






	return 0;
}



void prodedure(int number_days_of_months[], int days_month, int days[], int size_days, int months[], int months_size)
{

	for (int i = 0; i < months_size; i++)
	{

		cout << "Enter dates in mm/dd format Example 5 31 (end by entering 0 for month):" << endl;
		cin >> months[i] >> days[i];
		
		



	}
	


		
}

		









void  display()
{







}


Что я уже пробовал:

Я попробовал сравнить их, но это не сработало.

Patrice T

- Я попробовал сравнить их, но ничего не вышло.
У вас есть проблема в коде, который вы не показали.

[no name]

Я попытался прочитать вопрос, но он не работает.

1 Ответов

Рейтинг:
0

Member 10317286

Я не верю, что кто-то здесь собирается писать ваш код для вас, но ясно, что вы не знаете, куда идти дальше. Из того, что у вас есть, я предполагаю, что ваш учитель хочет, чтобы вы использовали массив и процедуру, поэтому вот некоторые предложения и вопросы, которые могут помочь вам написать код.

Подумайте о том, что вы пытаетесь сделать, и запишите это короткими предложениями, что-то вроде этого:

input a month.
if the month is 0, exit the program
if the month is not in the range of 1 to 12, print an error and go back and ask for another month
input a day.
if the day is greater than the number of days in the month print an error and ask for day again otherwise print month/day.
go back and start over

Теперь спросите себя, зачем вы помещаете введенный месяц или день в массив? Вы всегда будете иметь только один из них в любой момент времени через петлю.

Затем подумайте о том, как бы вы проверили дни. Один из способов-использовать массив, как вы это сделали(number_days_of_months), с элементом для каждого месяца, который содержит максимальное количество дней для этого месяца. Затем вы хотите сравнить "dayEntered с number_days_of_months для monthEntered". Вы можете легко сделать это в операторе if, но поскольку вам нужно использовать процедуру, это может быть хорошим местом для ее использования.

Итак, теперь подумайте о том, как будет использоваться эта процедура - она будет использоваться в операторе if и должна возвращать "true", если дни составляют от 1 до максимальных дней для введенного месяца, и "false" в противном случае. Это говорит вам о том, что возвращаемый тип-это нечто иное, чем void.

Теперь, когда вы знаете, что ему нужно сделать, подумайте о том, что ему нужно сделать, чтобы определить, какие параметры вам нужно передать ему. Вам нужен день, месяц и количество дней в каждом месяце. То, что у вас есть, довольно близко, и теперь вы должны быть в состоянии понять, как это изменить.

Наконец, соберите все это вместе, и вы можете быть удивлены, насколько легко это сделать.