- 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
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "locale.h"
int gl(char ch);
int main()
{ char a;
setlocale(LC_ALL, "rus");
printf("Введите букву\n");
scanf_s("%c", &a);
if (gl(a)==1)
printf("Гласная", a);
else
printf("Не гласная", a);
printf("%c", gl(a));
system("pause");
}
int gl(char ch)
{ char m[18]={'У', 'Е', 'А', 'О', 'Э',
'Я', 'И', 'Ю', 'Ё',
'у', 'е', 'а', 'о', 'э', 'я', 'и', 'ю', 'ё'};
int N=0;
setlocale(LC_ALL, "rus");
for (int i=0; i<18; i++)
if (m[i]==ch) N++;
if (N==1)
return 1;
else return 0;
}
Вопрос блондинки, на одном из прогерских форумов. Для информативности добавлю её вопрос:
Написать функцию, которая возвращает произведение элементов одномерного массива.
Ошибок нет. Всё время возвращает значение "не гласная" при вводе любых и согласных, и гласных букв. В чём ошибка? Вроде правильно функция значение возвращает...?
bormand 09.04.2013 18:30 # +11
Дожились... детей с детства к виндоблядству приучают...
3.14159265 09.04.2013 18:37 # +2
someone 09.04.2013 18:39 # −2
3.14159265 09.04.2013 18:56 # +3
bormand 09.04.2013 18:59 # +1
3.14159265 09.04.2013 19:30 # +2
bormand 09.04.2013 20:04 # +2
С чем я согласен - то, что эти функции deprecated, и лучше их не юзать.
С чем я не согласен - то, что их надо заменить на подобные костыли от мс.
3.14159265 10.04.2013 14:30 # +2
Поясняю.
Судя по тому количеству сырцов с которыми я имел дело, и по этому коду в частности, множество погроммистов считают, что использование замены от мс сделает их код "безопастным".
Ко подсказывает мне функции не кидают исключения, потому что это сишка. привет Тарасу.
Они возвращают некий код ошибки. Или вызывают некий обработчик.
Так вот 90% никогда не задают ни обработчик, ни проверяют код возврата функции.
То есть от лишнего ifa, который проверяет валидность данных или этот самый код возврата никуда не деться.
В итоге мы подменяем переполнение буфера тихим пропуском комманды и херингом данных.
И называем это "безопастным" аналогом.
3.14159265 10.04.2013 14:40 # +2
triple shame on me
bormand 10.04.2013 15:17 # 0
По дефолту этот обработчик как раз делает аборт, поэтому все-таки по-тихому баг не пройдет. Но это отличный вектор для DoS атаки на "безопастный" код.
eth0 09.04.2013 18:57 # +15
defecate-plusplus 09.04.2013 19:20 # +2
где тут c++?
привет, cp-866
inkanus-gray 09.04.2013 20:12 # +2
Ну как же, #include "stdafx.h".
bormand 09.04.2013 20:12 # 0
bormand 10.04.2013 15:21 # 0
bormand 09.04.2013 20:14 # +6
А вот тут с++, т.к. msvc не умеет в С99.
inkanus-gray 09.04.2013 20:10 # +2