【发布时间】:2013-02-04 21:34:53
【问题描述】:
我需要运行它,以便分析我实验室的一些数据。但是,当程序运行并且我输入“n”的值时,它只会崩溃。有关如何纠正此问题的任何提示?
谢谢,代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
FILE *magfield;
FILE *means;
FILE *variances;
double *mean;
double *variance;
double field[12000];
double time[12000];
double sum=0, squares=0;
int i, j=0, k=0, l=0, n=0;
magfield=fopen("C:\\Users\\Owner\\Documents\\Homework\\ILab\\magneticfield.txt","r");
means=fopen("C:\\Users\\Owner\\Documents\\Homework\\ILab\\means.txt","w");
variances=fopen("C:\\Users\\Owner\\Documents\\Homework\\ILab\\variances.txt","w");
for (i=0;i<12000;i++)
{
fscanf(magfield,"%f %f", &time[i], &field[i]);
//printf("%f %f\n", time[i], field[i]);
}
printf("How many data points would you like to be analyzed at a time?\n");
scanf("%i", &n);
mean=(double*)calloc(n,sizeof(double));
variance=(double*)calloc(n,sizeof(double));
for (i=0;i<12000;i+=n)
{
for(j=i;j<n;j++)
{
sum+=field[j];
squares+=field[j]*field[j];
}
mean[k]=sum/n;
variance[k]=squares/n-(mean[k]*mean[k]);
fprintf(means,"%f\n", mean[k]);
fprintf(variances,"%f\n", variance[k]);
sum=0;
squares=0;
k++;
}
free(mean);
free(variance);
printf("Press enter to continue...\n");
getch();
return 0;
}
【问题讨论】:
-
什么是“崩溃消息”?
-
提示:使用调试器。
-
问题签名:问题事件名称:APPCRASH 应用程序名称:Lab3.exe 应用程序版本:0.0.0.0 应用程序时间戳:51241b06 故障模块名称:ntdll.dll 故障模块版本:6.1.7601.17725 故障模块时间戳: 4EC49B8F异常代码:C0000005异常偏移量:0003331F OS版本:6.1.7601.2.1.0.256.48区域设置:1033附加信息1:0A9E附加信息2:0A9E372D3B4AD19135B953A7882E789附加信息3:0A9E附加信息4:0A9E372D3B4AD19135B953A78882E789 SPAN>
-
蝉,调试器用什么?
-
这里有太多不好的编码习惯,而您提供的信息太少,无法分辨。使用调试器(如建议的那样)查看崩溃发生的位置。然后问。