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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2009, 15:02   #1
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию помогити найти ошибку в коде С++

Код:
#include<iostream.h>
int main(){
	int i;
	int y;
	float sr;
	struct stud {
		char f[20];
		char g[10];
		int y[5];
	};

	stud a[10];
	for (i=0; i<3;i++){
	sr=0;
	cout<<"VVedite family "<<i+1<<" Ctudenta\n";
	cin>>a[i].f;
		cout<<"VVedite gpynne "<<i+1<<" Ctudenta\n";
	cin>>a[i].g;
	cout<<"VVedite ycneBaemoctb "<<i+1<<" Ctudenta\n";
	for (y=0; y<5; y++)
		cin>>a[i].y[y];
	for (y=0; y<5; y++)
	sr=sr+a[i].y[y];
	sr=sr/5;
		if (sr>4)
		cout<<a[i].f<<" "<<a[i].g<<endl;
	};

	return 0;
};
подскажити как зделать чтоб в этом коде a[i].f и a[i].g выводилось в самом конце программы? тоесть после того как я в массив a[10] введу все элемен и только потом мне выдало те a[i].f и a[i].g которые больше 4тырёх?

Последний раз редактировалось Lorden; 17.02.2009 в 17:22.
Lorden вне форума Ответить с цитированием
Старый 17.02.2009, 17:58   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Удалите
Код:
for (y=0; y<5; y++)
sr=sr+a[i].y[y];
sr=sr/5;
if (sr>4)
cout<<a[i].f<<" "<<a[i].g<<endl;
из цикла по i, а сразу за ним запустите такой же (по i), куда и вставьте этот кусок.

То есть, вот так:
Код:
#include<iostream.h>
#include <conio.h>
int main(){
	int i;
	int y;
	float sr;
	struct stud {
		char f[20];
		char g[10];
		int y[5];
	};

	stud a[10];
	for (i=0; i<3;i++){
	cout<<"VVedite family "<<i+1<<" Ctudenta\n";
	cin>>a[i].f;
		cout<<"VVedite gpynne "<<i+1<<" Ctudenta\n";
	cin>>a[i].g;
	cout<<"VVedite ycneBaemoctb "<<i+1<<" Ctudenta\n";
	for (y=0; y<5; y++)
		cin>>a[i].y[y];
	};

	for(i=0; i<3;i++)
	 {
            sr=0;
 	for (y=0; y<5; y++)
 	sr=sr+a[i].y[y];
	 sr=sr/5;
		if (sr>4)
		cout<<a[i].f<<" "<<a[i].g<<endl;
  }
getch();
return 0;
};
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.02.2009, 19:38   #3
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Удалите
Код:
for (y=0; y<5; y++)
sr=sr+a[i].y[y];
sr=sr/5;
if (sr>4)
cout<<a[i].f<<" "<<a[i].g<<endl;
из цикла по i, а сразу за ним запустите такой же (по i), куда и вставьте этот кусок.

То есть, вот так:
Код:
#include<iostream.h>
#include <conio.h>
int main(){
	int i;
	int y;
	float sr;
	struct stud {
		char f[20];
		char g[10];
		int y[5];
	};

	stud a[10];
	for (i=0; i<3;i++){
	cout<<"VVedite family "<<i+1<<" Ctudenta\n";
	cin>>a[i].f;
		cout<<"VVedite gpynne "<<i+1<<" Ctudenta\n";
	cin>>a[i].g;
	cout<<"VVedite ycneBaemoctb "<<i+1<<" Ctudenta\n";
	for (y=0; y<5; y++)
		cin>>a[i].y[y];
	};

	for(i=0; i<3;i++)
	 {
            sr=0;
 	for (y=0; y<5; y++)
 	sr=sr+a[i].y[y];
	 sr=sr/5;
		if (sr>4)
		cout<<a[i].f<<" "<<a[i].g<<endl;
  }
getch();
return 0;
};
спс, а можете подсказать как зделать такую проверку: если все элементы sr<4 то вывести какоенить сообщение.
Я попробывал зделать так)
Код:
		if (sr<4)
	n=n+1;
		if (n=3)
			cout<<"yBcex troyku "<<endl;
	};
