不学网

 找回密码
 立即注册

只需一步,快速开始

手机号码,快捷登录

查看: 332|回复: 7

[c/c++] 编译没错,结果就是不对,是哪里出问题了?

[复制链接]
1465064790 发表于 2018-4-20 16:44:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
[code]#include<stdio.h>
#include<math.h>
#include <string.h>
#define N 5
void main()
{
        int i;
        double k,l,A,dx,T1,T2;
        double a[N-1],b[N],c[N-1],r[N],p[N],f[N],T[N],SP[N],SU[N],aw[N],ae[N],ap[N];
        printf("k=");
        printf("l=");
        printf("A=");
        printf("T1=");
        printf("T2=");
        scanf("%lf",&k);
        scanf("%lf",&l);
        scanf("%lf",&A);
        scanf("%lf",&T1);
        scanf("%lf",&T2);
        dx=l/N;
        aw[0]=0;
        ae[0]=k*A/dx;
        SU[0]=2*k*A*T1/dx;
        SP[0]=-2*k*A/dx;
        ap[0]=aw[0]+ae[0]-SP[0];
        ae[4]=0;
        aw[4]=k*A/dx;
        SP[4]=-2*k*A/dx;
        SU[4]=2*k*A*T2/dx;
        ap[4]=aw[4]+ae[4]-SP[4];//5点的aw,ae,ap,SU,SP的计算公式。
        for(i=1;i<N-1;i++)
        {
                SU[i]=0;
                SP[i]=0;
                ae[i]=k*A/dx;
                aw[i]=k*A/dx;
                ap[i]=aw[i]+ae[i]-SP[i];
        }                                        //2.3.4点的aw,ae,ap,SU,SP的计算公式。
        for(i=0;i<N;i++)
        {
                b[i]=ap[i];
                f[i]=SU[i];                        //将ap、SU的值分别赋给b、f。
        }
        for(i=0;i<N-1;i++)
        {
                c[i]=-ae[i];               
                a[i]=-aw[i+1];                //将-ae、-aw的值分别赋给c、a。
        }
        r[0]=c[0]/b[0];
        for(i=1;i<N-1;i++)
        {
        r[i]=c[i]/(b[i]-a[i-1]*r[i-1]);       
        }
        p[0]=f[0]/b[0];
        for(i=1;i<N;i++)
        {
                p[i]=(f[i]-a[i-1]*p[i-1])/(b[i]-a[i-1]*r[i-1]);
        }
        T[N-1]=p[N-1];
        for(i=N-2;i>=0;i--)
        {
                T[i]=p[i]-r[i]*T[i+1];
        }
        for(i=0;i<N;i++)
        printf("%lf\n",T[i]);
}
回复

使用道具 举报

 楼主| 1465064790 发表于 2018-4-20 17:08:24 来自手机 | 显示全部楼层
              k=1000,l=0.5,A=0.01,t1=100,t2=500
回复

使用道具 举报

rain1994 发表于 2018-4-20 21:45:38 | 显示全部楼层
1465064790 发表于 2018-4-20 17:08
k=1000,l=0.5,A=0.01,t1=100,t2=500

我用你的代码得到因为编译器不同,我用的编译器要求的格式  int main(){return 0;}
140.000000
220.000000
300.000000
380.000000
460.000000
回复

使用道具 举报

 楼主| 1465064790 发表于 2018-4-20 22:23:26 来自手机 | 显示全部楼层
rain1994 发表于 2018-4-20 21:45
我用你的代码得到因为编译器不同,我用的编译器要求的格式  int main(){return 0;}
140.000000
220.00000 ...

哦哦,我回头试一下,谢谢
回复

使用道具 举报

 楼主| 1465064790 发表于 2018-4-21 16:44:36 来自手机 | 显示全部楼层
结果是这样,还是不对{:4_86:}
IMG_20180421_164341.jpg
回复

使用道具 举报

 楼主| 1465064790 发表于 2018-4-22 15:26:10 来自手机 | 显示全部楼层
rain1994 发表于 2018-4-20 21:45
我用你的代码得到因为编译器不同,我用的编译器要求的格式  int main(){return 0;}
140.000000
220.00000 ...

我想问一下你用的是哪个编译器
回复

使用道具 举报

rain1994 发表于 2018-4-22 18:09:20 | 显示全部楼层
1465064790 发表于 2018-4-22 15:26
我想问一下你用的是哪个编译器

本人比较懒,直接用网页版的测试你的代码,anycodes,它的编译环境我没查到,不知道是不是gcc编译的。你多试几个编译器,比如vc6.0或者cfree或者dev-c++等等分别测试
回复

使用道具 举报

rain1994 发表于 2018-4-23 07:41:30 来自手机 | 显示全部楼层
1465064790 发表于 2018-4-21 16:44
结果是这样,还是不对

你黑窗口输入内容格式不对吧。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|不学网

GMT+8, 2018-8-21 21:32

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表