哪位编程高手来看看,第一次编c程序,出来一堆0000,怎么回事?

附上程序:#include<stdio.h>#include<math.h>structdata{floatpor;floatamp;floatcos_phase;flo... 附上程序:
#include <stdio.h>
#include <math.h>
struct data
{
float por;
float amp;
float cos_phase;
float freqphase;
float avfreq;
float insamp;
float fo;
float envelope;
float cosinsph;
float instfreq;
float instphase;
float intabsamp;
float inttrace;
float qtrace;
}data[10];
struct data1
{
float por;
float amp;
float cos_phase;
float freqphase;
float avfreq;
float insamp;
float fo;
float envelope;
float cosinsph;
float instfreq;
float instphase;
float intabsamp;
float inttrace;
float qtrace;
}data1[10];
void readfile() /*读入数据*/

{
FILE *fp1;
int i;
char title1[100];
if((fp1=fopen("D:\\samdata_porosity.txt","r"))==NULL)
{
printf("cannot open the file");
}
fgets(title1,100,fp1);
for(i=0;i<10;i++)
{
fscanf(fp1,"%f%f%f%f%f%f%f%f%f%f%f%f%f%f",&data[i].por,&data[i].amp,&data[i].cos_phase,&data[i].freqphase,&data[i].avfreq,&data[i].insamp,&data[i].fo,&data[i].envelope,&data[i].cosinsph,&data[i].instfreq,&data[i].instphase,&data[i].intabsamp,&data[i].inttrace,&data[i].qtrace);

}
fclose(fp1);
}
void writetxt() /*输出数据*/
{
FILE *fp;
int i;
if((fp=fopen("D:\\result.txt","w"))==NULL)
{printf("Fail to biuld a new file!\n");
return;
}
for(i=0;i<10;i++)
{
fprintf(fp,"%f %f %f %f %f %f %f %f %f %f %f %f %f %f",&data1[i].por,&data1[i].amp,&data1[i].cos_phase,&data1[i].freqphase,&data1[i].avfreq,&data1[i].insamp,&data1[i].fo,&data1[i].envelope,&data1[i].cosinsph,&data1[i].instfreq,&data1[i].instphase,&data1[i].intabsamp,&data1[i].inttrace,&data1[i].qtrace);
printf("\n");
}
fclose(fp);
}
void main()
{
int i,j;

readfile();
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
data1[i].por+=data[j].por;
data1[i].amp+=data[j].amp;
data1[i].cos_phase+=data[j].cos_phase;
data1[i].freqphase+=data[i].freqphase;
data1[i].avfreq+=data[i].avfreq;
data1[i].insamp+=data[i].insamp;
data1[i].fo+=data[i].fo;
data1[i].envelope+=data[i].envelope;
data1[i].cosinsph+=data[i].cosinsph;
data1[i].instfreq+=data[i].instfreq;
data1[i].instphase+=data[i].instphase;
data1[i].intabsamp+=data[i].intabsamp;
data1[i].inttrace+=data[i].inttrace;
data1[i].qtrace+=data[i].qtrace;
}
writetxt();
por Amp Cos_Phase Freq Phase AvFreq InsAmp f0 Envelope CosInsPh InstFreq InstPhase IntAbsAmp IntTrace QTrace
0.153 3567.0061 3575.2297 274160.7813 -770335.6875 33.5418 -19.8045 25.5174 11847.5156 0.3319 21.6202 -64.2562 20454.8203 -25103.5898
0.141 494.7858 1305.3451 260904.5 -859747.6875 36.3496 -195.028 27.8024 10506.8604 0.3015 20.3815 -70.2517 21221.6953 -23164.3359 -7366.0078
0.2 -3073.4968 -3057.5437 446439 119998.0313 33.0602 -38.7096 28.6485 12063.3574 -0.1799 37.4076 3.5417 17348.2832 13069.8164 2130.9548
0.132 -149.8829 -147.0674 184157.875 258141.2188 30.865 -82.5284 22.5389 5512.5161 -0.0764 33.0899 35.3852 15340.3447 6918.2036 2074.9014
0.225 77.4475 77.6365 148717.1875 -441941.125 30.2148 -223.256 24.6474 5054.7471 0.2546 18.9531 -68.7067 15064.6641 -19435.8516
数据总共有10行,14列(当然不包括头标)要把数据的每一列进行运算,就是第一列的前N项求和后作为新的数据的第N项,每一列都是这样的,所以我才定义了两个结构体。麻烦哪位高手再看看,把改动的地方标出来,谢谢!
展开
 我来答
