Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136

В массив типа double записываю целые числа (типа int), но ошибка не вылазиет!

26.03.2012, 13:09. Показов 3409. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот программулька:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
#include <conio.h>
 
int main()
{
    double arr[]={1,2,3,4,5};
    double *parr=&arr[0];
    double y;
 
    parr++;
    y=*parr;
    cout<<y;
 
    cout<<endl;
    getch();
    return 0;
}
Я там пишу в самом начале:
C++
1
double arr[]={1,2,3,4,5};
Я подумал, что компилятор должен выдать ошибку. Например при sqrt(5) выдаёт ошибку, т.к. функция sqrt не перегружена для целых чисел, а 5 воспринимается как int (это мне на этом же форуме рассказали). Надо писать sqrt(5.0). И тут вроде аналогично, надо писать:
C++
1
double arr[]={1.0, 2.0, 3.0, 4.0, 5,0}
ведь массив double
Хотя всё работает и так. Почему?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2012, 13:09
Ответы с готовыми решениями:

Можно ли из числа типа double получить 2 числа типа int?
Если можно, то напишите пожайлуста название функции или способ.

Как преобразовать дробную часть числа типа double в int
Есть дробное число, например Z = 123,456 нужно разбить его на два целых числа int I = 123 int F = 456 как это можно сделать ? ...

Передать массив элементов(типа int) объекта, в функцию из массивов(типа int)
Представьте такую ситуацию. Есть у вас массив чисел: Mass И вы хотите передать его в функцию. Я делаю это так: //объявим ф-ю: ...

8
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
26.03.2012, 13:14
компилятор сам добавит нолик

Добавлено через 20 секунд
неявное преобразование в double
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
26.03.2012, 13:15
Alex Z, В данном случае ваш int будет приведен автоматический к double. (Но лучше это делать явно)
Что же касается sqrt, так она перегружена. И к какому значению необходимо приводить ваш int(т.е. какую из перегруженных функций вызывать) компилятор не знает.
1
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
26.03.2012, 13:19  [ТС]
Цитата Сообщение от go Посмотреть сообщение
Alex Z, В данном случае ваш int будет приведен автоматический к double. (Но лучше это делать явно)
Это как бы "Преобразование типов" называется?
А как заранее угадать, где будет преобразование типов, а где сообщение об ошибке?
0
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
26.03.2012, 13:22
Цитата Сообщение от Alex Z Посмотреть сообщение
Это как бы "Преобразование типов" называется?
А как заранее угадать, где будет преобразование типов, а где сообщение об ошибке?
почитать про приведение типов, явное и неявное
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
26.03.2012, 14:29
Цитата Сообщение от Alex Z Посмотреть сообщение
А как заранее угадать, где будет преобразование типов, а где сообщение об ошибке?
Лучше вообще не гадать, а приводить данные к нужному типу. В общем случае там, где требуется double, целочисленное значение будет преобразовано автоматически, там, где есть варианты (перегруженная функция в С++ к примеру), нужно самому уточнять, что именно передаёшь. В С вот такой код работает:
Code
1
2
3
4
5
6
7
8
9
10
[andrew@ftp ~/cpp]$ cat > sqrt5.c
#include <stdio.h>
#include <math.h>
int main(void){
    printf("%f\n", sqrt(5));
    return 0;
}
[andrew@ftp ~/cpp]$ gcc -o sqrt5 sqrt5.c
[andrew@ftp ~/cpp]$ ./sqrt5
2.236068
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
26.03.2012, 20:22
Цитата Сообщение от easybudda Посмотреть сообщение
В С вот такой код работает:
Ну в данном случае не из-за языка он не отработает. Вот вариант, когда и С++ отработает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdio>
#include <cmath>
 
namespace go
{
   double sqrt(double val)
   {
      return std::sqrt(val);
   }
}  
 
int main(void){
    printf("%f\n", go::sqrt(5));
    return 0;
}
http://liveworkspace.org/code/... 4deffcb567
Вообще лучше шаблонные функции использовать.
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
26.03.2012, 20:53
Цитата Сообщение от go Посмотреть сообщение
Ну в данном случае не из-за языка он не отработает.
Ну да, так-то перегрузка функций и пространства имён и в С есть, только как там ими пользоваться, никто не знает...
Мало того!
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
andrew@rd-andrew ~/cpp/shitcode
$ cat > sqrt5.cpp
#include <iostream>
#include <math.h>
int main(){
    std::cout << sqrt(5) << std::endl;
    return 0;
}
 
andrew@rd-andrew ~/cpp/shitcode
$ g++ -o sqrt5 sqrt5.cpp
 
andrew@rd-andrew ~/cpp/shitcode
$ ./sqrt5
2.23607
 
andrew@rd-andrew ~/cpp/shitcode
$
0
go
26.03.2012, 21:49

Не по теме:

Цитата Сообщение от easybudda Посмотреть сообщение
Ну да, так-то перегрузка функций и пространства имён и в С есть,
Причем здесь это. Я просто привел пример функции, с именем существующей стандартной.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2012, 21:49
Помогаю со студенческими работами здесь

Создать динамический массив, любого простого типа (например: int, long, float, double)
1. Создать проект, который содержит консольную программу Win32. 2. Создать динамический массив, любого простого типа (например: int,...

Как из числа типа double сделать int (сохранение целой и дробной части в отдельных целочисленных переменных)
Например есть число double d = 123.4567 Как сделать что бы int i1 = 123; int i2 =4567;

Ошибка "Аргумент типа int несовместим с параметром типа int". Буду признателен за подсказку!
Прошу не судить строго, только начинаю программировать, нужна помощь. int Zapol_Funkcii(int arr,const int ROWS,const int COLS) { ...

Перевести строку типа char в массив типа int
Задание : В текстовом файле INPUT.TXT записаны целые числа через пробел, возможно, в несколько строк. За один просмотр файла сформировать...

Считать числа типа double из файла и записать их в массив
Проблема следущая: нужна программа которая считывает числа типа double из файла (в моем случае это индексы валютного курса) и записывает их...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru