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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
30.03.2009, 12:34     Что опять не так в функции? #1
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 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 не гарантирует какое-то конкретное поведение выполняющей системы)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
30.03.2009, 14:49     Что опять не так в функции? #22
Ну переполнение наступает не всегда, а только если присваиваемое число больше чем может в себя вместить переменная ))
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;
}
romych2004
22 / 21 / 3
Регистрация: 29.03.2009
Сообщений: 67
30.03.2009, 21:28     Что опять не так в функции? #24
тьфу ты, тут 3 страницы Оо
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
31.03.2009, 02:42     Что опять не так в функции? #25
Цитата Сообщение от Haster
наступает не всегда, а только если присваиваемое число больше чем может в себя вместить
chat t = 'ф';
и всё, она переходит в int, знак растягивается до края, а потом при присваивании знаковые биты отбрасываются
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
31.03.2009, 09:27     Что опять не так в функции? #26
accept, ты хочешь сказать, что при выполнении
chaк t = 'ф';
устанавливается флаг переполнения?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2009, 11:13     Что опять не так в функции?
Еще ссылки по теме:

Не работает strcmp + указатели непойми что опять выводят C++
C++ При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так?
Что не так в функции? Написать функцию вставки элемента в массив C++
C++ Найти решение заданной функции. Что делаю не так?
C++ Что не так в этой функции?

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
31.03.2009, 11:13     Что опять не так в функции? #27
не, там когда пример с операцией, стоит применить символ, код которого больше 127, получится отрицательный код
при расширении появившиеся биты заполнятся битом знака, то есть 1, а потом при присваивании эти биты будут отброшены, хотя они не нулевые
Yandex
Объявления
31.03.2009, 11:13     Что опять не так в функции?
Ответ Создать тему
Опции темы

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