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

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;
}
运行:



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;
}

运行:


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;
}


运行:



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;
}
运行:



  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值