
10.12.2008, 14:44
|
|
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
С нами:
9660439
Репутация:
110
|
|
млин, мне проще на Си переделать немного, чем в приплюснотом разбираццо ...
Код:
#include <stdio.h>
char *vowels = "aeiou";
int countvowels(char *s)
{
int res = 0;
int i;
int j;
for(i = 0; i < strlen(s); i++)
{
for(j = 0; j < strlen(vowels); j++)
{
if (s[i] == vowels[j])
res++;
}
}
return res;
}
int main()
{
char str[100];
gets(str);
printf("%s", str);
printf("\nvowels count : %d", countvowels(str));
return 0;
}
всё должно быть в принципе понятно ...
|
|
|

10.12.2008, 15:04
|
|
Участник форума
Регистрация: 07.07.2008
Сообщений: 161
С нами:
9391926
Репутация:
234
|
|
Сообщение от ~NeiTRoN~
Спс=) Но мне немного другое нужно. Мне нужно не просто определить количество гласных в непрерывной строке, а в строке типа "Слово слово слово,слово"=(
PHP код:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
string vowels = "aeiou";
int countvowels(const string& s)
{
int res = 0;
for(int i = 0; i < s.length(); i++)
for(int j = 0; j < vowels.length(); j++)
if (s[i] == vowels[j])
res++;
return res;
}
int main()
{
string a;
getline(cin, a);
cout << a << "\n";
cout << countvowels(a);
cin.get();
return 0;
}
так? У cin'a разделитель это пробел, а здесь читается вся строчка до перевода строки.
Последний раз редактировалось jawbreaker; 10.12.2008 в 15:07..
|
|
|

10.12.2008, 16:32
|
|
Познающий
Регистрация: 03.07.2008
Сообщений: 65
С нами:
9397381
Репутация:
4
|
|
jawbreaker, izlesa спасибо большое!!!!=))
Единственное непонял как сделать чтобы вводить можно было несколько строк, мнеж как бы надо из нескольких строк выбирать ту в которой больше гласных, но все равно еще раз спс!
Последний раз редактировалось ~NeiTRoN~; 10.12.2008 в 16:35..
|
|
|

10.12.2008, 10:26
|
|
Новичок
Регистрация: 01.09.2008
Сообщений: 2
С нами:
9311344
Репутация:
0
|
|
нужна помощь в Delphi
как сделать так, чтобы при выделении города он показывался в статус баре (1 окно), после выделения улицы, Город не исчезал из 1 окна, а улица показывалась во 2-м окне и т.д.
скрин:
http://www.programmersforum.ru/attachment.php?attachmentid=6885&d=1227728827
|
|
|

10.12.2008, 16:53
|
|
Участник форума
Регистрация: 07.07.2008
Сообщений: 161
С нами:
9391926
Репутация:
234
|
|
PHP код:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
string vowels = "aeiou";
int countvowels(const string& s)
{
int res = 0;
for(int i = 0; i < s.length(); i++)
for(int j = 0; j < vowels.length(); j++)
if (s[i] == vowels[j])
res++;
return res;
}
int main()
{
string a, res;
int max = -1;
while(getline(cin, a)) // читаем строку пока не встречаем символ перевода строки
{
if(a == "end")// end означает конец ввода
break;
cout << a << "\n";
cout << countvowels(a) << "\n";
if (countvowels(a) > max)
{
max = countvowels(a);
res = a;
}
}
cout << max << "\n" << res;
cin.get();
return 0;
}
|
|
|

10.12.2008, 17:20
|
|
Познающий
Регистрация: 03.07.2008
Сообщений: 65
С нами:
9397381
Репутация:
4
|
|
Сообщение от jawbreaker
PHP код:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
string vowels = "aeiou";
int countvowels(const string& s)
{
int res = 0;
for(int i = 0; i < s.length(); i++)
for(int j = 0; j < vowels.length(); j++)
if (s[i] == vowels[j])
res++;
return res;
}
int main()
{
string a, res;
int max = -1;
while(getline(cin, a)) // читаем строку пока не встречаем символ перевода строки
{
if(a == "end")// end означает конец ввода
break;
cout << a << "\n";
cout << countvowels(a) << "\n";
if (countvowels(a) > max)
{
max = countvowels(a);
res = a;
}
}
cout << max << "\n" << res;
cin.get();
return 0;
}
О спс прямо то,что надо!!!=))
|
|
|

