H是每一行输出的学校或者项目数,为5。
目的是,让每一行输出的学校或者项目数,就是5个。当某一行的数目够了之后,后面紧跟换行符,让下一个项目输出在下一行。当某一行的项目不足5个,后面紧跟一个空格,让下一个项目输出在这一行。
怎么实现的呢?在这个for循环中,依次输出项目。k从0开始,0,1,2,3,4,这是第一行。k=0,1,2,3时,(k+1)%H的值不为0,(k+1)%H?' ':'\n'的值为' ' 而k=4时,(k+1)%H的值为0,(k+1)%H?' ':'\n' 的值为'\n'即换行,这样下一个项目就输出在下一行了。
printf中的%c就是占位符,这样,%c要么是空格要么是换行,能实现每行只有H个项目的目的。
如果是H的倍数,模为零,取换行,打印换行,否则打印空格,很巧妙啊
H是每一行输出的学校数或者项目数,(k+1)%H就是判断一下当前行里数量是否等于H,若等于则换行,否则继续输出