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

Проблема с типами данных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какие утверждения являются верными? http://www.cyberforum.ru/cpp-beginners/thread371492.html
1) Операторы циклов for, while и do while не являются взаимозаменяемыми 2) Проверка условия выполняется на каждой итерации цикла 3) В случаях, когда число итераций заранее не известно, удобнее использовать оператор while
C++ Какое назначение может иметь в программе приведенный цикл без тела? for (t=0; t<SOME_VALUE; t++); http://www.cyberforum.ru/cpp-beginners/thread371487.html
C++ Вывод элементов вектора
почему когда выводим данные вектора пишем так: for (vector<RecVecR>::iterator p =vecR.begin() ; p != vecR.end();p++) а если надо вывести список наоборот то: for (vector<RecVecR>::iterator p =vecR.end()-1 ; p != vecR.begin()-1;p--) откуда -1 появляются? почему не так for (vector<RecVecR>::iterator p =vecR.end() ; p != vecR.begin();p--) ?
Отделите в слове повторяющиеся более двух раз буквы запятыми C++
4.2005 проверьте, не является ли слово "кас" корнем слова без приставки. Отделите в слове повторяющиеся более двух раз буквы запятыми 5.2005 найти th a - th^2 (a-b)/sqrt th(a^2-b^2), где th x= e^x-e^-x/e^x+e^-x. Добавлено через 57 минут проверьте, не является ли слово "кас" корнем слова без приставки. Отделите в слове повторяющиеся более двух раз буквы запятыми. Вычеркните из слова...
C++ Перегрузка оператора == для string http://www.cyberforum.ru/cpp-beginners/thread371439.html
#include <iostream> #include <conio.h> #include <fstream> #include <string> #include <stdlib.h> using namespace std; class TestContent {
C++ waveIn/Out Вообщем суть проблемы такова. Пытаюсь записать звук, а потом его воспроизвести (так-то сохранить, но для начала воспроизвести). погуглил, написал код. #include <windows.h> #include <stdio.h> #include <conio.h> #include <mmsystem.h> подробнее

Показать сообщение отдельно
Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647

Проблема с типами данных - C++

24.10.2011, 10:21. Просмотров 721. Ответов 14
Метки (Все метки)

В одной функции одномерный динамический массив заполняется случайными числами

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Г‡Г*ïîëГ*ГҐГ*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ* ñëó÷Г*Г©Г*ûìè Г·ГЁГ±Г«Г*ìè
int ZapolnenieMassiva (int *Massive, int SizeOfMassive)
{
 
int i;
 
cout << "Massiv iz " << SizeOfMassive <<" elementov\n";
 
    for (i=0; i<SizeOfMassive; i++)
    {
        *(Massive+i)=rand()%101;
        cout << *(Massive+i) << " " ;
    }
    cout <<"\n\n" ;
    return 0;
}
В второй функции элементы массива, кратные какому-либо числу (Delitel), умножаются на переменную

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// ГЋГЎГ°Г*áîòêГ* Г¬Г*Г±Г±ГЁГўГ*
double ObrabotkaMassiva (int *Massive, int SizeOfMassive, int Delitel, double Peremennaya)
{       
    
int i;
 
cout << "Elementy massiva kratnye " << Delitel << " umnojit na " << Peremennaya << "\n";
 
    for (i=0; i<SizeOfMassive; i++)
    {
        if (*(Massive+i)%Delitel==0)
            *(Massive+i) = *(Massive+i)*Peremennaya;        
            cout << *(Massive+i) << " " ;
    }
    cout <<"\n\n" ;
    return 0;
}
Но из-за того, что переменная имеет тип double
в строке warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
и соответственно, при умножении элемента массива на переменную дробная часть отбрасывается.

Как сделать так, чтобы этого не было?

Кусок кода основной программы

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int *nMassive, *mMassive, *lMassive;
int i=9, j=10, k=11;
int Delitel1=3, Delitel2=5, Delitel3=2;
 
    srand(time(NULL));
 
    nMassive = new int [i];
    mMassive = new int [j];
    lMassive = new int [k];
 
    ZapolnenieMassiva (nMassive, i); 
    ZapolnenieMassiva (mMassive, j);
    ZapolnenieMassiva (lMassive, k);
 
    cout <<"\n" ;
 
    ObrabotkaMassiva (nMassive, i, Delitel1, a );
    ObrabotkaMassiva (mMassive, j, Delitel2, b );
    ObrabotkaMassiva (lMassive, k, Delitel3, c );
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru