C语言学习笔记第四天练习作业

C语言学习笔记第四天练习作业

作业1:定义一个5*5的二维数组并初始化,找出最小值的坐标,计算出最小值周围一圈数据之和
作业2:输入N,显示前N层杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
作业3:输入一个日期(yyyy-mm-dd),计算该日期距离1年1月1日过了多少天
2022-7-8

个人代码如下:

#include <stdio.h>

int main(int argc,const char* argv[])
{
	/*
	int arr[7][7]={};
	printf("=================test01===================\n");
	printf("请输入5*5数据:");
	for(int i=1;i<6;i++)
	{
		for(int j=1;j<6;j++)
		{
			scanf("%d",&arr[i][j]);	
		}
	}
	int max=arr[1][1];
	int max_i=1,max_j=1;
	for(int i=1;i<6;i++)
	{
		for(int j=1;j<6;j++)
		{
			if(arr[i][j]>max)
			{
				max = arr[i][j];	
				max_i = i;
				max_j = j;
			}
		}
	}
	int sum=0;
	for(int i=max_i-1;i<=max_i+1;i++)
	{
		for(int j=max_j-1;j<=max_j+1;j++)
		{
			sum+=arr[i][j];	
		}
	}
	sum-=arr[max_i][max_j];

	printf("%d\n",sum);
*/
	int arr[5][5]={};
	printf("=================test01===================\n");
	printf("请输入5*5数据:");
	for(int i=0;i<5;i++)
	{
		for(int j=0;j<5;j++)
		{
			scanf("%d",&arr[i][j]);	
		}
	}

	int max_i=0,max_j=0;
	int max = arr[0][0];
	for(int i=0;i<5;i++)
	{
		for(int j=0;j<5;j++)
		{
			if(arr[i][j]>max)
			{
				max = arr[i][j];
				max_i = i;
				max_j = j;
			}
		}
	}
	int sum=0;
	int index_i[8]={},index_j[8]={};
	index_i[0]=max_i-1;
	index_i[1]=max_i-1;
	index_i[2]=max_i-1;
	index_i[3]=max_i;
	index_i[4]=max_i;
	index_i[5]=max_i+1;
	index_i[6]=max_i+1;
	index_i[7]=max_i+1;

	index_j[0]=max_j-1;
	index_j[1]=max_j;
	index_j[2]=max_j+1;
	index_j[3]=max_j-1;
	index_j[4]=max_j+1;
	index_j[5]=max_j-1;
	index_j[6]=max_j;
	index_j[7]=max_j+1;
	for(int i=0;i<8;i++)
	{
			if(index_i[i]>=0&&index_j[i]<5&&index_i[i]<5&&index_j[i]>=0)
			{
					sum+=arr[index_i[i]][index_j[i]];
			}
	}
	printf("%d\n",sum);
	
	printf("=================test02===================\n");
	printf("请输入杨辉三角的层数:\n");
	int hight=0;
	scanf("%d",&hight);
	int a[hight][hight];
	for(int i=0;i<hight;i++)
	{
		for(int j=0;j<i+1;j++)
		{
			a[i][j]=0;
			if(j==0||i==j)
			{
				a[i][j]=1;	
			}else
			{
				a[i][j]=a[i-1][j-1]+a[i-1][j];	
			}
		}
	}
	for(int i=0;i<hight;i++)
	{
		for(int j=0;j<i+1;j++)
		{
			printf("%d\t",a[i][j]);	
		}
		printf("\n");
	}
	printf("=================test03===================\n");
	printf("请输入一个日期,格式为yyyy-mm-dd :");
	int year,month,day;
	scanf("%d-%d-%d",&year,&month,&day);
	int day_pass=0,count_r=0;
	for(int i=1;i<year;i++)
	{
		if(i%400==0||i%4==0 && i%100!=0)
		{
			count_r++;	
		}
	}
	day_pass+=(year-1)*365+count_r;
	switch(month-1)
	{
		case 11:day_pass+=30;
		case 10:day_pass+=31;
		case 9:day_pass+=30;
		case 8:day_pass+=31;
		case 7:day_pass+=31;
		case 6:day_pass+=30;
		case 5:day_pass+=31;
		case 4:day_pass+=30;
		case 3:day_pass+=31;
		case 2:day_pass+=28;
		case 1:day_pass+=31;
		case 0:break;
	}
	day_pass+=day-1;
	printf("已经过了%d天了\n",day_pass);
	return 0;
}


新手,写的有点烂,见谅

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值