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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.03.2010, 19:17   #11
ReaktiV
Пользователь
 
Аватар для ReaktiV
 
Регистрация: 25.07.2008
Сообщений: 82
По умолчанию

1. В чём ошибка моей проги?
2. после запуска вылазиет вот это
ReaktiV вне форума
Старый 09.03.2010, 19:31   #12
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Потому что код кривой очень.
Переменная k2 не инициализирована
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума
Старый 09.03.2010, 19:33   #13
ReaktiV
Пользователь
 
Аватар для ReaktiV
 
Регистрация: 25.07.2008
Сообщений: 82
По умолчанию

а что с вашей ошибкой делать?
ReaktiV вне форума
Старый 09.03.2010, 19:35   #14
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

инициализировать переменную по умолчанию, а вообще где так учат код писать??? Я никак вникнуть не могу что ты там сделать хочешь
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума
Старый 10.03.2010, 00:51   #15
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Во-первых убедись для начала что у тебя студия нормально работает. Для этого создай новый проект, во время создания нужно поставить галочку в пункте "пустой проект". После создания добавь в проект новый .cpp файл и напиши там следующее:
Код:
#include <iostream>
using std::cout;

int main()
{
     cout << "Hello!";
     return 0;
}
Если все нормально компилируется, пробуй писать свой код, но при создании проекта не забывай указывать что создается ПУСТОЙ проект
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума
Старый 12.03.2010, 21:30   #16
ReaktiV
Пользователь
 
Аватар для ReaktiV
 
Регистрация: 25.07.2008
Сообщений: 82
По умолчанию

Запускаю Microsoft Visual C++ => файл => создать => проект => конслольное приложение CLR => ввожу программу:
Цитата:
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <windows.h>
using namespace std;

int main(int argc, char *argv[])
{
char str[256];
int a,b,c,n,i;
i=0;
CharToOem("Введите число n ",str);
cout << str;
scanf ("%u",&n);
printf("\n");
for (a=1;a<=n;a++)
for (b=a;b<=n;b++)
for (c=b;c<=n;c++)
if (n==pow(a,3)+pow(b,3)+pow(c,3))
{
printf("a=%u b=%u c=%u \n" ,a,b,c);
i=1;
}
if (!i)
{ CharToOem("N невозможно представить в виде суммы кубов трех натуральных чисел \n",str);
cout << str; }
system("PAUSE");
return EXIT_SUCCESS;
}
=> отладка => начать отладку, он мне выдаёт: нажимаю нет
и внизу вижу вот это :

Цитата:
1>------ Построение начато: проект: live, Конфигурация: Debug Win32 ------
1>Компиляция...
1>stdafx.cpp
1>Компиляция...
1>AssemblyInfo.cpp
1>live.cpp
1>.\live.cpp(1) : warning C4627: #include <cstdlib>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>.\live.cpp(2) : warning C4627: #include <iostream>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>.\live.cpp(3) : warning C4627: #include <math.h>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>.\live.cpp(4) : warning C4627: #include <windows.h>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>.\live.cpp(30) : fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
1>Создание кода...
1>Журнал построения был сохранен в "file://c:\Users\ReaktiV\Desktop\live\live\ live\live\live\Debug\BuildLog.htm"
1>live - ошибок 1, предупреждений 4
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Впервые работаю в этой программе, до этого работал в Turbo C++. Подскажите что делать пожалуйста.
ReaktiV вне форума
Старый 12.03.2010, 21:39   #17
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Во первых создай не конслольное приложение CLR, а консольное приложение Windows. Во - вторых добавь #include "stdafx.h" перед твоим кодом. То есть:

Код:
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <windows.h>
using namespace std;

int main(int argc, char *argv[])
{
char str[256];
int a,b,c,n,i;
i=0;
CharToOem("Введите число n ",str);
cout << str;
scanf ("%u",&n);
printf("\n");
for (a=1;a<=n;a++)
for (b=a;b<=n;b++)
for (c=b;c<=n;c++)
if (n==pow(a,3)+pow(b,3)+pow(c,3))
{
printf("a=%u b=%u c=%u \n" ,a,b,c);
i=1;
}
if (!i)
{ CharToOem("N невозможно представить в виде суммы кубов трех натуральных чисел \n",str);
cout << str; }
system("PAUSE");
return EXIT_SUCCESS;
}
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума
Старый 12.03.2010, 21:45   #18
ReaktiV
Пользователь
 
Аватар для ReaktiV
 
Регистрация: 25.07.2008
Сообщений: 82
По умолчанию

stdafx.h - а для чего можно узнать?

