- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 100
int main()
{
do
{
int i,f,kol,z=1;
char s1[MAX],s2[MAX],*ch=" .!?",*s3[MAX];
fflush(stdin);
do{puts("Vvedite vash text.");
gets(s1);}while((s1[0]==' ')||(s1[1]=='\n')||(s1[0]=='\0'));
strcpy(s2,s1);
s3[0]=strtok(s2,ch);
for(i=1;s3[i]=strtok(NULL,ch);i++)
{
}
f=i;
puts("Otsortirovannue slova.");
for(i=0,kol=0;i<f;i++)
{
if((*(s3[i])=='A')||(*(s3[i])=='a'))
{
printf("%s ",s3[i]);
kol++;
z=0;
}
}
if(z)puts("slov nety. =(");
printf("\nKollichestvo slov na 'A' ili 'a': %d",kol);
puts("\nvash text.");
puts(s1);
printf("\n");
printf("dlya povtora nathmite lubyi klavishu. dlya vuhoda ESC.\n\n");
}
while(getch()!=27);
}
Моя первая работа) Оцените) Правда я не помню что она делает)
krypt 21.11.2012 15:13 # +5
RaSta-Lion 21.11.2012 17:32 # +2
krypt 21.11.2012 18:40 # +3
Fai 22.11.2012 02:24 # 0
Судя по коду, тебя самому главному не учили. Рекомендую почтитать "Code Complete", пока не поздно.
bormand 21.11.2012 15:17 # +2
Обожаю сочетание этого стиля расстановки скобок и цикла do-while. Особенно если тело цикла длинное, и не входит на экран... Всегда создается впечатление, что там внизу вляпан пустой цикл, пока не посмотришь на то, чем начинается блок.
bormand 21.11.2012 15:25 # +7
Вежливые люди заканчивают такие фразы двоеточием.
> puts("Otsortirovannue slova.");
Ага, отсортированные согласно их позиции в предложении. *facepalm.png*
> if(z)puts("slov nety. =(");
> printf("\nKollichestvo slov na 'A' ili 'a': %d",kol);
Где else? Да и вместо отдельного z можно было проверять !kol.
P.S. Menya diko besit translit. Iz-za nego ya bi labu ne zachol.
P.P.S. A za formatirovanie koda otorval by ruki.
PascalGovno 21.11.2012 15:35 # +1
Студенты его чинят не менее мерзкой функцией _rus, если я правильно помню.
RaSta-Lion 21.11.2012 15:45 # +1
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
)))))
eth0 21.11.2012 17:26 # +1
chcp 1251
bormand 21.11.2012 15:47 # +3
Я всегда буду обновлять тред перед отправкой комментария.
Я всегда буду обновлять тред перед отправкой комментария.
defecate-plusplus 21.11.2012 15:50 # +2
RaSta-Lion 21.11.2012 15:52 # −1
defecate-plusplus 21.11.2012 15:53 # +2
> SetConsoleCP(1251);
> SetConsoleOutputCP(1251);
написать не лень?
RaSta-Lion 21.11.2012 15:56 # +2
roman-kashitsyn 21.11.2012 15:58 # +2
Скорее, лень разбираться, что такое locale
RaSta-Lion 21.11.2012 16:00 # 0
bormand 21.11.2012 16:01 # +2
И русский язык то же.
absolut 21.11.2012 16:48 # −4
bormand 21.11.2012 16:01 # 0
defecate-plusplus 21.11.2012 16:05 # 0
при желании можно заменить на "Russian"
defecate-plusplus 21.11.2012 16:04 # +6
1) сишка
setlocale(LC_CTYPE, "");
вместо LC_CTYPE можно впихать LC_ALL
2) крестоблядство
std::locale::global(std::locale(""));
заметьте, насколько больше ненужной писанины в сраных крестах
RaSta-Lion 21.11.2012 16:07 # 0
guest 23.11.2012 07:30 # +1
LispGovno 23.11.2012 10:16 # 0
RaSta-Lion 24.11.2012 05:02 # 0
bormand 21.11.2012 15:54 # 0
Не было путнего инета, зато был диск с древним MSDN'ом... Поэтому в то время я винапи и прочее говно знал гораздо лучше стандартов сишечки. Да и писал в стиле "программиста на c/c++ под шиндовс".
P.S. В одной из лаб апишными функциями растянул окно до 1000х1000, дабы не писать выхлоп в файл...
absolut 21.11.2012 16:50 # +3
PascalGovno 21.11.2012 16:54 # 0
inkanus-gray 21.11.2012 18:59 # −1
bormand 21.11.2012 19:04 # −1
P.S. На самом деле там для задачи хватило бы и 200х20.
Fai 22.11.2012 02:19 # +3
> std::locale::global
> setlocale
ВИНДОПРОБЛЕМЫ
Xtasy 21.11.2012 15:36 # +1
defecate-plusplus 21.11.2012 15:37 # 0
absolut 21.11.2012 15:42 # +1
Xtasy 21.11.2012 17:23 # 0
defecate-plusplus 21.11.2012 17:29 # +1
как, впрочем, и N страниц текста А4 в виде отформатированного правильным образом документа "описание программы", особенно когда сама лаба - на один пейдждаун
так сдавали свои говнолабы на модула-2 или ином мертвом языке терпеливые ребята на соседней кафедре
eth0 21.11.2012 19:31 # +1
А они меня в школе бесили и я из принципа их не рисовал.
bormand 21.11.2012 19:34 # +1
eth0 21.11.2012 19:57 # 0
bormand 21.11.2012 15:34 # +1
bormand 21.11.2012 15:41 # 0
- <conio.h> нет в линуксе, пришлось менять getch() на getchar().
- Неправильно парсятся предложения, в которых есть запятая.
Вердикт: типичная унылая говнолаба, коих тыщи, треду минус.
Fai 22.11.2012 02:15 # −1
Нет в *nix'ах.
А вообще это лютый пиздец:
- нет return в main'e
- <conio.h>
- main без параметров
- бешенное форматирование
- транслит
- 17-ая строка - цикл for, в условии которого присваивание (прям по K&R блядь)
- whitespaces - не хватает '\v', '\t', '\r'
- магическое число 27 (надо было define ESC_KEY 27)
Короче это нереальный пиздец. Надеюсь автор сейчас пишет намного лучше.
bormand 22.11.2012 05:24 # +4
Разрешено стандартом.
Fai 22.11.2012 09:20 # −3
RaSta-Lion 22.11.2012 10:29 # 0
Fai 22.11.2012 12:24 # 0
RaSta-Lion 23.11.2012 03:30 # 0
Fai 24.11.2012 07:46 # 0