| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1011 人关注过本帖
标题:[原创]是前辈的就来帮个忙!!!!!!
只看楼主 加入收藏
sywr
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-5-18
收藏
 问题点数:0 回复次数:15 
[原创]是前辈的就来帮个忙!!!!!!

#include"stdio.h" main(){ FILE * new; FILE * out; int i=0,j; float ik[18]; clrscr(); if((new=fopen("data.data","r"))==NULL)exit(0); out=fopen("out.data","w"); for(j=0;j<18;j++){ fscanf(new,"%9.5f ",&ik[j]); printf("%f\n",ik[j]); fprintf(out,"%9.5f ",ik[j]); i++; if(i%9==0)fprintf(out,"\n"); } fclose(new); fclose(out); }

那位前辈指点一下,这段程序那里出错,为什么结果总是错误的,望不惜赐教,wanghengwu_2000@163.com

1.00000 2.00000 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000 9.00000 9.00000 8.00000 7.00000 6.00000 5.00000 4.00000 3.00000 2.00000 1.00000

搜索更多相关主题的帖子: 前辈 
2005-05-18 17:48
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
收藏
得分:0 
以下是引用sywr在2005-5-18 17:48:37的发言:

#include"stdio.h" <--一般情况下,使用系统的.h文件用#include <file.h>这样的方式, 这里的方式是用来使用自己写的.h文件的 main(){ FILE * new; FILE * out; int i=0,j; float ik[18]; clrscr(); if((new=fopen("data.data","r"))==NULL)exit(0); out=fopen("out.data","w"); for(j=0;j<18;j++){ fscanf(new,"%9.5f ",&ik[j]); <--这个地方不需要指定输入数据的长度,改为 fscanf(new,"%f",&ik[j]); printf("%f\n",ik[j]); fprintf(out,"%9.5f ",ik[j]); i++; if(i%9==0)fprintf(out,"\n"); } fclose(new); fclose(out); }

那位前辈指点一下,这段程序那里出错,为什么结果总是错误的,望不惜赐教,wanghengwu_2000@163.com

1.00000 2.00000 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000 9.00000 9.00000 8.00000 7.00000 6.00000 5.00000 4.00000 3.00000 2.00000 1.00000


2005-05-18 18:20
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 
程序运行到if((new=fopen("data.data","r"))==NULL)exit(0);就断了

土冒
2005-05-18 22:47
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
("data.data","

文件名不合法,看看dos文件名的规定

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-05-18 22:53
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
收藏
得分:0 
以下是引用牛虻在2005-5-18 22:47:40的发言: 程序运行到if((new=fopen("data.data","r"))==NULL)exit(0);就断了
那是因为 你没有建立这个文件

2005-05-19 09:10
sywr
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-5-18
收藏
得分:0 
  1.00000   2.00000   3.00000   4.00000   5.00000   6.00000   7.00000   8.00000   9.00000
  9.00000   8.00000   7.00000   6.00000   5.00000   4.00000   3.00000   2.00000   1.00000   这些就是data.data文件的内容,而程序在turboc2.0中运行的结果就是下面的数据

0.00000   0.00000   0.00000   0.00000      -NAN   0.00000   0.00000   0.00000   0.00000
  0.00000   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000      -NAN 2091277556253295790000000000000.00000
我在运行这个程序时还是正确的呢
#include"stdio.h"
main(){
FILE * new;
FILE * out;
int i=0,j;
int ik[18];
if((new=fopen("data1.data","r"))==NULL)exit(0);
out=fopen("intout.data","w");
for(j=0;j&lt;18;j++){
 fscanf(new,"%3d ",&amp;ik[j]);
 fprintf(out,"%2d ",ik[j]);
 i++;
 if(i%9==0)fprintf(out,"\n");
 }
 fclose(new);
 fclose(out);
}
不知道他们的差别在那?难道就是整数和小数的差别吗?!!!!!
2005-05-19 11:15
sywr
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-5-18
收藏
得分:0 
至于#include&lt;stdio.h&gt;我已经试过了,不行!!!
还有fscanf(new,"%f",&amp;ik[j]);也试了,结果一样!!!!
郁闷啊
2005-05-19 11:22
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
收藏
得分:0 
换个c的编译器, 我在gcc下编译是没有问题的.

不同的编译器在对scanf库函数的处理可能会有不同.

2005-05-19 12:50
wjl2002hunter
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2005-5-19
收藏
得分:0 
我的也是程序运行到if((new=fopen("data.data","r"))==NULL)exit(0);就断了!
2005-05-19 14:38
sywr
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-5-18
收藏
得分:0 
前辈是不是,结果也正确啊?!
我是 说输出的是:
   1.00000   2.00000   3.00000   4.00000   5.00000   6.00000   7.00000   8.00000   9.00000
   9.00000   8.00000   7.00000   6.00000   5.00000   4.00000   3.00000   2.00000   1.00000
还有在 哪能找到 gnu c compiler呢?
2005-05-19 15:31
快速回复:[原创]是前辈的就来帮个忙!!!!!!
数据加载中...
 
   



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

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