标题:devc++程序没有报错,为什么运行不了
只看楼主
rain513
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-12-16
结帖率:0
已结贴  问题点数:20 回复次数:5 
devc++程序没有报错,为什么运行不了
#include<stdio.h>
#include<math.h>
#define N 11
main()
{
    int i;
    float cha;
    float t[N],a[N],b[N];
    float h,t1,t0,r,D,H,x,m,A,p;
    printf("已知:h=45,t1=80,t0=300,r=110,D=110,H=0.1 (ISO)\n");
    /*赋值*/
    h=45, t1=80, t0=300.0, r=110.0, D=110.0, H=0.1;
    x=H/N; A=3.1415*D*D/4; p=3.1415*D; m=sqrt((h*p)/(r*A));
    /*x代表步长*/
    printf("\n假定一个温度场的初始分布:\n");
    for(i=0;i<N;i++)
    {
        scanf("%f",&t[i]);
        a[i]=(t[i]-t1)/(t0-t1);
        b[i]=a[i];
    }
    cha=1;
    while(cha>0.0001)
    {
        a[0]=1;
        for(i=1;i<N;i++)
            a[i]=(a[i+1]+a[i-1])/(2+m*m*x*x);
        a[N-1]=a[N-2];
        cha=0;
        for(i=0;i<N;i++)
            cha=cha+a[i]-b[i];
        cha=cha/N;
    }
    for(i=0;i<N;i++)
        t[i]=a[i]*(t0-t1)+t1;
    printf("\n\n经数值离散计算得肋片温度分布:\n");
    for(i=0;i<N;i++)
        printf("%4.2f\t",t[i]);
    printf("\n\n");
    getchar();
    for(i=0;i<N;i++)
        a[i]=b[i];
    cha=1;
    while(cha>0.0001)
    {
        a[0]=1;
        for(i=1;i<N;i++)
            a[i]=(a[i+1]+a[i-1])/(2+m*m*x*x);
        a[N-1]=a[N-2]/(1+0.5*m*m*x*x);
        cha=0;
        for(i=0;i<N;i++)
            cha=cha+a[i]-b[i];
        cha=cha/N;
    }
    for(i=0;i<N;i++)
        t[i]=a[i]*(t0-t1)+t1;
    printf("\n\n经数值离散计算得肋片的温度分布:\n");
    for(i=0;i<N;i++)
        printf("%4.2f\t",t[i]);
    printf("\n\n");
    getchar();
}
搜索更多相关主题的帖子: vc++ printf 分布 i++ for 
2021-12-16 21:01
rain513
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-12-16
得分:0 
求大佬救命
2021-12-16 21:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
写了那么多代码才知道运行不了
全部注释,从main(){}开始逐行逐块调试运行

2021-12-16 21:14
rain513
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-12-16
得分:0 
回复 3楼 吹水佬
主要是第一次运行成功了,第二次运行的时候,到第一个printf后,输入数据回车,没有输出了
2021-12-16 21:54
rain513
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-12-16
得分:0 
麻烦大佬帮忙


[此贴子已经被作者于2021-12-16 22:02编辑过]

2021-12-16 22:01
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
死在 while(cha>0.0001) 这个循环中

        for(i=1;i<N;i++)
            a[i]=(a[i+1]+a[i-1])/(2+m*m*x*x);
当i==N-1时,a[i+1]内存越界了吧
2021-12-17 09:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507894-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.362314 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved