【发布时间】:2014-10-14 10:39:47
【问题描述】:
我在文本文件中有一个1000x24 矩阵,我想对整个矩阵的相邻列求和,例如col1+col2、col2+col3、col3+col4、...col23+col24 并将这些值存储在单独的文本文件中。
我的代码是这样的:
#include <stdio.h>
int main()
{
int i,j;
float a[100][24];
FILE *fp=fopen("D:\1980.txt","r"); //missing one \ here, should be \\
FILE *fp1=fopen("D:\\sum.txt","w");
for (i = 0; i <= 99; i++)
{
for (j = 0; j <= 23; j++)
{
a[i][j]= a[i][j] + a[i][j+1];
}
}
for(i = 0; i <= 999; i++)
{
for(j = 0; j <= 23; j++)
{
fprintf(fp1,"%.2f\t",a[i][j]);
fprintf(fp1,"\n");
}
}
fclose(fp);
fclose(fp1);
getch();
}
例如,如果文件1980.txt 中的矩阵类似于[1 2 3;4 5 6;7 8 9],则sum.txt 中的输出应为[3 5;9 11; 15 17]。
但是,代码不起作用,我只得到一个空白文件。请帮忙解决这个问题。
【问题讨论】:
-
请缩进你的代码。
-
我看不到您将文件值读入矩阵的位置
a[][] -
我认为这个 'FILE *fp=fopen("D:\1980.txt","r");'应该是这个 'FILE *fp=fopen("D:\\1980.txt","r");',你错过了 \\
-
a[i][j+1];可能是 j+1 == 24 和i<=999-->i<=99或float a[1000][24];,i<=99-->i<=999