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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2014, 15:09   #1
yura1234
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 23
По умолчанию Работа со словами в Си.

Подскажите пожалуйста как сделать вывод на экран: сколько процентов составляет длина каждого слова от длины всего текста.
Формат выходных данных. [вклад 1-го слова в процентах] [пробел] [вклад 2-го слова в процентах] и т.д. Вклад i-го слова – вещественное число в диапазоне [0, 100] с точностью до 2-х знаков; если слов не обнаружено, то напечатайте сообщение «no solution»

Код:
#include "stdafx.h"
#include <string.h>
#include <conio.h>

int _tmain(int argc, _TCHAR* argv[])
{
	char text[21][81];			//текст
	int M;			//Количество строк в тексте
	char seps[] = "!'';:?-., /*"; //разделители
	int all_txt = 0; //общее кол-во символов
	
	//ввод кол-ва строк текста
	printf("Input number of strings ");
	scanf("%d",&M);

	//Проверка ввода
	if((M<1) || (M>20))
	{
		printf("Number of lines is out of range");
		_getch();
		return 0;
	}

	//Ввод текста
	for(int i=0; i<=M; i++)
	{
		gets(text[i]);
	}

	//Подсчёт общего количества символов
		for(int i=0; i < M; i++)
		{
          all_txt += strlen(text[i]);
		}

	//Вывод слов
	for (int i = 0; i <=M; i++)
	{
		//Вывод слов в строке
		char* pWord;
		pWord = strtok(text[i], seps);
		while (pWord!=NULL)
		{
            double lenght; double lenght1;
			lenght = strlen(pWord);
            lenght1 = (lenght*100)/all_txt;
            
            printf("%0.2f%\n", lenght1);
			//printf("\n%s",pWord); printf("= %d", strlen(pWord));
			pWord = strtok(NULL, seps);
		}
	}

	_getch();
	return 0;
}

Последний раз редактировалось yura1234; 10.05.2014 в 09:27.
yura1234 вне форума Ответить с цитированием
Старый 10.05.2014, 09:28   #2
yura1234
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 23
По умолчанию

Помогите пожалуйста, как добавить в код условие: if(слов в тексте не найдено){printf("no solution");
yura1234 вне форума Ответить с цитированием
Старый 12.05.2014, 19:51   #3
PACTBOP_KOBAPEH
 
Регистрация: 12.05.2014
Сообщений: 4
По умолчанию

Цитата:
Сообщение от yura1234 Посмотреть сообщение
Помогите пожалуйста, как добавить в код условие: if(слов в тексте не найдено){printf("no solution");
Надо проверять all_txt на ноль, тем более что там операция деления есть.

А вообще код надо полностью переписать. Таким кодом только детей пугать.
PACTBOP_KOBAPEH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со словами в строке Максикок C++ Builder 1 21.02.2011 11:16
Делфи. Работа со словами в строке nation of one Помощь студентам 13 12.02.2010 11:42
С. Работа со словами в строке radion_80 Помощь студентам 4 01.12.2009 15:35
Работа со словами Maxs Microsoft Office Word 4 05.10.2009 14:14
C++. Работа со строками и словами new programmer Помощь студентам 1 27.08.2009 16:36