10.12.2008, 21:51
|
|
Познающий
Регистрация: 03.07.2008
Сообщений: 65
С нами:
9397381
Репутация:
4
|
|
Еще по строкам
Возник еще вопрос.
Вот есть код:
PHP код:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<iostream>
#define YES 1
#define NO 0
void main()
{
const int m=10;
char string[m][80],d;
int n,i,j,beg;
int inword=NO;
i=0;
while (gets(string[i])!=NULL)
i++;
int k=i;
printf("\n");
for(i=0;i<k;i++)
{
n=strlen(string[i][j]);
for(j=0;j<=n;j++)
if(string[i]+j)==' ' || string[i]+j=='\0' || string[i]+j==',')
{if(inword==YES)
{
d=*(string[i]+j-1);
*(string[i]+j-1)=*(string[i]+beg);
*(string[i]+beg)=d;
}
inword=NO;
}
else
if(inword==NO)
{inword=YES;beg=j;}
}
for(i=0;i<k;i++)
puts(string[i]);
getch();
}
Поидеи он должен выпонять следующую функцию:Вводится текст не больше 10 строк и не более 80 символов в строке и меняет у каждого слова последнюю букву!Но он почемуто не хочет этого делать=( Кто подскажет в чем косяк в коде???
|
|
|

11.12.2008, 00:03
|
|
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
С нами:
9660439
Репутация:
110
|
|
Ну во первых код в корне неправильный )
Если мы в string[i][j] имеем массив строк то, чтото в этом роде [WARNINGZ : НЕ ТЕСТИРОВАЛОСЬ]
Код:
//должно менять первую и последнюю букву в каждом слове
//работать должно только со строчными буквами a-z
for(int i = 0; i < iNumOfRows - 1; i++)
{
for(int j = 0; j < iNumOfCols - 1; j++)
{
if(((string[i][j] == ' ') || (string[i][j] == '\0')) && (inWordFlag == 1))
{
inWordFlag = 0;
string[i][j-1] = cFirstChar;
}
else if((string[i][j] > 'a') && (string[i][j] < 'z') && (inWordFlag == 0))
{
inWordFlag = 1;
cFirstChar = string[i][j];
}
}
}
А с массивами ты работать не умеешь ...
|
|
|

11.12.2008, 22:56
|
|
Постоянный
Регистрация: 28.12.2007
Сообщений: 804
С нами:
9668486
Репутация:
1400
|
|
срочно нужно написать программу моделирования работы автобусного парка.
Сведения о каждом автобусе содержат:
1. Номер автобуса
2. Фамилию и инициалы водителя
3. Номер маршрута
Программа должна обеспечить выбор с помощью меню и выполнение одной из след. операций:
1. Начальное форматирование данных о всех автобусах в парке в виде списка (ввод с клавиатуры или из файла).
2. Имитация выезда автобуса из парка: вводится номер автобуса, программа удаляет данные об этом автобусе из списка автобусов, находящихся в парке и записывает эти данные в список автобусов, находящихся на маршруте.
это нужно написать на С++ с меня незаржавеет 
|
|
|

12.12.2008, 00:47
|
|
Познающий
Регистрация: 01.12.2008
Сообщений: 34
С нами:
9179724
Репутация:
20
|
|
Ребят, нужна помощь. Надо написать программу на паскале, который я уже 3 года в глаза не видел... Нужно чтобы программа вычисляла и выводила на экран таблицу значений функции y = система: первое уравнение: sqrt(x^3+2x-1), при x<2; второе уравнение: sqrt^5((1)/(x^2+3x-5)), при x>=2. x принадлежит отрезку [-1;3], шаг изменения 0,05.
Если кто возьмется, icq:455422511
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|