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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2015, 23:14   #1
Александр Шатило
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 29
Сообщение Файлы С++

Скопировать из файла A в файл B все строки, кроме той строки, в которой больше всего гласных букв. Напечатать номер этой строки.
Как вывести все строки кроме той, в которой больше всего гласных?
Вот мой код:
Код:
#include <fstream> 
#include <iostream> 

using namespace std;

int main() 
{
	char str1[10], str2[17], str3[17], str4[15], str5[13], str6[16], str7[17], str8[20], str9[20], str10[19];
	char gls[] = "aeiouy";
	int gl1 = 0, gl2 = 0, gl3 = 0, gl4 = 0, gl5 = 0, gl6 = 0, gl7 = 0, gl8 = 0, gl9 = 0, gl10 = 0;
	int max = 0, n;
	ifstream in("d:\\a.txt");
	in.getline(str1, 10); 
	in.getline(str2, 17);
	in.getline(str3, 17);
	in.getline(str4, 15);
	in.getline(str5, 13);
	in.getline(str6, 16);
	in.getline(str7, 17);
	in.getline(str8, 20);
	in.getline(str9, 20);
	in.getline(str10, 19);
	for (int i = 0; i<20; i++)
	for (int j = 0; j < strlen(gls); j++)
	{
		if (str1[i] == gls[j])
				gl1++;
		if (str2[i] == gls[j])
			gl2++;
		if (str3[i] == gls[j])
			gl3++;
		if (str4[i] == gls[j])
			gl4++;
		if (str5[i] == gls[j])
			gl5++;
		if (str6[i] == gls[j])
			gl6++;
		if (str7[i] == gls[j])
			gl7++;
		if (str8[i] == gls[j])
			gl8++;
		if (str9[i] == gls[j])
			gl9++;
		if (str10[i] == gls[j])
			gl10++;
	}
	int col[10] = { gl1, gl2, gl3, gl4, gl5, gl6, gl7, gl8, gl9, gl10 };
	for (int i = 0; i < 10; i++)
	{
		if (col[i]>max) max = col[i]; n = i+1;
	}
	cout << max << endl << "Stroka " << n << endl;
	in.close();
	return 0;
}
----
оформляйте код с помощью специально тега [CODE] (кнопка # на панели форматирования)
Модератор.
Тишка

Последний раз редактировалось Serge_Bliznykov; 03.03.2015 в 17:03.
Александр Шатило вне форума Ответить с цитированием
Старый 03.03.2015, 13:02   #2
ОлегС
 
Регистрация: 26.02.2015
Сообщений: 6
По умолчанию

Я бы сначала нашел строку с максимум гласных
Код:
int findRow(ifstream &is){
    string buf;int r=0,maxr=0,cVowel=0,mVowel=0;
	do {
	getline(is,buf);if (!is.good()) break;
	cVowel=count_if(begin(buf),end(buf),isVowel);
	if (cVowel>mVowel) {maxr=r;mVowel=cVowel;}
	r++;
	} while (true);
	cout<<"in "<<maxr<<" max vowels";
	return maxr;
}
затем вывел все строки кроме указанной
Код:
void rcopy(ifstream &is,ofstream &os,int n){
	string buf;int r=0;
	is.clear();is.seekg(is.beg);
	do {
	getline(is,buf);if (!is.good()) break;
	if (r!=n) {copy(begin(buf),end(buf),ostream_iterator<char>(os));os<<'\n';}
	r++;
	} while (true);
}
вызвать функцию можно так
Код:
rcopy(fi,fo,findRow(fi));
надеюсь код предиката isVowel понятен
ОлегС вне форума Ответить с цитированием
Старый 03.03.2015, 16:42   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

индусы в восторге от такого кода!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы: Составить программу, которая перепишет фамилии в отдельные файлы в соответствии с названием группы Гульвира Помощь студентам 1 23.05.2013 10:04
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
Не сохраняет файлы (Создает файлы пустышки) Rock231 Помощь студентам 2 25.12.2010 12:31
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53