но чёт нето)
Lorden вне форума Ответить с цитированием
Старый 17.02.2009, 19:52   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Lorden Немного не понял. Куда эту проверку вы хотите впихнуть?
Если в тот цикл, что уже есть, то нужно проверять не sr, а a[i].y[y].
То есть как-то так:
Код:
if (a[i].y[y]<4)
 n=n+1;
if (n=4)  // не 3, а 4, т.к. у нас 5 элементов.
 cout<<"yBcex troyku "<<endl;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.02.2009, 20:06   #5
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Lorden Немного не понял. Куда эту проверку вы хотите впихнуть?
Если в тот цикл, что уже есть, то нужно проверять не sr, а a[i].y[y].
То есть как-то так:
Код:
if (a[i].y[y]<4)
 n=n+1;
if (n=4)  // не 3, а 4, т.к. у нас 5 элементов.
 cout<<"yBcex troyku "<<endl;
вот задача прогрыммы: Вывести на экран фамилии и номера груп всех студентов у которых средний бал больше 4-тырёх, если таких студентов нет вывести соответствующее сообщение.
Вот в коде который выше написаный мы выводим студентов у которых средний бал (sr) больше 4-тырёх а как зделать так чтобы если мы ненашли неодного студента то написали "yBcex troyku- "
Lorden вне форума Ответить с цитированием
Старый 17.02.2009, 20:20   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ах это... Так бы сразу и написали )
Тогда замените последний цикл на:
Код:
bool fl = false;
for(i=0; i<3;i++)
{
 sr=0;
 for (y=0; y<5; y++)
  sr=sr+a[i].y[y];
  sr=sr/5;
   if (sr>4)
     {
      cout<<a[i].f<<" "<<a[i].g<<endl;
      fl = true;
      }
}
if(!fl) cout<<"yBcex troyku "<<endl;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.02.2009, 20:41   #7
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Ах это... Так бы сразу и написали )
Тогда замените последний цикл на:
Код:
bool fl = false;
for(i=0; i<3;i++)
{
 sr=0;
 for (y=0; y<5; y++)
  sr=sr+a[i].y[y];
  sr=sr/5;
   if (sr>4)
     {
      cout<<a[i].f<<" "<<a[i].g<<endl;
      fl = true;
      }
}
if(!fl) cout<<"yBcex troyku "<<endl;
спасиб) всё норм робит) но если нетрудно объяснити пожалуста как это работает) ато впервые увидил такое)) в С++ мало очень знаю(
Lorden вне форума Ответить с цитированием
Старый 17.02.2009, 20:47   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Очень просто. Надеюсь, вы знакомы с типом bool (логический тип)?
Изначально fl = false (ложь). То есть считаем, что у всех плохие оценки.
Далее пускаем цикл. Если нашелся тот, у кого средняя оценка >4, то выводим его имя и делаем fl = true (истина).
После цикла проверяем:
если не нашлось учеников с хорошими оценками (fl = false), то говорим об этом.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.02.2009, 20:49   #9
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Очень просто. Надеюсь, вы знакомы с типом bool (логический тип)?
Изначально fl = false (ложь). То есть считаем, что у всех плохие оценки.
Далее пускаем цикл. Если нашелся тот, у кого средняя оценка >4, то выводим его имя и делаем fl = true (истина).
После цикла проверяем:
если не нашлось учеников с хорошими оценками (fl = false), то говорим об этом.
с bool кокраз небыл знаком( чёт в колледже про него даже нечего и неупоменал учитель) но спс терь буду знать про него)
Lorden вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку в коде Jora_Kornev Общие вопросы Delphi 10 10.01.2009 17:00
Помогите найти ошибку в коде! alex2008ean Паскаль, Turbo Pascal, PascalABC.NET 1 27.12.2008 18:31
Помогите найти ошибку в коде C++ Жека:) Помощь студентам 15 29.10.2008 11:32
Памагите найти ошибку в коде...С++ Goblin Помощь студентам 1 13.05.2008 18:15