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

Преобразование +'0' - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан файл f, компоненты которого являются целыми числами. Найти: http://www.cyberforum.ru/cpp-beginners/thread885362.html
Не знаю си++, но, несмотря на мое незнание, нужно написать лабораторную работу по следующей задаче: Дан файл f, компоненты которого являются целыми числами. Найти: а) сумму компонентов файла f; б) произведение компонент файла f; в) сумму квадратов компонент файла f; г) модуль суммы и квадрат произведения компонент файла f; д) последнюю компоненту файла f.
C++ Функция с++ Доброго времени суток! Столкнулся с проблемой в задании условия в функции. double f(int i, int j, int k) { if ( (X - Lx/2)*(X - Lx/2) + (Y - Ly/2)*(Y - Ly/2) + (Z - Lz/2)*(Z - Lz/2) ) < (Lx*Lx/16) return 1; else return 2; } http://www.cyberforum.ru/cpp-beginners/thread885345.html
C++ Необработанное исключение
Вот пытаюсь спровоцировать исключение, все работает только оно вылетает не там где я ожидаю. По идее когда список пуст имеет пуститься исключения throw out_of_range("List is empty!");, но неожиданно оно выскакивает вот здесь p1->next = NULL; Почему именно там? Что там не так? void pop_back() { node *p, *p1; p = last; p1 = last->prev; if(empty()) throw out_of_range("List is...
Форматированное чтение из файла в массив структур C++
Здравствуйте, посоветуйте как лучше сделать чтение из файла в массив структур с разными типами данных. Входной файл (все денные введены через знак табуляции): toyota 130 250 1500 sedan 2200 1800 audi 220 250 1500 hetch 2000 2500 bmv m3 250 320 1700 sedan 2800 3200 ferrari 450 375 1200 coupe 3500 8500 Каждую строчку надо внести в массив структур: struct car { char name;//имя
C++ алгоритм http://www.cyberforum.ru/cpp-beginners/thread885322.html
подскажите что делает этот алгоритм, и что с ним делать? %-) http://pixs.ru/showimage/algoritmJP_7940233_8092649.jpg
C++ Найти сумму тех из элементов a2j(j=1,...,m), для которых a1j имеет значение наибольшего среди значений a11, a12,...,a1m нужно решение на с++ Даны натуральное число n, целочисленная матрица i=1,2; j=1,...,m. Найти сумму тех из элементов a2j(j=1,...,m), для которых a1j имеет значение наибольшего среди значений a11, a12,...,a1m. подробнее

Показать сообщение отдельно
IvanInanovich
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 113

Преобразование +'0' - C++

30.05.2013, 18:37. Просмотров 236. Ответов 2
Метки (Все метки)

Приветствую. Возможно кто-то сможет объяснить почему так получается : )
Нужно было создать шаблон функции. Которая будет находить максимальный элемент в массиве, массивы должны быть разных типов.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
using namespace std;
 
template<class T>
 T amax( T *arg, int size)
{
    T temp = 0;
 
    for(int k = 0; k < size; k++)
        if(temp < arg[k])
            temp = arg[k];
    return temp;
}
 
int main()
{
   const int Max = 5;
    int iar[Max] = {1,3,54,65,777};
 
        cout << "\niar max = " << amax(iar,Max) << endl;
 
        float far[Max] = {1.3,3.34,543.4,651.233,777.34};
 
        cout << "\nfar max = " << amax(far,Max) << endl;
 
         char car[Max] = {1,3,5,6,7};
 
        cout << "\ncar max = " << amax(car,Max)+'0' << endl; // вот тут нуль
return 0;
}
Вопрос в следующем, почему в последней строке, если мы пытаемся char преобразовать в int с помощью нуля (+'0') то в данная программа показывает не верный результат (число 55) ? Если же мы преобразуем вот таким вот образом:
C++
1
cout << "\ncar max = " << (int)amax(car,Max) << endl;
то выводится 7 т.е. правильный результат.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru