Немного подредактировал код... Все равно вылеает с какой то странной ошибкой: Debug Assertion Failed! File: afx.inl Line: 177
Вот код полность:
| Код | #include "stdafx.h" #include "Podgoni.h" #include "dlg.h"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif const char znak[3]={'+','-','*'}; int N,M,a[15]; long S,K; CString B; ///////////////////////////////////////////////////////////////////////////// // dlg dialog
dlg::dlg(CWnd* pParent /*=NULL*/) : CDialog(dlg::IDD, pParent) { //{{AFX_DATA_INIT(dlg) m_Edit1 = 0; m_Edit2 = 0; //}}AFX_DATA_INIT }
void dlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(dlg) DDX_Control(pDX, IDC_MSFLEXGRID1, m_Grid1); DDX_Text(pDX, IDC_EDIT1, m_Edit1); DDX_Text(pDX, IDC_EDIT2, m_Edit2); //}}AFX_DATA_MAP }
BEGIN_MESSAGE_MAP(dlg, CDialog) //{{AFX_MSG_MAP(dlg) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) //}}AFX_MSG_MAP END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// // dlg message handlers
void dlg::OnButton1() {
UpdateData(true); m_Grid1.SetCols(m_Edit2); UpdateData(false); }
long GetMul(int p) { long tm; tm=a[p-1]; while( (p<N)&&(B[p]=='*') ) {tm=tm*a[p+1]; p++;} return tm; }
long GetRes() { long tm; int p=1; tm=GetMul(p); while( (p<N) && (B[p]=='+'||B[p]=='-') ) {p++; switch(B[p-1]) { case '+': tm=tm+GetMul(p); break; case '-': tm=tm-GetMul(p); break; } } return tm; }
void Arrange(CString Nabor, int Place) { int i; long s1; char *text; if(Place>M) {B=Nabor; s1=GetRes(); if(s1==S) {B=Nabor; text=Nabor.GetBuffer(0); AfxMessageBox(text); } } else {for(i=0;i<3;i++) Arrange(Nabor+znak[i],Place+1); } }
void dlg::OnButton2() { char *text,text2[5]; int i; CString text1; UpdateData(true); N=m_Edit2; S=m_Edit1; m_Grid1.SetRow(0); for(i=0;i<2;i++) { m_Grid1.SetCol(i); itoa(i+1,text2,10); m_Grid1.SetText(text2);} for(i=0;i<N;i++) {m_Grid1.SetCol(i); text1=m_Grid1.GetText(); text=text1.GetBuffer(0); a[i]=atoi(text); AfxMessageBox(text); } M=N-1; B=""; Arrange("",1); }
|
Сейчас буду пробывать вашу версию, Sannis.
UPD: Попробывал-та же ошибка...
|