下面是在vim下面写的一个小程序.问题是:输出的月份名没有和相应数据对齐. [具体情况运行便知]
1 #include
2 #define MONTHS 12
3 #define YEARS 5
4 int main (void)
5 {
6 const float rain[YEARS][MONTHS] = {
7 {4.3, 4.3, 4.3, 3.0, 2.0, 1.2, 0.2, 0.2, 0.4, 2.4, 3.5, 6.6},
8 {8.5, 8.2, 1.2, 1.6, 2.4, 0.0, 5.2, 0.9, 0.3, 0.9, 1.4, 7.3},
9 {9.1, 8.5, 6.7, 4.3, 2.1, 0.8, 0.2, 0.2, 1.1, 2.3, 6.1, 8.4},
10 {7.2, 9.9, 8.4, 3.3, 1.2, 0.8, 0.4, 0.0, 0.6, 1.7, 4.3, 6.2},
11 {7.6, 5.6, 3.8, 2.8, 3.8, 0.2, 0.0, 0.0, 0.0, 1.3, 2.6, 5.2},
12 };
13 int year, month;
14 float subtot, total;
15
16 printf (" YEAR RAINFULL (inches)\n");
17 for (year = 0, total = 0; year < YEARS; year++)
18 {
19 for (month = 0, subtot = 0; month < MONTHS; month++) //每次循环subtot自动更新为零.
20 subtot += rain[year][month];
21 printf ("%5d %15.1f\n", 2000 + year, subtot);
22 total += subtot;
23 }
24 printf ("\nThe yearly average is %.1f inches.\n\n", total /YEARS);
25 printf ("MONTHLY AVERAGES: \n\n");
26 printf (" jan Feb Mar Apr May Jun Jul Aug Sep Oct ");
27 printf (" Nov Dec\n");
28
29 for (month = 0; month < MONTHS; month++)
30 {
31 for (year = 0, subtot = 0; year < YEARS; year++)
32 subtot += rain[year][month];
33 printf ("%4.1f ", subtot / YEARS);
34 }
35 printf ("\n");
36 return 0;
37 }
怎么会这样讷?
宣_仲达 于 2009-08-16 13:44:46发表:
%4.1f是5个空间并保留一位小数???
是四个空间并保留一位小数吧?!!
jan之前好像多了个空格
就是这里错了,多谢阿!!!
kunta_dy 于 2009-08-16 11:27:04发表:
%4.1f是5个空间并保留一位小数,而且jan之前好像多了个空格,会导致错位
zqmytin 于 2009-08-15 20:24:27发表:
学习了
宣_仲达 于 2009-08-15 19:08:59发表:
那不正好需要4个空间么 ?
%4.1f不就是4个 空间并保留一位小数么?
hantu 于 2009-08-14 00:09:07发表:
运行了,你的月份仅三个字符,而且只用了一个空格来隔,但是下面打印的却用%4.1f,当然对不齐了
宣_仲达 于 2009-08-13 23:45:53发表:
您运行一下就很容易看到是什么问题拉
hantu 于 2009-08-13 23:45:42发表:
printf ("%4.1f ", subtot / YEARS);
改为%3.1f就行了
l460618498 于 2009-08-13 22:53:51发表:
不懂