Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2013, 22:17   #1
Akika
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 36
По умолчанию

Доброго времени суток!
Совсем недавно начала осваивать среду, во многих моментах страшно путаюсь.
Решаю задачи к курсовой. Пожалуйста, помогите найти ошибки)

11.57. Известны данные о количестве осадков, выпавших за каждый день февраля. Найти общее число осадков, выпавших по четным числам месяца.

Код:
#include "stdafx.h"
#include <iostream>
#include <cstdlib>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	system("CHCP 1251");
	bool v;
	double os[28];
	double osv[29];
	double sum1;
	double sum2;
	sum1 = 0;
	sum2 = 0;
	v = 0;
	cout << "Год високостный? Yes(1) No(0)";
	cin>>v;

	if(v = 0) 
	{   
		cout << "Введите данные об осадках";
		for (int i = 0; i < 28) {cin >> os[i];}
		for (int i = 0; i < 28) {if(os[i] / 2 = 0){sum1=sum1+os[i]} }
		cout<<sum1;
	}

	else
	{ 
		cout << "Введите данные об осадках";
		for (int i = 0; i < 29) {cin >> os[i];}
		for (int i = 0; i < 29) {if(osv[i] / 2 = 0){ sum2 = sum2 + os[i]} }
		cout << sum2;
	}
	 
	
	system("pause");

	return 0;
}
1.25. Дана сторона квадрата a. Найти его периметр.
Код:
#include "stdafx.h"
#include <iostream>
#include <cstdlib>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	system("CHCP 1251");
	int a;
	cout<<"Введите сторону квадрата ";
	cin >> a;
	int P = 4 * a;

	cout << "Периметр = " << P << endl;
	system("pause");

	return 0;
}

Последний раз редактировалось Stilet; 07.12.2013 в 22:25.
Akika вне форума Ответить с цитированием
Старый 07.12.2013, 22:28   #2
Akika
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 36
По умолчанию

12.65. Три группы студентов, в каждой из которых 20 человек, в сессию сдавали по 3 экзамена. Сведения об оценках каждой группы хранятся в двумерных массивах. Определить лучшую по средней оценке группу.

Вопрос: как заполнить массив 20x3?
Akika вне форума Ответить с цитированием
Старый 07.12.2013, 22:33   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

А 29 февраля в високосном году - все равно нечетное число.
type_Oleg вне форума Ответить с цитированием
Старый 08.12.2013, 00:28   #4
Akika
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 36
По умолчанию

точно.. с другой стороны, как переобъявлять размер массива? изначально давать массиву 29 значений, а в случае невисокосного вести for до 28 ? или вообще забивать их при объявлении? не понимаю как будет правильнее.
Akika вне форума Ответить с цитированием
Старый 08.12.2013, 00:41   #5
Akika
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 36
По умолчанию

или вообще так?
Цитата:
#include "stdafx.h"
#include <iostream>
#include <cstdlib>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
system("CHCP 1251");

int os[] = { 111, 251, 121,258,456 };
int sum;
sum = 0;

for (int i = 0; i < 29; i++)
{
if ((os[i] / 2) = 0){ sum = sum + os[i] };
cout << sum;
}


system("pause");

return 0;
}
Akika вне форума Ответить с цитированием
Старый 08.12.2013, 00:49   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Наверное лучше так. Использовать 1 массив os[29] вместо двух.
Ввести переменную , например
Код:
int kolDn;
если год високосный, то присваиваем ей значение 29, если нет 28
Вместо двух пар цикло использовать 1 пару
Код:
for (int i = 0; i < kolDn)
А лучше - вместо пары вообще 1 цикл, в нем и ввод, и (если чет) суммирование.

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

Последний раз редактировалось type_Oleg; 08.12.2013 в 00:52.
type_Oleg вне форума Ответить с цитированием
Старый 08.12.2013, 01:21   #7
Akika
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 36
По умолчанию

К сожалению, в задании не указано. Так что и сама ломаю голову..
Спасибо за помощь, type_Oleg
Akika вне форума Ответить с цитированием
Старый 08.12.2013, 02:57   #8
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от Akika Посмотреть сообщение
Вопрос: как заполнить массив 20x3?
А что за массив?
Массив на 1 группу = 20 студентов по 3 экзамена ?
Или массив на 1 предмет = 20 студентов из 3 групп?

PS Только что заметил.
Код:
if ((os[i] / 2) = 0){ sum = sum + os[i] };
1) зачем фигурные скобки ? Это не ошибка, просто лишние. Один оператор не имеет смысла заключать в скобки. Это все равно, что в математике написать x=3+(5)
2) = - это оператор присваиваня, а оператор сравнения ==
3) надо не деление, а вычисление остатка %
4) и самое главное - четные числа, а не четные осадки. Индексы массивов начинаются с 0, а числа - с 1.
То есть так надо:
Код:
if (((i+1)%2)==0) sum = sum + os[i] ;
А можно даже так
Код:
if (!((i+1)%2)) sum+=os[i] ;
А можно еще проще. Вместо всего этого
Код:
for (int i = 0; i < 29; i++)
 {
 if ((os[i] / 2) = 0){ sum = sum + os[i] };
 }
Просто вот это
Код:
for (int i = 1; i < 28; i+=2) sum+=os[i] ;

Последний раз редактировалось type_Oleg; 08.12.2013 в 04:23.
type_Oleg вне форума Ответить с цитированием
Старый 08.12.2013, 13:38   #9
Akika
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 36
По умолчанию

Спасибо огромное!
На счет массива, думаю, все же 20 студентов на 3 экзамена. Потом в каждом массиве найти среднее арифметическое, и в итоге все свести к простой задаче - max из 3 чисел)
Akika вне форума Ответить с цитированием
Старый 14.12.2013, 21:53   #10
Akika
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 36
По умолчанию

Доброго времени суток! Помогите отыскать ошибку.. -___-
Код:
#include "stdafx.h"
#include <iostream>
#include <cstdlib>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	system("CHCP 1251");
	bool v;
	double os[29];
	double sum;
	sum = 0;
	int kolDn;
	v = 0;
	cout << "Год високостный? Yes(1) No(0)";
	cin >> v;

	if (v = 0) kolDn = 28
	else kolDn = 29;
	cout << "Введите данные об осадках";
	for (int i = 0; i < kolDn)
	cin >> os[i]; 
	for (int i = 1; i < 28; i += 2) sum += os[i];
	cout << "Сумма осадков: ";
	cout << sum;
	
	system("pause");

	return 0;
}
Akika вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Златопольский 8.47. Вложенные циклы Dezikk Общие вопросы C/C++ 8 19.01.2013 13:35
Задачи на языке Си из Д.М. Златопольский - Сборник задач по программированию МартинИ Помощь студентам 36 13.11.2012 23:20