Создал консольное приложение Win 32
Но появилось тоже сообщение и вот это внизу
Цитата:
1>------ Построение начато: проект: live01, Конфигурация: Debug Win32 ------
1>Компиляция...
1>stdafx.cpp
1>Компиляция...
1>live01.cpp
1>c:\users\reaktiv\desktop\live\liv e\live\live01\live01\live01.cpp(13) : error C2664: CharToOemW: невозможно преобразовать параметр 1 из 'const char [17]' в 'LPCWSTR'
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\users\reaktiv\desktop\live\liv e\live\live01\live01\live01.cpp(20) : error C2668: pow: неоднозначный вызов перегруженной функции
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(575): может быть 'long double pow(long double,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(527): или 'float pow(float,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(489): или 'double pow(double,int)'
1> при попытке сопоставить список аргументов '(int, int)'
1>c:\users\reaktiv\desktop\live\liv e\live\live01\live01\live01.cpp(20) : error C2668: pow: неоднозначный вызов перегруженной функции
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(575): может быть 'long double pow(long double,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(527): или 'float pow(float,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(489): или 'double pow(double,int)'
1> при попытке сопоставить список аргументов '(int, int)'
1>c:\users\reaktiv\desktop\live\liv e\live\live01\live01\live01.cpp(20) : error C2668: pow: неоднозначный вызов перегруженной функции
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(575): может быть 'long double pow(long double,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(527): или 'float pow(float,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(489): или 'double pow(double,int)'
1> при попытке сопоставить список аргументов '(int, int)'
1>c:\users\reaktiv\desktop\live\liv e\live\live01\live01\live01.cpp(26) : error C2664: CharToOemW: невозможно преобразовать параметр 1 из 'const char [69]' в 'LPCWSTR'
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>Журнал построения был сохранен в "file://c:\Users\ReaktiV\Desktop\live\live\ live\live01\live01\Debug\BuildLog.h tm"
1>live01 - ошибок 5, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
вот код проги ещё раз
Цитата:
вот код проги ещё раз
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <windows.h>
using namespace std;

int main(int argc, char *argv[])
{
char str[256];
int a,b,c,n,i;
i=0;
CharToOem("Введите число n ",str);
cout << str;
scanf ("%u",&n);
printf("\n");
for (a=1;a<=n;a++)
for (b=a;b<=n;b++)
for (c=b;c<=n;c++)
if (n==pow(a,3)+pow(b,3)+pow(c,3))
{
printf("a=%u b=%u c=%u \n" ,a,b,c);
i=1;
}
if (!i)
{ CharToOem("N невозможно представить в виде суммы кубов трех натуральных чисел \n",str);
cout << str; }
system("PAUSE");
return EXIT_SUCCESS;
}

Последний раз редактировалось Stilet; 15.03.2010 в 09:05.
ReaktiV вне форума
Старый 12.03.2010, 21:53   #19
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Сообщение от ReaktiV Посмотреть сообщение
stdafx.h - а для чего можно узнать?
Это файл предкомпилированных заголовков. можешь создавать пустой проект и тогда писать это не надо будет

вот рабочий код

Код:
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <windows.h>

using namespace std;

int pow(int k,int st)
{
	int res = 1;
	for(int i = 0; i < st; i++)
		res *= k;
	return k;
}

int main(int argc, char *argv[])
{
char str[256];
int a,b,c,n,i;
i=0;
CharToOem("Введите число n ",str);
cout << str;
scanf ("%u",&n);
printf("\n");
for (a=1;a<=n;a++)
for (b=a;b<=n;b++)
for (c=b;c<=n;c++)
if (n==pow(a,3)+pow(b,3)+pow(c,3))
{
printf("a=%u b=%u c=%u \n" ,a,b,c);
i=1;
}
if (!i)
{ CharToOem("N невозможно представить в виде суммы кубов трех натуральных чисел \n",str);
cout << str; }
system("PAUSE");
return EXIT_SUCCESS;
}
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer

Последний раз редактировалось Stilet; 15.03.2010 в 09:05.
Ozerich вне форума
Старый 12.03.2010, 22:02   #20
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Ozerich, у вас тоже неоднозначный вызов функции pow(). Для этой функции нет перегрузки с аргументами типа int, и компилятор не будет знать к какому типу привести аргументы. Нужно явное приведение.
И еще, раз уж мы пишем на C++, то нужно подключать библиотеки C++, т.е. <cmath>, вместо <math.h>

Добавлено:
Не обратил внимания что вы сделали свою перегруженную функцию, только не понятно, зачем?
И вообще, перегружать библиотечные функции без особо веской причины - не есть хорошо
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария

Последний раз редактировалось Blade; 12.03.2010 в 22:04.
Blade вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по if, else? molodoyy Помощь студентам 5 21.03.2010 15:34
Вопросы Syltan Общие вопросы C/C++ 2 13.11.2009 19:32
Вопросы по if, else? molodoyy Общие вопросы C/C++ 1 25.10.2008 18:55
вопросы MAcK Win Api 7 21.07.2007 18:08