| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:求助 程序运行的结果前几行总是出现奇怪的数据 但是后边的数据正常 什么情况 ...
只看楼主 加入收藏
zhht87
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2013-8-7
结帖率:57.14%
收藏
已结贴  问题点数:10 回复次数:3 
求助 程序运行的结果前几行总是出现奇怪的数据 但是后边的数据正常 什么情况?
编写完一个程序 前几行输出的结果很奇怪 但是后边的数据正常 求助高手这是什么问题!
运行结果的前几行如下
0.000000 0.000000 0.000000
19827086591622233000000000000000000.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 -107374176.000000
-107374176.000000 -107374176.000000 -107374176.000000
-107374176.000000 -107374176.000000 0.000000

程序如下:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

#define Pi 3.14159    //角度弧度化所用参数
#define mesh 4       //在step size 等于0.2的情况下应取16,这个值必须为偶数
#define Xmax 15     //距离除以step size
#define Ymax 15      //距离除以step size


int main()
{
    int X,Y,x,y,i;//定义主程序中使用的循环变量

    struct bccinput//定义输入数据使用的结构体
    {
     float a;
     float b;
     float c;
    };
    struct bccinput input[Ymax+1][Xmax+1];
                        
    FILE *out;
        
    for(Y=0;Y<Ymax-mesh/2;Y=Y+(mesh/2))
        for (X=0;X<Xmax-mesh/2;X=X+(mesh/2))
        {   float part[(mesh+1)*(mesh+1)][3],fcc[3];
            int k,s;
            for(k=0;k<(mesh+1)*(mesh+1);k++)
                for(s=0;s<3;s++)
                 part[k][s]=0;
            
            if ((Xmax-X>=mesh)&&(Ymax-Y>=mesh))// 当分割的网格还没有到达图像的边界的时候
            {i=0;
             for(y=Y;y<=Y+mesh;y++)
                for(x=X;x<=X+mesh;x++)
                {part[i][0]=input[y][x].a;
                 part[i][1]=input[y][x].b;
                 part[i][2]=input[y][x].c;
                 i++;
                }
fcc[0]=1;
fcc[1]=1;
fcc[2]=1;
            }


            else if ((Xmax-X<mesh)&&(Ymax-Y<mesh))//当分割的网格到达图像的右下角的时候
            {i=0;
             for(y=Y;y<=Ymax;y++)
                for(x=X;x<=Xmax;x++)
                {part[i][0]=input[y][x].a;
                 part[i][1]=input[y][x].b;
                 part[i][2]=input[y][x].c;
                 i++;
                }
fcc[0]=4;
fcc[1]=4;
fcc[2]=4;
            }


            else if ((Xmax-X<mesh)&&(Ymax-Y>=mesh))//当分割的网格到达图像的右边的时候
            {i=0;
             for(y=Y;y<=Y+mesh;y++)
                for(x=X;x<=Xmax;x++)
                {part[i][0]=input[y][x].a;
                 part[i][1]=input[y][x].b;
                 part[i][2]=input[y][x].c;
                 i++;
                }
fcc[0]=2;
fcc[1]=2;
fcc[2]=2;
            }


            else if ((Xmax-X>=mesh)&&(Ymax-Y<mesh))//当分割的网格到达图像的底边的时候
            {i=0;
             for(y=Y;y<=Y+mesh;y++)
                for(x=X;x<=Xmax;x++)
                {part[i][0]=input[y][x].a;
                 part[i][1]=input[y][x].b;
                 part[i][2]=input[y][x].c;
                 i++;
                }
                fcc[0]=3;
fcc[1]=3;
fcc[2]=3;
            }



            if ((Xmax-X>=mesh)&&(Ymax-Y>=mesh))// 当分割的网格还没有到达图像的边界的时候
            {for (y=Y;y<=Y+(mesh/2);y++)
                for (x=X;x<=X+(mesh/2);x++)
                {input[y][x].a=fcc[0];
                 input[y][x].b=fcc[1];
                 input[y][x].c=fcc[2];
                }
            }

            else if ((Xmax-X<mesh)&&(Ymax-Y>=mesh))//当分割的网格到达图像的右边的时候
            {for (y=Y;y<=Y+(mesh/2);y++)
                for (x=X;x<=Xmax;x++)
                {input[y][x].a=fcc[0];
                 input[y][x].b=fcc[1];
                 input[y][x].c=fcc[2];
                }
            }


            else if ((Xmax-X<mesh)&&(Ymax-Y<mesh))//当分割的网格到达图像的右下角的时候
            {for (y=Y;y<=Ymax;y++)
                for (x=X;x<=Xmax;x++)
                {input[y][x].a=fcc[0];
                 input[y][x].b=fcc[1];
                 input[y][x].c=fcc[2];
                }
            }


            else if ((Xmax-X>=mesh)&&(Ymax-Y<mesh))//当分割的网格到达图像的底边的时候
            {for (y=Y;y<=Ymax;y++)
                for (x=X;x<=X+(mesh/2);x++)
                {input[y][x].a=fcc[0];
                 input[y][x].b=fcc[1];
                 input[y][x].c=fcc[2];
                }
            }
        }//对应最上层for 循环结束


    out=fopen("C:\\c program\\result.txt","w");  //需要输入输出文件的存放地址
    for(y=0;y<=Ymax;y++)
        for(x=0;x<=Xmax;x++)
            fprintf(out,"%f %f %f\n",input[y][x].a,input[y][x].b,input[y][x].c);
    fclose(out);


return(0);
}
搜索更多相关主题的帖子: include 
2013-08-11 02:21
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
明显的 生成后的可执行程序无法运行

DO IT YOURSELF !
2013-08-11 17:11
h13352825861
Rank: 2
来 自:中国
等 级:论坛游民
威 望:1
帖 子:39
专家分:72
注 册:2013-8-8
收藏
得分:5 
图片附件: 游客没有浏览图片的权限,请 登录注册
就是这种情况!不知该如何解决!

相信汗水会让未来充满满了阳光!
2013-08-11 21:01
zhht87
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2013-8-7
收藏
得分:0 
问题已经解决了 前边的条件设定的有些重复 修改后就正常了
2013-08-12 22:24
快速回复:求助 程序运行的结果前几行总是出现奇怪的数据 但是后边的数据正常 什 ...
数据加载中...
 
   



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

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