24小时热门版块排行榜    

查看: 1556  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zyj8119

木虫 (著名写手)

[交流] 【求助】为什么我编译了一个书本上的无错误的C++程序,却有这么多的错误?

CODE:
#include
#include
#include
using namespace std;
class bint
{
private:
        int n;
        double **a,*b,*x,eps;
        double **p,*r,*e;
public:
        bint(int nn)
        {
                int i;
                n=nn;
                a=new double*[n];
                for(i=0;i                 p=new double*[n];
                for(i=0;i                 r=new double[n];
                e=new double[n];
                b=new double[n];
                x=new double[n];
        }
        void input();
        void a_bint();
        void gauss();
        void output();
        bint()
        {
                int i;
                for(i=0;i                 delete[] a;
                for(i=0;i                 delete[] p;
                delete[] r,e,b,x;
        }
};

void bint::input()
{
        int i,j;
        char str1[20];
        cout<<"\n输入文件名:";
        cin>>str1;
        ifstream fin(str1);
        if(!fin)
        {cout<<"\n不能打开这个文件"<         for(i=0;i                 for(j=0;j>a[i][j];
                for(i=0;i>b[i];
                fin.close();
}

void bint::a_bint()
{
        int i,j,k;
        double q,qq;
        i=100;
        for(k=0;k<=n-1;k++)
                for(j=0;j<=n-1;j++)p[k][j]=a[k][j];
                for(k=0;k<=n-1;k++)r[k]=b[k];
                gauss();
                for(k=0;k                 q=1.0+eps;
                while(q>=eps)
                {
                        if(i==0)return;
                        i=i-1;
                        for(k=0;k                         {
                                e[k]=0.0;
                                for(j=0;j                                         e[k]=e[k]+a[k][j]*x[j];
                        }
                        for(k=0;k<=n-1;k++)r[k]=b[k]-e[k];
                                for(k=0;k<=n-1;k++)
                                        for(j=0;j<=n-1;j++)p[k][j]=a[k][j];
                                        gauss();
                                        q=0.0;
                                        for(k=0;k<=n-1;k++)
                                        {
                                                qq=fabs(r[k])/(1.0+fabs(x[k]+r[k]));
                                                if(qq>q)q=qq;
                                        }
                                        for(k=0;k<=n-1;k++)x[k]=x[k]+r[k];
                }
}
void bint::gauss()
{
        int *js,l,k,i,j,is;
        double d,t;
        js=new int[n];
        l=1;
        for(k=0;k<=n-2;k++)
        {
                d=0.0;
                for(i=k;i<=n-1;i++)
                        for(j=k;j<=n-1;j++)
                        {
                                t=fabs(p[i][j]);
                                if(t>d){d=t;js[k]=j;is=i;}
                        }
                        if(d+1.0==1.0)l=0;
                        else
                        {if(js[k]!=k)
                        for(i=0;i<=n-1;i++)
                        {
                                t=p[i][k];
                                p[i][k]=p[i][js[k]];
                                p[i][js[k]]=t;
                        }
                        if(is!=k)
                        {
                                for(j=k;j<=n-1;j++)
                                {
                                        t=p[k][j];
                                        p[k][j]=p[is][j];
                                        p[is][j]=t;
                                }
                                    t=r[k];r[k]=r[is];r[is]=t;
                        }
                }
                        if(l==0)
                        {
                                delete[] js;
                                cout<<"\n系数矩阵奇异!无解."<                                 return;
                        }
                        d=p[k][k];
                        for(j=k+1;j<=n-1;j++)
                                p[k][j]=p[k][j]/d;
                        r[k]=r[k]/d;
                        for(i=k+1;i<=n-1;i++)
                                p[i][j]=p[i][j]-p[i][k]*p[k][j];
                        r[i]=r[i]-p[i][k]*r[k];
        }
}
            d=p[n-1][n-1];
            if(fabs(d)+1.0==1.0)
                        {
                delete[] js;
                                cout<<"\n系数矩阵奇异!无解."<                             return;
                        }
            r[n-1]=r[n-1]/d;
            for(i=n-2;i>=0;i--)
                        {
                t=0.0;
                for(j=i+1;j<=n-1;j++)
                       t=t+p[i][j]*r[j];
                  r[i]=r[i]-t;
                        }
            js[n-1]=n-1;
          for(k=n-1;k>=0;k--)
          if(js[k]!=k)
                  {
               t=r[k];r[k]=r[js[k]];r[js[k]]=t;
                  }
       delete[] js;
    }

void bint::output()
{
        int i;
        char str2[20];
        cout<<"\n输出文件名:";
        cin>>str2;
        ofstream fout(str2);
        if(!fout)
        {cout<<"\n不能打开这个文件"<         fout<         for(i=0;i         {
                fout<                         cout<         }
        fout<         fout.close();
}

void main()
{
        bint c(4);
        c.input();
        c.a_bint();
        c.output();
}

[ Last edited by zyj8119 on 2010-10-12 at 01:57 ]
回复此楼

» 猜你喜欢

好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

ajian04:加油~ 2010-10-12 08:16:14
引用回帖:
Originally posted by zyj8119 at 2010-10-12 01:50:50:
错误是:
--------------------Configuration: 1 - Win32 Debug--------------------
Compiling...
bingtai.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(128) : error C2143: sy ...

用VC++6.0编译。
好好学习,天天向上。
3楼2010-10-12 01:55:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

zyj8119

木虫 (著名写手)

ajian04:欢迎交流~ 2010-10-12 08:16:06
错误是:
--------------------Configuration: 1 - Win32 Debug--------------------
Compiling...
bingtai.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(128) : error C2143: syntax error : missing ';' before 'return'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(139) : error C2501: 'd' : missing storage-class or type specifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(139) : error C2065: 'p' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(139) : error C2065: 'n' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(139) : error C2109: subscript requires array or pointer type
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(139) : error C2109: subscript requires array or pointer type
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(140) : error C2143: syntax error : missing ';' before 'if'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(141) : error C2143: syntax error : missing ';' before '{'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(141) : error C2447: missing function header (old-style formal list?)
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(146) : error C2057: expected constant expression
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(146) : error C2466: cannot allocate an array of constant size 0
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(146) : error C2501: 'r' : missing storage-class or type specifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(146) : error C2440: 'initializing' : cannot convert from 'int' to 'int []'
        There are no conversions to array types, although there are conversions to references or pointers to arrays
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(147) : error C2143: syntax error : missing ';' before 'for'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(147) : error C2143: syntax error : missing ')' before ';'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(147) : error C2143: syntax error : missing ';' before '>='
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(147) : error C2501: 'i' : missing storage-class or type specifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(147) : error C2143: syntax error : missing ';' before '>='
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(147) : error C2143: syntax error : missing ';' before '--'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(147) : error C2501: 'i' : missing storage-class or type specifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(147) : error C2086: 'i' : redefinition
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(147) : error C2143: syntax error : missing ';' before '--'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(147) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(148) : error C2143: syntax error : missing ';' before '{'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(148) : error C2447: missing function header (old-style formal list?)
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(154) : error C2057: expected constant expression
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(154) : error C2466: cannot allocate an array of constant size 0
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(154) : error C2501: 'js' : missing storage-class or type specifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(154) : error C2440: 'initializing' : cannot convert from 'int' to 'int []'
        There are no conversions to array types, although there are conversions to references or pointers to arrays
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(155) : error C2143: syntax error : missing ';' before 'for'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(155) : error C2143: syntax error : missing ')' before ';'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(155) : error C2143: syntax error : missing ';' before '>='
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(155) : error C2501: 'k' : missing storage-class or type specifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(155) : error C2143: syntax error : missing ';' before '>='
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(155) : error C2143: syntax error : missing ';' before '--'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(155) : error C2501: 'k' : missing storage-class or type specifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(155) : error C2086: 'k' : redefinition
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(155) : error C2143: syntax error : missing ';' before '--'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(155) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(157) : error C2143: syntax error : missing ';' before '{'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(157) : error C2447: missing function header (old-style formal list?)
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(160) : error C2143: syntax error : missing ';' before 'delete'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(161) : error C2143: syntax error : missing ';' before '}'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(161) : error C2143: syntax error : missing ';' before '}'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(161) : error C2143: syntax error : missing ';' before '}'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(164) : error C2143: syntax error : missing ';' before '{'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\bingtai.cpp(164) : error C2447: missing function header (old-style formal list?)
Error executing cl.exe.

bingtai.obj - 47 error(s), 0 warning(s)
好好学习,天天向上。
2楼2010-10-12 01:50:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ajian04

禁虫 (正式写手)

zyj8119(金币+3):大括号的位置有要求吧? 2010-10-12 10:03:41
是你直接抄写的吗?遗漏了很多符号,还有可能是你的编译环境不对,好好看看书上介绍的运行环境吧
4楼2010-10-12 08:15:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

木叶清风

木虫 (正式写手)

★ ★
zyj8119(金币+5):何谓连带错误?我的大括号的对数,感觉也是对的。 2010-10-12 09:55:25
ajian04(金币+2):谢谢参与交流~ 2010-10-12 10:08:27
里面有些错误是连带的,可以参考下面的修改
CODE:
#include
#include
#include
using namespace std;
class bint
{
private:
        int n;
        double **a,*b,*x,eps;
        double **p,*r,*e;
public:
        bint(int nn)
        {
                int i;
                n=nn;
                a=new double*[n];
                for(i=0;i                 p=new double*[n];
                for(i=0;i                 r=new double[n];
                e=new double[n];
                b=new double[n];
                x=new double[n];
        }
        void input();
        void a_bint();
        void gauss();
        void output();
        ~bint()
        {
                int i;
                for(i=0;i                 delete[] a;
                for(i=0;i                 delete[] p;
                delete[] r,e,b,x;
        }
};

void bint::input()
{
        int i,j;
        char str1[20];
        cout<<"\n输入文件名:";
        cin>>str1;
        ifstream fin(str1);
        if(!fin)
        {cout<<"\n不能打开这个文件"<         for(i=0;i                 for(j=0;j>a[i][j];
        for(i=0;i>b[i];
        fin.close();
}

void bint::a_bint()
{
        int i,j,k;
        double q,qq;
        i=100;
        for(k=0;k<=n-1;k++)
                for(j=0;j<=n-1;j++)p[k][j]=a[k][j];
        for(k=0;k<=n-1;k++)r[k]=b[k];
        gauss();
        for(k=0;k         q=1.0+eps;
        while(q>=eps)
        {
                if(i==0)return;
                i=i-1;
                for(k=0;k                 {
                        e[k]=0.0;
                        for(j=0;j                                 e[k]=e[k]+a[k][j]*x[j];
                }
                for(k=0;k<=n-1;k++)r[k]=b[k]-e[k];
                for(k=0;k<=n-1;k++)
                        for(j=0;j<=n-1;j++)p[k][j]=a[k][j];
                gauss();
                q=0.0;
                for(k=0;k<=n-1;k++)
                {
                        qq=fabs(r[k])/(1.0+fabs(x[k]+r[k]));
                        if(qq>q)q=qq;
                }
                for(k=0;k<=n-1;k++)x[k]=x[k]+r[k];
        }
}
void bint::gauss()
{
        int *js,l,k,i,j,is;
        double d,t;
        js=new int[n];
        l=1;
        for(k=0;k<=n-2;k++)
        {
                d=0.0;
                for(i=k;i<=n-1;i++)
                        for(j=k;j<=n-1;j++)
                        {
                                t=fabs(p[i][j]);
                                if(t>d){d=t;js[k]=j;is=i;}
                        }
                if(d+1.0==1.0)l=0;
                else
                {
                        if(js[k]!=k)
                        for(i=0;i<=n-1;i++)
                        {
                                t=p[i][k];
                                p[i][k]=p[i][js[k]];
                                p[i][js[k]]=t;
                        }
                        if(is!=k)
                        {
                                for(j=k;j<=n-1;j++)
                                {
                                        t=p[k][j];
                                        p[k][j]=p[is][j];
                                        p[is][j]=t;
                                }
                                t=r[k];r[k]=r[is];r[is]=t;
                        }
                }
                        if(l==0)
                        {
                                delete[] js;
                                cout<<"\n系数矩阵奇异!无解."<                                         return;
                        }
                        d=p[k][k];
                        for(j=k+1;j<=n-1;j++)
                                p[k][j]=p[k][j]/d;
                        r[k]=r[k]/d;
                        for(i=k+1;i<=n-1;i++)
                                p[i][j]=p[i][j]-p[i][k]*p[k][j];
                        r[i]=r[i]-p[i][k]*r[k];
        }

d=p[n-1][n-1];
if(fabs(d)+1.0==1.0)
{
        delete[] js;
        cout<<"\n系数矩阵奇异!无解."<                 return;
}
r[n-1]=r[n-1]/d;
for(i=n-2;i>=0;i--)
{
        t=0.0;
        for(j=i+1;j<=n-1;j++)
                t=t+p[i][j]*r[j];
        r[i]=r[i]-t;
}
js[n-1]=n-1;
for(k=n-1;k>=0;k--)
if(js[k]!=k)
{
        t=r[k];r[k]=r[js[k]];r[js[k]]=t;
}
delete[] js;
        }

        void bint::output()
        {
                int i;
                char str2[20];
                cout<<"\n输出文件名:";
                cin>>str2;
                ofstream fout(str2);
                if(!fout)
                {cout<<"\n不能打开这个文件"<                 fout<                 for(i=0;i                 {
                        fout<                         cout<                 }
                fout<                 fout.close();
        }

        void main()
        {
                bint c(4);
                c.input();
                c.a_bint();
                c.output();
        }

www.cvdelver.com
5楼2010-10-12 09:45:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 274求调剂 +10 S.H1 2026-03-18 10/500 2026-03-20 23:51 by JourneyLucky
[考研] 一志愿北京化工大学0703化学318分,有科研经历,求调剂 +4 一瓶苯甲酸 2026-03-14 4/200 2026-03-20 20:36 by fen_rao
[考研] 材料学求调剂 +4 Stella_Yao 2026-03-20 4/200 2026-03-20 20:28 by ms629
[基金申请] 学校已经提交到NSFC,还能修改吗? 40+4 babangida 2026-03-19 8/400 2026-03-20 15:58 by babero
[考研] 08工学调剂 +5 用户573181 2026-03-20 5/250 2026-03-20 15:47 by xia_2003
[考研] 求调剂 +3 暗涌afhb 2026-03-16 3/150 2026-03-20 00:28 by 河南大学校友
[考研] 266求调剂 +5 阳阳哇塞 2026-03-14 10/500 2026-03-19 15:08 by 阳阳哇塞
[考研] 材料工程专硕调剂 +5 204818@lcx 2026-03-17 6/300 2026-03-18 22:55 by 204818@lcx
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 299求调剂 +5 △小透明* 2026-03-17 5/250 2026-03-18 11:49 by 尽舜尧1
[考研] 303求调剂 +4 睿08 2026-03-17 6/300 2026-03-18 11:01 by Iveryant
[考博] 26博士申请 +3 1042136743 2026-03-17 3/150 2026-03-17 23:30 by 轻松不少随
[考研] 301求调剂 +4 A_JiXing 2026-03-16 4/200 2026-03-17 17:32 by ruiyingmiao
[论文投稿] 有没有大佬发小论文能带我个二作 +3 增锐漏人 2026-03-17 4/200 2026-03-17 09:26 by xs74101122
[考研] 一志愿,福州大学材料专硕339分求调剂 +3 木子momo青争 2026-03-15 3/150 2026-03-17 07:52 by laoshidan
[考研] 东南大学364求调剂 +5 JasonYuiui 2026-03-15 5/250 2026-03-16 21:28 by 木瓜膏
[考研] 一志愿211 0703方向310分求调剂 +3 努力奋斗112 2026-03-15 3/150 2026-03-16 16:44 by houyaoxu
[考研] 318求调剂 +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[考研] 0703化学调剂 290分有科研经历,论文在投 +7 腻腻gk 2026-03-14 7/350 2026-03-16 10:12 by houyaoxu
[考研] 288求调剂 +4 奇点0314 2026-03-14 4/200 2026-03-14 23:04 by JourneyLucky
信息提示
请填处理意见