Добрый день.
Решаю такую задачку:
«Написать программу с использованием функции, определяющей из двух введённых чисел то,
которое имеет максимальную сумму цифр. Реализовать рекурсивный вариант решения такой задачи.»
Я написал так:
C++ | ||
|
При компиляции в окне Вывод сообщение:
«1>—— Построение начато: проект: 15_Max_summa_chifr, Конфигурация: Debug Win32 ——
1>Компиляция…
1>15_Max_summa_chifr.cpp
1>d:my documentsпрограммирование_информатикаc++15_max_summa_chifr15_max_summa_chifr .cpp(41) : warning C4996: ‘getch’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1> c:program files (x86)microsoft visual studio 9.0vcincludeconio.h(145): см. объявление ‘getch’
1>d:my documentsпрограммирование_информатикаc++15_max_summa_chifr15_max_summa_chifr .cpp(46) : error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>Журнал построения был сохранен в «file://d:My documentsПрограммирование_ИнформатикаC++15_Max_summa_chifrDebugBuildLog.htm «
1>15_Max_summa_chifr — ошибок 1, предупреждений 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========»
Как я понимаю, сообщение об ошибке вот это:
«error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)»
Вообще не понял, что это значит. Подскажите, пожалуйста кто-нибудь.
Столкнулся с такой задачей, где нужно реализовать свой list
. По примеру из источника я в шаблонный класс включил обычный класс.
template<class T>class List {
class Node {
public:
T d;
Node *next, *prev;
Node(T dat = 0) { d = dat; next = 0; prev = 0; }
};
Node *pbeg, *pend;
public:
List() { pbeg = 0; pend = 0; }
~List();
void add(T d);
Node * find(T i);
Node * insert(T key,T d);
bool remove(T key);
void print();
void print_back();
};
Без методов
Node * find(T i);
Node * insert(T key,T d);
код компилируется, а с ними нет и выдает гору ошибок типа:
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2447 {: отсутствует заголовок функции (возможно, используется формальный список старого типа) Шаблонный_класс_вариант2 c:usersсемёнdocumentsvisual studio 2015projectsшаблонный_класс_вариант2шаблонный_класс_вариант2list.h 101
Серьезность Код Описание Проект Файл Строка Состояние подавленияОшибка C2988 неопознанное объявление или определение шаблона Шаблонный_класс_вариант2 c:usersсемёнdocumentsvisual studio 2015projectsшаблонный_класс_вариант2шаблонный_класс_вариант2list.h 99
сама реализация методов:
template<class T> Node* List<T>::find(T i) {
Node *pv = pbeg;
while (pv)
{
if (pv->d == i)
break;
pv = pv->next;
}
return pv;
}
template<class T> Node * List<T>::insert(T key, T d) {
if (Node* pkey = find(key)) {
Node* pv = new Node(d);
pv->next = pkey->next;
pv->prev = pkey;
pkey->next = pv;
if (pkey != pend)
(pv->next)->prev = pv;
else
pend = pv;
return pv;
}
return 0;
}
В чем подвох? Спасибо.
Help me solve this error! Thank you very much!
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <stdio.h>
#include <math.h>
#include<iostream>
using namespace std;
#define N 2 // number of equations
#define dist 0.1 //step size
#define MIN 0.0 //minimum x
#define MAX 10.0 //maximum x
int main() {
double x, y[N];
//int j;
void runge4(double x, double y[], double step); //header
double f(double x, double y[], int i);
FILE *output; // save data in rk4.dat
output= fopen("rk4.dat","w");
y[0]= 1.0;//initial position
y[1]= 0.0;///initial velocity
fprintf(output, "%f/t%f/n",x,y[0]);
for (x= MIN; x<= MAX; x+= dist) {
runge4(x, y,dist);
fprintf(output,"%f/t%f/n", x, y[0]); //position vs time
}
printf("data stored in rk4.datn");
fclose(output);
} //end of main program
void runge4(double x, double y[], double step);
{ //rk4 subroutine
double f(double x, double y[], int i);
double h = step/2.0
t1[N],t2[N],t3[N],k1[N],k2[N],k3[N],k4[N];
int i;
for (i = 0; i<N; i++) t1[i]=y[i]+0.5*(k1[i]=step*f(x,y,i));
for (i = 0; i<N; i++) t2[i]=y[i]+0.5*(k2[i]=step*f(x+h,t1,i));
for (i = 0; i<N; i++) t3[i]=y[i]+(k3[i]=step*f(x+h,t2,i));
for (i = 0; i<N; i++) k4[i]=step*f(x+step,t3,i);
for (i = 0; i<N; i++) y[i]+=(k1[i]+2*k2[i]+2*k3[i]+k4[i])/6.0;
}
double f(double x, double y[], int i)
{ //RHS equations
if (i==0) return(y[1]); //RHS of first equation
if (i==1) return(-y[0]); //RHS of second equation
}
It’s 4th order runger-kutta solution for harmonic oscillator, i got this from computational physics H.Landau.I don’t know how to fix this, please help me!
Help me solve this error! Thank you very much!
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <stdio.h>
#include <math.h>
#include<iostream>
using namespace std;
#define N 2 // number of equations
#define dist 0.1 //step size
#define MIN 0.0 //minimum x
#define MAX 10.0 //maximum x
int main() {
double x, y[N];
//int j;
void runge4(double x, double y[], double step); //header
double f(double x, double y[], int i);
FILE *output; // save data in rk4.dat
output= fopen("rk4.dat","w");
y[0]= 1.0;//initial position
y[1]= 0.0;///initial velocity
fprintf(output, "%f/t%f/n",x,y[0]);
for (x= MIN; x<= MAX; x+= dist) {
runge4(x, y,dist);
fprintf(output,"%f/t%f/n", x, y[0]); //position vs time
}
printf("data stored in rk4.datn");
fclose(output);
} //end of main program
void runge4(double x, double y[], double step);
{ //rk4 subroutine
double f(double x, double y[], int i);
double h = step/2.0
t1[N],t2[N],t3[N],k1[N],k2[N],k3[N],k4[N];
int i;
for (i = 0; i<N; i++) t1[i]=y[i]+0.5*(k1[i]=step*f(x,y,i));
for (i = 0; i<N; i++) t2[i]=y[i]+0.5*(k2[i]=step*f(x+h,t1,i));
for (i = 0; i<N; i++) t3[i]=y[i]+(k3[i]=step*f(x+h,t2,i));
for (i = 0; i<N; i++) k4[i]=step*f(x+step,t3,i);
for (i = 0; i<N; i++) y[i]+=(k1[i]+2*k2[i]+2*k3[i]+k4[i])/6.0;
}
double f(double x, double y[], int i)
{ //RHS equations
if (i==0) return(y[1]); //RHS of first equation
if (i==1) return(-y[0]); //RHS of second equation
}
It’s 4th order runger-kutta solution for harmonic oscillator, i got this from computational physics H.Landau.I don’t know how to fix this, please help me!
Столкнулся с такой задачей, где нужно реализовать свой list
. По примеру из источника я в шаблонный класс включил обычный класс.
template<class T>class List {
class Node {
public:
T d;
Node *next, *prev;
Node(T dat = 0) { d = dat; next = 0; prev = 0; }
};
Node *pbeg, *pend;
public:
List() { pbeg = 0; pend = 0; }
~List();
void add(T d);
Node * find(T i);
Node * insert(T key,T d);
bool remove(T key);
void print();
void print_back();
};
Без методов
Node * find(T i);
Node * insert(T key,T d);
код компилируется, а с ними нет и выдает гору ошибок типа:
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2447 {: отсутствует заголовок функции (возможно, используется формальный список старого типа) Шаблонный_класс_вариант2 c:usersсемёнdocumentsvisual studio 2015projectsшаблонный_класс_вариант2шаблонный_класс_вариант2list.h 101
Серьезность Код Описание Проект Файл Строка Состояние подавленияОшибка C2988 неопознанное объявление или определение шаблона Шаблонный_класс_вариант2 c:usersсемёнdocumentsvisual studio 2015projectsшаблонный_класс_вариант2шаблонный_класс_вариант2list.h 99
сама реализация методов:
template<class T> Node* List<T>::find(T i) {
Node *pv = pbeg;
while (pv)
{
if (pv->d == i)
break;
pv = pv->next;
}
return pv;
}
template<class T> Node * List<T>::insert(T key, T d) {
if (Node* pkey = find(key)) {
Node* pv = new Node(d);
pv->next = pkey->next;
pv->prev = pkey;
pkey->next = pv;
if (pkey != pend)
(pv->next)->prev = pv;
else
pend = pv;
return pv;
}
return 0;
}
В чем подвох? Спасибо.
Войти или зарегистрироваться
-
Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.
Solved Не хочет компилировать
Тема в разделе ‘Кодинг/Собственные решения’, создана пользователем Sk1llz, 26 сен 2012.
-
Sk1llz
Ньюфаг- Сообщения:
- 12
- Спасибы:
- 0
- Дата начала использования бота:
- 1.11.2011
Хотел поставить себе «правила» . Но после компиляции вылетают ошибки.
вот то что хотел поставить , ставил его в команды game.ccpКод:
// // !RULEZZZZ // if ( Command == "rules" ) { SendChat( "1-е: не дрочить"); SendChat("2-е: темболее с улыбкой на лице"); SendChat("3-e: не кусатсо"); }
Так же когда ставлю «Fake», куча ошибок вылета
Ghostone 1.7.266 -
Doterok
Старожила- Сообщения:
- 923
- Спасибы:
- 171
- Сборка бота GHost:
- Ghost ++ 17.2
- Дата начала использования бота:
- 2011
код, факе и прочее
куда ставил (по 5 строчек снизу с верху)
зы к кодингу это не относится все вопросы поднимались неоднократно -
Sk1llz
Ньюфаг- Сообщения:
- 12
- Спасибы:
- 0
- Дата начала использования бота:
- 1.11.2011
Не понял ответ «код, факе и прочее
куда ставил (по 5 строчек снизу с верху)»
Ps. Просто хочу розобратся -
ViperNight
▒▒▒▒▒▒▒▒▒- Сообщения:
- 311
- Спасибы:
- 154
- Сборка бота GHost:
- GHost++ r597M
- Дата начала использования бота:
- 20.01.2007
- Skype:
-
В файле game_base.cpp нарушен синтаксис, если там поправить, то останется 3 однотипных ошибки с методом, которые исправляются путём передачи в метод первым параметром слово player.
Код:
SendChat( player, "~~~~~~~~" );
-
Synth (LM)
Пантограф!- Сообщения:
- 2.762
- Спасибы:
- 172
- Сборка бота GHost:
- My own version of GhostOne
- Дата начала использования бота:
- 15.06.2008
- Skype:
-
(Вы должны войти или зарегистрироваться, чтобы ответить.)
Показать игнорируемое содержимое
- Ваше имя или e-mail:
-
У Вас уже есть учётная запись?
Забыли пароль?
-
- Нет, зарегистрироваться сейчас.
- Да, мой пароль:
-
Запомнить меня
-
- Искать только в заголовках
- Сообщения пользователя:
-
Имена участников (разделяйте запятой).
- Новее чем:
-
- Искать только в этой теме
- Искать только в этом разделе
- Отображать результаты в виде тем
-
Быстрый поиск
- Последние темы
Больше…
- Remove From My Forums
-
Question
-
I got this error and I have no idea what’s causing it. I haven’t been able to find a clear solution online.
Code:
#include <iostream>
using namespace std;int main()
{
int NUM1, NUM2;cout << «Enter your first number: «;
cin >> NUM1;
cout << endl;
cout << «Enter your second number: «;
cin >> NUM2;
cout << endl; cout << endl; //moves cursor two lines downint SUM = NUM1 + NUM2; //Sum
int DIFF = NUM1 — NUM2; //Difference
int PROD = NUM1 * NUM2; //Product
int INT_QUO = NUM1 / NUM2; //Integer quotient
float FLT_QUO = ((float)NUM1) / NUM2; //Float quotientcout << «Sum: » << SUM; cout << endl;
cout << «Difference: » << DIFF; cout << endl;
cout << «Product: » << PROD; cout << endl;
cout << «Integer Quotient: » << INT_QUO; cout << endl;
cout << «Float Quotient: » << FLT_QUO; cout << endl;return 0;
}Help would be appreciated!
Answers
-
I also tried a generic «Hello World» code to the program out and I got the exact same error messages.
Code:
#include <iostream>
using namespace std;
int main()
{
cout << «Hello world!n»;
system(«pause»);
return 0;
}Here’s the full error message:
1>—— Build started: Project: CS215Lab1_01092019, Configuration: Debug Win32 ——
1>HelloWorld.cpp
1>Lab1.cpp
1>c:usersCgrunchsourcereposcs215lab1_01092019cs215lab1_01092019lab1.cpp(8): error C2447: ‘{‘: missing function header (old-style formal list?)
1>c:usersCgrunchsourcereposcs215lab1_01092019cs215lab1_01092019lab1.cpp(10): fatal error C1004: unexpected end-of-file foundThe build output suggests that you have both HelloWorld.cpp and Lab1.cpp
in the same project. The compile errors are from Lab1.cpp so remove that
program from the project and and do a Rebuild with just HelloWorld.cpp in
the project.It would help if you described the steps you followed when creating this
project. Did you start from an Empty Project? Or did you use one of the
supplied templates such as Win32 Console Application?— Wayne
-
Marked as answer by
Thursday, January 10, 2019 5:32 PM
-
Marked as answer by
-
I restarted VS2017 and reopened the Project. VS asked me if I wanted to «normalize line endings» and I clicked «Yes». I removed HelloWorld.cpp and the program works fine now.
Thank you so much for your help!
-
Marked as answer by
CGrunch
Thursday, January 10, 2019 5:32 PM
-
Marked as answer by
Добрый день.
Решаю такую задачку:
«Написать программу с использованием функции, определяющей из двух введённых чисел то,
которое имеет максимальную сумму цифр. Реализовать рекурсивный вариант решения такой задачи.»
Я написал так:
C++ | ||
|
При компиляции в окне Вывод сообщение:
«1>—— Построение начато: проект: 15_Max_summa_chifr, Конфигурация: Debug Win32 ——
1>Компиляция…
1>15_Max_summa_chifr.cpp
1>d:my documentsпрограммирование_информатикаc++15_max_ summa_chifr15_max_summa_chifr.cpp(41) : warning C4996: ‘getch’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1> c:program files (x86)microsoft visual studio 9.0vcincludeconio.h(145): см. объявление ‘getch’
1>d:my documentsпрограммирование_информатикаc++15_max_ summa_chifr15_max_summa_chifr.cpp(46) : error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>Журнал построения был сохранен в «file://d:My documentsПрограммирование_ИнформатикаC++15_Max_ summa_chifrDebugBuildLog.htm»
1>15_Max_summa_chifr — ошибок 1, предупреждений 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========»
Как я понимаю, сообщение об ошибке вот это:
«error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)»
Вообще не понял, что это значит. Подскажите, пожалуйста кто-нибудь.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Help me solve this error! Thank you very much!
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <stdio.h>
#include <math.h>
#include<iostream>
using namespace std;
#define N 2 // number of equations
#define dist 0.1 //step size
#define MIN 0.0 //minimum x
#define MAX 10.0 //maximum x
int main() {
double x, y[N];
//int j;
void runge4(double x, double y[], double step); //header
double f(double x, double y[], int i);
FILE *output; // save data in rk4.dat
output= fopen("rk4.dat","w");
y[0]= 1.0;//initial position
y[1]= 0.0;///initial velocity
fprintf(output, "%f/t%f/n",x,y[0]);
for (x= MIN; x<= MAX; x+= dist) {
runge4(x, y,dist);
fprintf(output,"%f/t%f/n", x, y[0]); //position vs time
}
printf("data stored in rk4.datn");
fclose(output);
} //end of main program
void runge4(double x, double y[], double step);
{ //rk4 subroutine
double f(double x, double y[], int i);
double h = step/2.0
t1[N],t2[N],t3[N],k1[N],k2[N],k3[N],k4[N];
int i;
for (i = 0; i<N; i++) t1[i]=y[i]+0.5*(k1[i]=step*f(x,y,i));
for (i = 0; i<N; i++) t2[i]=y[i]+0.5*(k2[i]=step*f(x+h,t1,i));
for (i = 0; i<N; i++) t3[i]=y[i]+(k3[i]=step*f(x+h,t2,i));
for (i = 0; i<N; i++) k4[i]=step*f(x+step,t3,i);
for (i = 0; i<N; i++) y[i]+=(k1[i]+2*k2[i]+2*k3[i]+k4[i])/6.0;
}
double f(double x, double y[], int i)
{ //RHS equations
if (i==0) return(y[1]); //RHS of first equation
if (i==1) return(-y[0]); //RHS of second equation
}
It’s 4th order runger-kutta solution for harmonic oscillator, i got this from computational physics H.Landau.I don’t know how to fix this, please help me!
Help me solve this error! Thank you very much!
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <stdio.h>
#include <math.h>
#include<iostream>
using namespace std;
#define N 2 // number of equations
#define dist 0.1 //step size
#define MIN 0.0 //minimum x
#define MAX 10.0 //maximum x
int main() {
double x, y[N];
//int j;
void runge4(double x, double y[], double step); //header
double f(double x, double y[], int i);
FILE *output; // save data in rk4.dat
output= fopen("rk4.dat","w");
y[0]= 1.0;//initial position
y[1]= 0.0;///initial velocity
fprintf(output, "%f/t%f/n",x,y[0]);
for (x= MIN; x<= MAX; x+= dist) {
runge4(x, y,dist);
fprintf(output,"%f/t%f/n", x, y[0]); //position vs time
}
printf("data stored in rk4.datn");
fclose(output);
} //end of main program
void runge4(double x, double y[], double step);
{ //rk4 subroutine
double f(double x, double y[], int i);
double h = step/2.0
t1[N],t2[N],t3[N],k1[N],k2[N],k3[N],k4[N];
int i;
for (i = 0; i<N; i++) t1[i]=y[i]+0.5*(k1[i]=step*f(x,y,i));
for (i = 0; i<N; i++) t2[i]=y[i]+0.5*(k2[i]=step*f(x+h,t1,i));
for (i = 0; i<N; i++) t3[i]=y[i]+(k3[i]=step*f(x+h,t2,i));
for (i = 0; i<N; i++) k4[i]=step*f(x+step,t3,i);
for (i = 0; i<N; i++) y[i]+=(k1[i]+2*k2[i]+2*k3[i]+k4[i])/6.0;
}
double f(double x, double y[], int i)
{ //RHS equations
if (i==0) return(y[1]); //RHS of first equation
if (i==1) return(-y[0]); //RHS of second equation
}
It’s 4th order runger-kutta solution for harmonic oscillator, i got this from computational physics H.Landau.I don’t know how to fix this, please help me!
Столкнулся с такой задачей, где нужно реализовать свой list
. По примеру из источника я в шаблонный класс включил обычный класс.
template<class T>class List {
class Node {
public:
T d;
Node *next, *prev;
Node(T dat = 0) { d = dat; next = 0; prev = 0; }
};
Node *pbeg, *pend;
public:
List() { pbeg = 0; pend = 0; }
~List();
void add(T d);
Node * find(T i);
Node * insert(T key,T d);
bool remove(T key);
void print();
void print_back();
};
Без методов
Node * find(T i);
Node * insert(T key,T d);
код компилируется, а с ними нет и выдает гору ошибок типа:
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2447 {: отсутствует заголовок функции (возможно, используется формальный список старого типа) Шаблонный_класс_вариант2 c:usersсемёнdocumentsvisual studio 2015projectsшаблонный_класс_вариант2шаблонный_класс_вариант2list.h 101
Серьезность Код Описание Проект Файл Строка Состояние подавленияОшибка C2988 неопознанное объявление или определение шаблона Шаблонный_класс_вариант2 c:usersсемёнdocumentsvisual studio 2015projectsшаблонный_класс_вариант2шаблонный_класс_вариант2list.h 99
сама реализация методов:
template<class T> Node* List<T>::find(T i) {
Node *pv = pbeg;
while (pv)
{
if (pv->d == i)
break;
pv = pv->next;
}
return pv;
}
template<class T> Node * List<T>::insert(T key, T d) {
if (Node* pkey = find(key)) {
Node* pv = new Node(d);
pv->next = pkey->next;
pv->prev = pkey;
pkey->next = pv;
if (pkey != pend)
(pv->next)->prev = pv;
else
pend = pv;
return pv;
}
return 0;
}
В чем подвох? Спасибо.
I’ve been looking at a lot of questions similar to mine but all of the answers are about how something is just wrong in the code. So I’ve been looking in mine and I can’t find anything wrong with it. Though I guess it makes sense since I’m just starting out with C++. Here is the code:
#include <windows.h>
#include <conio.h>
int Main = MessageBox(NULL, "Testing", "Testing", MB_YESNO);
{
if (Main == IDYES) {
MessageBox(NULL, "Testing2", "Testing", NULL)
break;
}
else if (Main == IDNO) {
MessageBox(NULL, "Testing3", "Testing", NULL)
break;
}
return 0;
}
asked Oct 26, 2016 at 0:06
3
Your program needs to define a function called main
. The main
function is what gets called by the environment when your program starts running.
(main
and Main
are distinct identifiers, but I suggest that using the name Main
for an object could be confusing.)
The definition of the main
function should look like this:
int main() {
// code goes here
}
The #include
directives are fine where they are, but everything else should be inside the definition of main
.
More complex structures are possible (for example you can have file-scope declarations and multiple function definitions), but this should get you started.
answered Oct 26, 2016 at 0:11
Keith ThompsonKeith Thompson
254k44 gold badges424 silver badges628 bronze badges
3
Your code should like something like this:
#include <windows.h>
#include <conio.h>
int main(){
int result = MessageBox(NULL, "Testing", "Testing", MB_YESNO);
if (result == IDYES){
MessageBox(NULL, "Testing2", "Testing", NULL)
}
else if (result == IDNO){
MessageBox(NULL, "Testing3", "Testing", NULL)
}
return 0;
}
answered Oct 26, 2016 at 0:27
mtbmtb
1,35016 silver badges32 bronze badges
1