问题点:1,输出格式问题,没法对齐;
突破点:输出格式控制,左对齐或右对齐;
#include <stdio.h> main() { int n,i; scanf("%d",&n); printf("Sun Mon Tue Wen Thu Fri Sat\n"); if (n==7) n=0; //注意看n和星期实际的位次,星期一已经在第二个方块了,也就是n小于实际的位次1;所以星期n=7时候,实际已经8了,8就是从星期天开始, for(i=1;i<=n+30;i++) //也就是从第一个实际位次开始,那么后来的n+30就会矛盾,事实是应该第一行数字全满;所以n=7<=>n=0; { if(i<=n) //i是输出位,可以理解成实际位,实际位小于输入位代表是空格,因为是1号开始; printf(" "); else printf("%3d",i-n); if (i%7!=0) //这是用来判断是否换行的,并且输出位都是空格一个空格的,至于对齐的字母那个方块是输出格式控制对齐方式决定的 putchar(' '); else putchar('\n'); } return 0; }