关于c语言读txt数据的问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 12:23:11
一下是题目:
已提供的dow-history.txt文件里面是从1928年10月1日到2009年3月38日美国Stock Exchange的指数,除了公共假期。例如:
1928-10-01 239.43
1928-10-08 240.17
1928-10-15 249.13
1928-10-22 253.75
1928-10-29 255.51
1928-11-05 254.16
问题1:请写一个c程序去算一共有多少个星期、good week(就是那个星期涨了)和bad week(就是那个星期降了)的数目。
答案格式如下:
=== Stage 1 ===
Weeks processed : 6
Weeks with gains: 4
Weeks with falls: 1
不好意思,是每个星期1的指数,不是每一天。
能给具体的code吗?越具体越好,谢谢~
问题2:
算出哪个星期涨幅最高和是多少,哪个星期涨幅最低和是多少?
答案格式:
=== Stage 2 ===
Biggest weekly gain: 3.73% on 1928-10-15
Biggest weekly fall: -0.53% on 1928-11-05

从1928年到2009年。。。。我不知道这10000个数据长度放不放的下。2个要求都满足了

#include<stdio.h>
int main()
{
FILE *fin = fopen("dow-history.txt", "rb");
if(!fin)
{
printf("cannot open file!\n");
return -1;
}
int i;
char day[10000][11];
for(i = 0; i < 10000; i++)
day[i][10] = '\0';
double num[10000];
i = 0;
while(!feof(fin))
{
fscanf(fin,"%s %lf", day[i],&num[i]);
i++;
}
i--;
fclose(fin);
int good = 0,bad = 0;
int j, temp1, temp2;
double gain = 0.0, fail = 0.0;
for(j = 1; j < i; j++)
{
if(num[j] < num[j - 1])
{
bad++;
if((num[j - 1] - num[j]) > fail)
{
fail = num[j - 1] - num[j];
temp1 = j - 1;
}
}
else
{
good++;
if(num[j] - num[j - 1] > gain)
{
gain = num[j] - num[j - 1];
temp2 =