Форум: Форум C++Разное
Новые темы: 00
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как исправить ошибки в C++ программе?
 
 автор: Cena   (24.11.2011 в 21:28)   письмо автору
 
 

Здраствуйте, подскажите пожалуйста, где у меня здесь ошибочки?
#include <iostream>
#include <math.h>
using namespace std;
int A4_10 (int A)
{
  int s,k;
  for(s=k=0; A!=0; k++)
  {
    s+=(A%10)*pow(4,k);
    A/=10;
  }
  return s;
}
int B2_10 (int B)
{
  int s,k;
  for(s=k=0; B!=0; k++)
  {
    s+=(B%10)*pow(2,k);
    B/=10;
  }
  return s;
}
int C10_8 (int C)
{
  int s,k;
  for(s=k=0; C!=0; k++)
  {
    s+=(C%8)*pow(10,k); 
    C/=8;
  }
  return s;
}
int main
{
  int A,B,C;
  cout<<"A="<<A<<endl;
  cout<<"B="<<B<<endl;
  A=A4_10(A);
  B=B2_10(B);
  C=pow((2*A+3*B),2);
  cout<<"C="<<C<<"(C)9="<<C10_8(C);
  return 0
}

выбивает ошибки:
C:\Dev-Cpp\laboratornaya 7.1.cpp In function `double A4_10(double)':
7 C:\Dev-Cpp\laboratornaya 7.1.cpp invalid operands of types `double' and `int' to binary `operator%'
C:\Dev-Cpp\laboratornaya 7.1.cpp In function `int B2_10(int)':
13 C:\Dev-Cpp\laboratornaya 7.1.cpp [Warning] converting to `int' from `double'
C:\Dev-Cpp\laboratornaya 7.1.cpp In function `int C10_8(int)':
19 C:\Dev-Cpp\laboratornaya 7.1.cpp [Warning] converting to `int' from `double'
19 C:\Dev-Cpp\laboratornaya 7.1.cpp At global scope:
23 C:\Dev-Cpp\laboratornaya 7.1.cpp invalid function declaration

  Ответить  
 
 автор: cheops   (25.11.2011 в 14:03)   письмо автору
 
   для: Cena   (24.11.2011 в 21:28)
 

У вас функция main не содержит круглых скобок и аргументов. Вот корректный вариант
#include <iostream>
#include <math.h>
using namespace std;
int A4_10 (int A)
{
  int s,k;
  for(s=k=0; A!=0; k++)
  {
    s+=(A%10)*pow(float(4),k);
    A/=10;
  }
  return s;
}
int B2_10 (int B)
{
  int s,k;
  for(s=k=0; B!=0; k++)
  {
    s+=(B%10)*pow(float(2),k);
    B/=10;
  }
  return s;
}
int C10_8 (int C)
{
  int s,k;
  for(s=k=0; C!=0; k++)
  {
    s+=(C%8)*pow(float(10),k); 
    C/=8;
  }
  return s;
}
int main(intchar*)
{
  int A,B,C;
  cout<<"A="<<A<<endl;
  cout<<"B="<<B<<endl;
  A=A4_10(A);
  B=B2_10(B);
  C=pow(float(2*A+3*B),2);
  cout<<"C="<<C<<"(C)9="<<C10_8(C);
  return 0;
}

  Ответить  
 
 автор: Cena   (25.11.2011 в 23:50)   письмо автору
 
   для: cheops   (25.11.2011 в 14:03)
 

Спасибо Вам, но все равно компилятор выдает ошибки:
C:\Dev-Cpp\In function `int A4_10(int)':
9 C:\Dev-Cpp\cpp [Warning] converting to `int' from `double'
C:\Dev-Cpp\cpp In function `int B2_10(int)':
19 C:\Dev-Cpp\cpp [Warning] converting to `int' from `double'
C:\Dev-Cpp\ In function `int C10_8(int)':
Не пойму как их исправить(

  Ответить  
 
 автор: cheops   (26.11.2011 в 00:13)   письмо автору
 
   для: Cena   (25.11.2011 в 23:50)
 

Это не ошибки, это предупреждения (Warning), т.е. компилировать программу он должен позволять и при их наличии, но лучше, конечно, от них тоже избавиться. Разные компиляторы выдают разные предупреждения, у меня Visual Studio их не выдает, сейчас поставлю Dev-C++, попробую их воспроизвести (вы, кстати, какую версию используете?).

  Ответить  
 
 автор: cheops   (26.11.2011 в 00:25)   письмо автору
 
   для: Cena   (25.11.2011 в 23:50)
 

От предупреждений можно избавиться следующим образом
#include <iostream>
#include <math.h>
using namespace std;
int A4_10 (int A)
{
  int s,k;
  for(s=k=0; A!=0; k++)
  {
    s+=int((A%10)*pow(float(4),k));
    A/=10;
  }
  return s;
}
int B2_10 (int B)
{
  int s,k;
  for(s=k=0; B!=0; k++)
  {
    s+=int((B%10)*pow(float(2),k));
    B/=10;
  }
  return s;
}
int C10_8 (int C)
{
  int s,k;
  for(s=k=0; C!=0; k++)
  {
    s+=int((C%8)*pow(float(10),k)); 
    C/=8;
  }
  return s;
}
int main(intchar*)
{
  int A,B,C;
  cout<<"A="<<A<<endl;
  cout<<"B="<<B<<endl;
  A=A4_10(A);
  B=B2_10(B);
  C=int(pow(float(2*A+3*B),2));
  cout<<"C="<<C<<"(C)9="<<C10_8(C);
  return 0;
}

  Ответить  
 
 автор: Cena   (26.11.2011 в 00:33)   письмо автору
 
   для: cheops   (26.11.2011 в 00:25)
 

Большое спасибо Вам за помощь, я использую версию 4.9.9.2 (бэта версия)

  Ответить  
 
 автор: cheops   (26.11.2011 в 00:57)   письмо автору
 
   для: Cena   (26.11.2011 в 00:33)
 

>я использую версию 4.9.9.2 (бэта версия)
Ну и ладушки, как раз такую же поставил.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования