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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2010, 14:05   #11
ололошенько
Заблокирован
 
Регистрация: 10.08.2010
Сообщений: 566
По умолчанию

у меня есть ещё одна программа,похожая на эту токо в 3 раза больше,там все точно так же почти,и там тип int и работает так все как нада,если будет тип char то я думаю цыфры не будет щитать,или будет???вот пример той программы которая работает:

Код:
#include <iostream.h>
#include <tchar.h>
#include <stdlib.h>
#include <conio.h>


main()
{
	int grade,aCount=0,bCount=0,cCount=0,dCount=0,eCount=0;

	cout<<"dliya okonchaniya vvedite \"q\""<<endl;

	while((grade=cin.get()) !='q')
	{
		switch(grade)
		{         
			case 'a':
			++aCount;
			break;

			case 'b':
			++bCount;
			break;

			case 'c':
			++cCount;
			break;

			case 'd':
			++dCount;
			break;

			case 'e':
			++eCount;
			break;

			case '\n':
			break;

			default:
			cout<<"vvedena nevernaya ocenka"<<endl
				<<"vvedite ocenku snova:";
			break;
			getchar();
                        }        
	}
	getchar();
	cout<<endl<<"kolichestvo raznuh ocenok:"
		<<endl<<"A:"<<aCount<<endl<<"B:"<<bCount<<endl<<"C:"<<cCount<<endl<<"D:"<<dCount<<endl<<"E:"<<eCount;
	getchar();

	return 0;
}
ололошенько вне форума Ответить с цитированием
Старый 30.09.2010, 14:14   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ради интереса спрошу: Ты эту программу написал чтоб switсh() изучить или просто не знаешь как попроще написать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2010, 14:21   #13
ололошенько
Заблокирован
 
Регистрация: 10.08.2010
Сообщений: 566
По умолчанию

это моя 1-я (обучающая)программа по свич была,на ней потом всякие разные примеры делал,все норм было,без проблем без ошибок даже,а тут 3 недели прошло,чёто не помню чё не так я делаю щас,вот пытаюсь понять...

а как проще написать?
ололошенько вне форума Ответить с цитированием
Старый 30.09.2010, 14:52   #14
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
а как проще написать?
Код:
#include <iostream>
#include "conio.h"
#include <map>

using namespace std;

int main()
{
	char grade = 0;
	map<char, int> m_map;

	m_map['a'] = m_map['b'] = m_map['c'] = m_map['d'] = m_map['e'] = 0;

	cout << "dliya okonchaniya vvedite \"q\"" << endl;

	while ((grade = cin.get()) != 'q')
		if (grade >= 'a' && grade <= 'e')
			++m_map[grade];
		else if (grade == '\n')
			continue;
		else
			cout << "vvedena nevernaya ocenka" << endl << "vvedite ocenku snova: ";

	for (map<char, int>::const_iterator It = m_map.begin(); It != m_map.end(); ++It)
		cout << It->first << " = " << It->second << endl;

	return 0;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 30.09.2010, 14:53   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы написал что-то вроде такого:
Код:
int _tmain(int argc, _TCHAR* argv[])
{
 char s[255];
 for(int i=0;i<255;s[i++]=0);
 for(char c=getchar();c!=10;c=getchar()) 
     s[(int)c]++;

 for(int i=0;i<255;i++) if (s[i]) printf("%c=%d\n",(char)i,s[i]);
 printf("\n");
 getchar();
     return 0;
}
Впрочем это тоже может быть не идеальным, зато все клавиши считает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2010, 15:02   #16
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Stilet
Код:
 char s[255];
 for(int i=0;i<255;s[i++]=0);
-->
Код:
 char s[255] = {0};
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 30.09.2010, 15:06   #17
ололошенько
Заблокирован
 
Регистрация: 10.08.2010
Сообщений: 566
По умолчанию

это не проще,это как раз сложнее,у меня елементарные операторы,у вас я даже читать не стал,мне до этого ещё далеко мб...
ололошенько вне форума Ответить с цитированием
Старый 30.09.2010, 15:13   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
char s[255] = {0};
Окак!... Не знаю не знал...
Цитата:
это как раз сложнее
Это не сложнее а перспективнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2010, 15:19   #19
ололошенько
Заблокирован
 
Регистрация: 10.08.2010
Сообщений: 566
По умолчанию

мбмб,но всетаки согласитесь что у меня самый простой способ,у вас мб и перспективнее,или даже лучше,хотя моя программа работает идеально так как я и хотел,лучше врятли,но в вашей легче запутаться
ололошенько вне форума Ответить с цитированием
Старый 30.09.2010, 15:25   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ололошенько
Теоретически проще, но не привыкай к такой простоте - она таит грабли.
Например такая простая задача как "подсчитать сколько символов в количестве было введено в строку Юникода" - и твой код резко увеличится в размерах. представь что каждый символ с каждого языка на планете придется хватать в Case - тут страниц 200 печатного текста А4 займет твоя "простая" программа.
Вот такая же простота здесь обсуждалась - http://www.programmersforum.ru/showthread.php?t=114606
Жаль у меня нет здесь моего быдлокода, иначе бы потешил публику
Он кстати выглядит примерно так как ты "упростил" - много IFов, которые трудно править, потому что структура программы была построена непродуманно на будущее.
Это тебе совет.
I'm learning to live...

Последний раз редактировалось Stilet; 30.09.2010 в 15:27.
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
switch Артэс Общие вопросы C/C++ 40 29.05.2010 20:11
switch Dimarik Общие вопросы C/C++ 4 11.04.2010 15:56
язык C, switch pproger Общие вопросы C/C++ 8 16.12.2009 18:17
Switch с Фибоначчи Клайд Общие вопросы C/C++ 0 20.10.2009 20:16
Switch Division Общие вопросы C/C++ 3 11.01.2009 23:52