C语言(6)--国际象棋棋盘、螺旋矩阵、指定年份日历、打印ASCII码表

时间:2022-06-14 11:04:26

1.输出国际象棋棋盘

#include <stdio.h>
#include <windows.h>//补充字符处理
int main()
{
int i,j;
SetConsoleOutputCP(437);//显示大与127的ASCII码
for(i=0;i<8;i++){//控制8行
for(j=0;j<8;j++){//控制8列
if((i+j)%2==0)//如果行数+列数=偶数
printf("%c%c",219,219);//输出白色空格
else
printf(" ");//输出黑色空格
}
printf("\n");//换行
}
printf("\n");
return 0;
}
运行:

C语言(6)--国际象棋棋盘、螺旋矩阵、指定年份日历、打印ASCII码表

2.螺旋矩阵

#include <stdio.h>
int main()
{
int i=0,j=0,k,count=0,N;
int data[20][20]={0};//螺旋矩阵的保存数组,每行最大为20个
printf("请输入一个整型数字N:");
scanf("%d",&N);//N为螺旋矩阵行列数
for(k=0;k<N/2;k++)// 总共有N/2圈循环,由外及里赋值
{
for(i=k;i<N-k;i++)//未赋值的最上层
data[k][i]=++count;
for(i=k+1;i<N-k;i++)//未赋值的最右侧
data[i][N-k-1]=++count;
for(i=N-k-2;i>k;i--)//未赋值的最下侧
data[N-k-1][i]=++count;
for(i=N-k-1;i>k;i--)//未赋值的最左侧
data[i][k]=++count;
}
if(N%2!=0)//N为奇数
data[N/2][N/2]=N*N;//最中间的元素为N*N
for(i=0;i<N;i++){
for(j=0;j<N;j++)
printf("%3d",data[i][j]);//输出当前下标对应的数组的值
printf("\n");//换行
}
return 0;
}

运行:

C语言(6)--国际象棋棋盘、螺旋矩阵、指定年份日历、打印ASCII码表

3.指定年份日历

#include <stdio.h>
int monthday(int ,int);//声明函数monthday获取某个月的天数
int IsLeapYear(int );//声明函数IsLeapYear,判断某一年是否为闰年;是闰年返回1,否返回0
int main()
{
int days,weekday,year,month=1,d,i;
printf("请输入年份:");
scanf("%d",&year);
days=(year-1)*497/400;//用于计算某一年某个月第一天星期几
while(month<=12){
printf("\t\t\t%d-%d\n",year,month);//输出年-月
printf("Sun\tMon\tTues\tWed\tThur\t\Fri\tSat\n");//星期表头
d=1;
i=1;
weekday=(days+1)%7;//求星期几
while(i<=weekday)
{
printf("\t");
i++;
}
while(d<=monthday(month,year))
{
weekday=(days+1)%7;
if(weekday==6)
printf("%d\n",d);
else
printf("%d\t",d);
if(d==monthday(month,year))
printf("\n");
d++;
days++;
}
month++;
}
return 0;
}
int monthday(int month,int year)
{
switch (month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:return 31;
case 4:
case 6:
case 9:
case 11:return 30;
case 2:
if(IsLeapYear(year))
return 29;
else
return 28;
}
}
int IsLeapYear(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;
else
return 0;
}


运行:

C语言(6)--国际象棋棋盘、螺旋矩阵、指定年份日历、打印ASCII码表

4.打印ASCII码表

#include <stdio.h>
int main()
{
int i;
for(i=0;i<128;i++){//ASCII码有128个
if(i%8==0)//一行显示八个
printf("\n");
printf("%3c",(char)i);//强制转换类型
}
printf("\n");
return 0;
}
运行:

C语言(6)--国际象棋棋盘、螺旋矩阵、指定年份日历、打印ASCII码表