fivestar502
2010-06-12 · TA获得超过156个赞
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:99.7万
展开全部
#include <stdio.h>
#include <math.h>
struct data
{
int por;
int amp;
int cos_phase;
int freqphase;
int avfreq;
int insamp;
int fo;
int envelope;
int cosinsph;
int instfreq;
int instphase;
int intabsamp;
int inttrace;
int qtrace;
}data[10];
struct data1
{
int por;
int amp;
int cos_phase;
int freqphase;
int avfreq;
int insamp;
int fo;
int envelope;
int cosinsph;
int instfreq;
int instphase;
int intabsamp;
int inttrace;
int qtrace;
}data1[10]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0}};//data1[]要赋初值0
void readfile() /*读入数据*/

{
FILE *fp1;
int i;
// char title1[100];//我测试了一个int型数据去掉了前面的字符,所以把这里注销了
if((fp1=fopen("1.txt","r"))==NULL)
{
printf("cannot open the file");
}
// fgets(title1,100,fp1);
for(i=0;i<10;i++)
{
fscanf(fp1,"%d%d%d%d%d%d%d%d%d%d%d%d%d%d",&data[i].por,&data[i].amp,
&data[i].cos_phase,&data[i].freqphase,&data[i].avfreq,&data[i].insamp,
&data[i].fo,&data[i].envelope,&data[i].cosinsph,&data[i].instfreq,
&data[i].instphase,&data[i].intabsamp,&data[i].inttrace,&data[i].qtrace);

}
fclose(fp1);
}
void writetxt() /*输出数据*/
{
FILE *fp;
int i;
if((fp=fopen("result.txt","w"))==NULL)
{printf("Fail to biuld a new file!\n");
return;
}
for(i=0;i<10;i++)
{
fprintf(fp,"%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d\n",data1[i].por,
data1[i].amp,data1[i].cos_phase,data1[i].freqphase,data1[i].avfreq,
data1[i].insamp,data1[i].fo,data1[i].envelope,data1[i].cosinsph,
data1[i].instfreq,data1[i].instphase,data1[i].intabsamp,
data1[i].inttrace,data1[i].qtrace);
printf("\n");
}
fclose(fp);
}
void main()
{
int i,j;

readfile();
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)// j应该小于i,不然data1[]每列中不都是一样了吗
{
data1[i].por+=data[j].por;
data1[i].amp+=data[j].amp;
data1[i].cos_phase+=data[j].cos_phase;
data1[i].freqphase+=data[j].freqphase;
data1[i].avfreq+=data[j].avfreq;
data1[i].insamp+=data[j].insamp;
data1[i].fo+=data[j].fo;
data1[i].envelope+=data[j].envelope;
data1[i].cosinsph+=data[j].cosinsph;
data1[i].instfreq+=data[j].instfreq;
data1[i].instphase+=data[j].instphase;
data1[i].intabsamp+=data[j].intabsamp;
data1[i].inttrace+=data[j].inttrace;
data1[i].qtrace+=data[j].qtrace;
}
}
writetxt();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机编程是指使用单片机编程语言,如C语言,来编写单片机的程序代码,以控制单片机的行为。这种技术在电子工程、计算机科学和电子通信等领域中被广泛应用。单片机编程的主要任务是设计和实现单片机的程序,包括定义单片机的指令系统、编写程序代码、处理器... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
zbvhjg
2010-06-11 · TA获得超过650个赞
知道答主
回答量:16
采纳率:0%
帮助的人:14.7万
展开全部
从做系统
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式