我有一个程序,我必须打印月份和特定数量的“~”。我有一个函数叫做:graphLine
void graphLine(int month,const struct MonthlyStatistic* monthly){
int totalStars;
int i;
int j;
total = (monthly->totalPrecipitation * 10.0) / 10.0;
for (j=0;j<total;j++) {
printf("%d | ~ \n", month);
}
}
我有 main 函数,它使用循环调用这个函数:
for (i=0;i<12;i++){
graphLine(i+1,&monthly[i]);
}
问题是我想根据 graphLine 中变量总计的结果打印特定数量的 ~,但我不能在 graphLine 中使用循环,因为如果我这样做会与 main 中的 for 循环重叠。那么我如何在 graphLine 函数中使用循环,以便打印如下结果:
1 | ~~~~
2 | ~~~
3 | ~~~~~~~~~
.......
谢谢
使用这个技巧:
void print_month_stats(int month, int count) {
const char *maxbar = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
printf("%d | %.*s\n", month, count, maxbar);
}
printf
将打印 count
个波浪号,直到 maxbar
的长度。如果你想打印一些模式,这个技巧是最方便的,比如 ----+----+--
或 \/\/\/\/\/\/\
甚至 1234567890123456789012345
。
我是一名优秀的程序员,十分优秀!