| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 627 人关注过本帖
标题:[求助] 紧急问题 求救 SOS
只看楼主 加入收藏
入门者
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-4-14
收藏
 问题点数:0 回复次数:5 
[求助] 紧急问题 求救 SOS
现在有个程序:接收10个实数,并且存为123.txt 文件
#include <stdio.h>
#include <stdlib.h>
void save(int n);
void save(int n)
{
int i;
FILE *fp;
float num;
if((fp=fopen("123.txt","w"))==NULL)
{
  printf("can not open the file!\n");
  exit(1);
}
printf("please enter n numbers:\n");
for(i=0;i<n;i++)
{
  printf("please enter th%d num:\t",i+1);
  scanf("%f",&num);
  fprintf(fp,"%f\n", num);
}
fclose(fp);
}
int main()
{
int n;
printf("please enter the n:\t");
scanf("%d",&n);
save(n);
}
运行后生成123.txt文件,里面的数据如下:(比如)
1.220000
2.110000
3.330000
4.440000
5.550000
6.660000
7.770000
8.880000
9.989998
9.977699
现在我再重新运行另外一个程序,就是一个读取这个文件里数据的程序,并且要求把这些数据存入到一个一维数组中,程序如下(有问题)运行后并不能把数据存到数组里,为了验证是否存入数组,我把下面的程序写为 存入后,把这些数相加。可是结果=0.000000
#include<stdlib.h>
#include<stdio.h>
void load()  
{
float num;
float sum;
float date[10];
int i=0;
FILE *fp;
sum=0;
if((fp=fopen("123.txt","r"))==NULL)
{
  printf("can not enter this file!\n");
  exit(1);
}
while(fscanf(fp,"%f",&num)!=EOF)
{
  date[i]=num;
  i=i+1;
}
fclose(fp);
}
main()
{
int i;
float p=0;
float date[10];
load();
for(i=0;i<10;i++)
{p=p+date[i];}
printf("%f\n",&p);
}

希望各位能指出错误之处,紧急问题啊,急待解决!
搜索更多相关主题的帖子: SOS 
2005-05-13 16:34
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

#include<stdlib.h> #include<stdio.h> void load() { float num; float sum; float date[10]; int i=0; FILE *fp; sum=0; if((fp=fopen("123.txt","r"))==NULL) { printf("can not enter this file!\n"); exit(1); } while(fscanf(fp,"%f",&num)!=EOF) { date[i]=num; i=i+1; printf(" %f ",num); <--所有的auto变量只在函数存在期有效 } fclose(fp); } main() { int i; float p=0; float date[10]; load(); /*for(i=0;i<10;i++) {p=p+date[i];} printf("%f\n",&p); //这个也不对*/ }

注意变量的作用域


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-05-13 16:52
zker
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-2-3
收藏
得分:0 
1.没有load()的原型;
2.date[10],在main()和load()中分别声明了一次.

[此贴子已经被作者于2005-5-13 17:05:36编辑过]



------------希望与大家一起进步!------------
2005-05-13 16:58
入门者
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-4-14
收藏
得分:0 
各位版主  帮忙改哈吧, 急啊~!  谢谢!

2005-05-15 09:02
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 

//我帮你改了下 //看看把 ///现在有个程序:接收10个实数,并且存为123.txt 文件

/*#include <stdio.h> #include <stdlib.h> void save(int n); void save(int n) { int i; FILE *fp; float num; if((fp=fopen("123.txt","w"))==NULL) { printf("can not open the file!\n"); exit(1); } printf("please enter n numbers:\n"); for(i=0;i<n;i++) { printf("please enter th%d num:\t",i+1); scanf("%f",&num); fprintf(fp,"%f\n", num); } fclose(fp); } int main() { int n; printf("please enter the n:\t"); scanf("%d",&n); save(n); } */ /* 运行后生成123.txt文件,里面的数据如下:(比如) 1.220000 2.110000 3.330000 4.440000 5.550000 6.660000 7.770000 8.880000 9.989998 9.977699 */

//现在我再重新运行另外一个程序,就是一个读取这个文件里数据的程序, //并且要求把这些数据存入到一个一维数组中,程序如下(有问题) //运行后并不能把数据存到数组里,为了验证是否存入数组,我把下面的程序写为 存入后, //把这些数相加。可是结果=0.000000 #include<stdlib.h> #include<stdio.h> float date[10]; void load() { float num; float sum; int i=0; FILE *fp; sum=0; if((fp=fopen("123.txt","r"))==NULL) { printf("can not enter this file!\n"); exit(1); } while(fscanf(fp,"%f",&num)!=EOF) { date[i]=num; i=i+1; } fclose(fp); } main() { int i; float p=0;

load(); for(i=0;i<10;i++) { p=p+date[i]; } printf("%f\n",p); }


Every thing is possible.
2005-05-15 14:31
入门者
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-4-14
收藏
得分:0 
对这个论坛的送分不熟悉, 以为我送的25分是每个人给25分,结果一次全给了版主了, 你们2位就没了 实在抱歉 呵呵


2楼和3楼的 对我还有点启发, 4楼的朋友谢谢你咯, 帮了很大忙!

2005-05-15 18:20
快速回复:[求助] 紧急问题 求救 SOS
数据加载中...
 
   



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

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