Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
#1

Что опять не так в функции? - C++

30.03.2009, 12:34. Просмотров 1420. Ответов 26
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
void power(char='*',int=1,float=7);
int main()
{
    cout<<power('*');
    cout<<power(34.51);
    cout<<power(37);
    cout<<power();
}
void power(char ch,int x,float y)
{
                     for(int j=1;j<50,j++)
                     cout<<ch;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2009, 12:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что опять не так в функции? (C++):

Ошибки в функции что не так? - C++
#include &lt;iostream&gt; using namespace std; long int hms_to_secs(long int,long int,long int); int main(); { int h,m,s; ...

Что не так в этой функции? - C++
Подскажите что не так в этой функции, понимаю что что-то с передачей массива из функции, но что именно не соображу. Еще можете попутно...

Ошибки в функции что не так? - C++
#include &lt;iostream&gt; using namespace std; int fadd(int,int); int fmul(int,int); int fsub(int,int); int fdiv(int,int); int main()...

Найти решение заданной функции. Что делаю не так? - C++
Что делаю не так? Найти решение заданной функции, используя циклы &quot;for&quot;, &quot;while&quot;, &quot;do-while&quot;. число n вводится с клавиатуры. ...

Что не так в функции? Написать функцию вставки элемента в массив - C++
Здравствуйте. Вообщем что то запутался, много вариантов уже перебрал. Вроде где выделено, там ошибка, а именно в том, что он у меня...

Нужно экспертное мнение! Что рациональнее!? почему так работают функции?! - C++
Привет всем!:) Возникли небольшие непонятки с функциями которые вычисляют интеграл по формуле симпсона. Дело в том что ф-ция integ_2 ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
30.03.2009, 13:49 #16
Цитата:
Сообщение от Haster Посмотреть сообщение
При всех операциях тип char автоматически расширяется до int...
float до double....
этож с чего вдруг?
Это лучше у Страуструпа спросить )))
Но если есть выражение:
char t;
t = t+1;
то t автоматически расширяется до типа int, к числу прибавляется 1, а потом выражение усекается опять до char (при присваивании)
0
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
30.03.2009, 13:51 #17
Цитата Сообщение от Haster Посмотреть сообщение
t = t+1;
то t автоматически расширяется до типа int, к числу прибавляется 1, а потом выражение усекается опять до char (при присваивании)
это потому ,что 1 считается литералом типа int,поэтому и идет продвижение char до int.
0
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
30.03.2009, 13:53 #18
Хорошо, не удачный пример взял )))
Допустим:
char t = '0';
t = t+ '1';
в данном случае опять же t расширяется до int, '1' тоже до int, выполняется вычисление, а затем результат опять переводится в char
0
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
30.03.2009, 14:01 #19
Ну может я и ошибаюсь.
Но я всегда думал,что тип char и тип int будут расширятся до того размера с которым удобнее оперировать системе,т.е. в 16-разрядной до слова,в 32-х до двойного слова.
Однако не факт ,что тип int будет равен 32 битам в 32 разрядной системе.
0
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
30.03.2009, 14:05 #20
Не помню где я это вычитал, у Страуструпа или у Айрона Пола, но там было написано, что всегда типы char и short расширяются до int
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.03.2009, 14:37 #21
unsigned short может расшириться до int (если int == long int) а может до unsigned int (если int == short int)

при присваивании большего типа переменной меньшего типа вроде переполнение наступает (то есть многие компиляторы игнорируют его и просто отбрасывают лишние биты, но стандарт ANSI C89 не гарантирует какое-то конкретное поведение выполняющей системы)
0
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
30.03.2009, 14:49 #22
Ну переполнение наступает не всегда, а только если присваиваемое число больше чем может в себя вместить переменная ))
0
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
30.03.2009, 15:25 #23
Tiami, а почему бы не написать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
template <class T>
void power(T t)
{
  for(size_t j=1;j<50;j++)
    cout<<t;
};
 
int main(void)
{
  power('*');
  power(34.51);
  power(37);
  return 0;
}
0
romych2004
22 / 21 / 3
Регистрация: 29.03.2009
Сообщений: 67
30.03.2009, 21:28 #24
тьфу ты, тут 3 страницы Оо
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
31.03.2009, 02:42 #25
Цитата Сообщение от Haster
наступает не всегда, а только если присваиваемое число больше чем может в себя вместить
chat t = 'ф';
и всё, она переходит в int, знак растягивается до края, а потом при присваивании знаковые биты отбрасываются
0
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 09:27 #26
accept, ты хочешь сказать, что при выполнении
chaк t = 'ф';
устанавливается флаг переполнения?
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
31.03.2009, 11:13 #27
не, там когда пример с операцией, стоит применить символ, код которого больше 127, получится отрицательный код
при расширении появившиеся биты заполнятся битом знака, то есть 1, а потом при присваивании эти биты будут отброшены, хотя они не нулевые
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2009, 11:13
Привет! Вот еще темы с ответами:

Функции(опять передача результатов выполнения))) - C++
Есть массив элементов. Нужно реализовать функцию удаления элемента по поиску текстового поля.... например есть такая последовательность:...

Не работает strcmp + указатели непойми что опять выводят - C++
Странно все это в одном примере работает strcmp в другом (здесь) не работает. Не могу понять почему, пока разбирался решил проверить на...

При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так? - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; using namespace std; long Fact(short m)// функция вычисления факториала ...

Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее? - C++
Вот код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(){ float a,c; char b; skip: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.03.2009, 11:13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru