Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2011, 20:55   #1
Corvette
Пользователь
 
Регистрация: 31.07.2011
Сообщений: 55
По умолчанию Нахождения куба числа

Попытался написать простую программу нахождения куба числа (а точнее упростить пример с книги Базовый курс С++ Шилдта). Но компилятор (Dev- C++) ругается (invalid conversion from `int' to `int*' /недействительным преобразование Int `'в' Int * '/). Подскажите пожалуйста, что не правильно. (я в программирование новичок )

Код:
#include <iostream>
#include <conio.h>
#include <clocale>

using namespace std;

void cube (int *c);

int main ()
{
    setlocale (LC_ALL, "Russian");
    int x;
    cout << "Ââåäèòå ÷èñëî: ";
    cin >> x;
    //cout << x << " ";
    cout << endl;
    cout << "Êóá ÷èñëà ðàâåí: ";
    cube (x);
    cout << x << " ";
    
    getch ();
    return 0;
}

void cube (int *c)
{
     *c=*c * *c * *c;
}
Код из книги
Код:
#include <iostream>
#include <conio.h>
#include <clocale>

using namespace std;

void cube (int *n, int num);

int main ()
{
    setlocale (LC_ALL, "Russian");
    int mas [10];
    int i;
    for (int i=0; i<10; i++) mas [i] = i+1;
    cout << "Èñõîäíûé ìàññèâ: ";
    for (int i=0; i<10; i++) {
        cout << mas [i] << " ";
    }
    cout << endl;
    cout << "Èçìåíåííûé ìàññèâ: ";
        cube (mas,10);   
    for (i=0; i<10; i++) cout << mas [i] << " ";
    
    getch ();
    return 0;
}

void cube (int *n, int num)
{
     while (num!=0){
           *n=*n * *n * *n;
           num --;
           n++;
           }
}
Corvette вне форума Ответить с цитированием
Старый 20.08.2011, 21:07   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Всё дело в этой строке
Код:
 cube (x);
Нужно так
Код:
cube(&x);
Да и вапше что это
Код:
void cube (int *c)
{
     *c=*c * *c * *c;
}
Лучше пишите так
Код:
void cube(int* c)
{ 
    *c = (*c) * (*c) * (*c);
}
_-Re@l-_ вне форума Ответить с цитированием
Старый 20.08.2011, 21:11   #3
Corvette
Пользователь
 
Регистрация: 31.07.2011
Сообщений: 55
По умолчанию

Спасибо!!! :-)

Теперь все понятно.
Corvette вне форума Ответить с цитированием
Старый 20.08.2011, 22:29   #4
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
Да и вапше что это
поддерживаю

Код:
void cube (int & c)
{
     c *= c * c;
}

или

void cube (int *c)
{
     c[0] = c[0] * c[0] * [0];
}
f.hump вне форума Ответить с цитированием
Старый 20.08.2011, 23:26   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

И почему никто не предложит такого?
Код:
int cube(int c) {
  return c * c * c;
}
netrino вне форума Ответить с цитированием
Старый 20.08.2011, 23:35   #6
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

это идея)
Код:
int __fastcall cube(int c)
{
	__asm {
		MOV eax, ecx
		IMUL ecx
		IMUL ecx
	}
}
сори, это конечно к базовому С++ не имеет никакого отношения.

Последний раз редактировалось f.hump; 20.08.2011 в 23:48.
f.hump вне форума Ответить с цитированием
Старый 21.08.2011, 00:25   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

И почему никто не предложит такого?

Код:
#include <match.h>

double stepen(double x, double y)
{
return pow(x,y);
}
Возводит любое число в любую степень.

Вот Вам рабочий код:
Код:
#include <iostream>
#include <conio.h>
//#include <clocale>
#include <math.h>

using namespace std;

double cube (double,double);

int main ()
{
    //setlocale (LC_ALL, "Russian");
    double x;
    cout << "Input X: ";
    cin >> x;
    //cout << x << " ";
    cout << endl;
    cout << "Cube X: ";
    x = cube(x,3);
    cout << x << " ";
    
    getch ();
    return 0;
}

double cube (double x, double y)
{
        return pow(x,y);
}
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 21.08.2011 в 08:46.
Smitt&Wesson вне форума Ответить с цитированием
Старый 21.08.2011, 08:38   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Кросспост. Удалите пожалуйста.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 21.08.2011 в 08:46.
Smitt&Wesson вне форума Ответить с цитированием
Старый 21.08.2011, 12:36   #9
Corvette
Пользователь
 
Регистрация: 31.07.2011
Сообщений: 55
По умолчанию

Всем спасибо!!!
Corvette вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS нахождения числа dream1k Помощь студентам 0 21.04.2011 10:41
Нахождения большего и меньшего числа в C++ ALESHA03TH Общие вопросы C/C++ 12 25.12.2010 04:41
Программа нахождения числа Армстронга (с++) Fantasy13 Помощь студентам 4 09.12.2010 23:53
TASM - нахождения максимального числа из трех положительных целых чисел и умножения максимального числа iggor Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 24.05.2009 20:16
Напишите функцию нахождения числа с = а^b Настенька..Блонди Помощь студентам 2 28.12.2008 15:21