小言_互联网的博客

C语言学习系列四十二——数组再学习(5)

341人阅读  评论(0)
//计算日期对应该年的第几天

#include<stdio.h>
int day_of_year(int year,int month,int day);
int main()
{
	int year,month,day;
	int i,j,k,n,m;
	int a[2][13];
	
	scanf("%d%d%d",&year,&month,&day);
	
	day_of_year(year,month,day);
	
	printf("%d\n",day_of_year(year,month,day)); 
	
	return 0;
 }
int day_of_year(int year,int month,int day)
{
	
	int i,j,k,n,m;
	int a[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},	//非闰年 
			{0,31,28,31,30,31,30,31,31,30,31,30,31}};	   //闰年 
			
	//判断闰年
	if(year%400==0||(year%4==0&&year%100!=0))
	 	k=1;
	else
		k=0;
		
	for(i=0; i<month; i++)
		day=day+a[k][i];
	
	return day;
	
}

2000 3 1
60
//矩阵计算
//出副对角线,最后一列,最后一行以外所有元素之和

#include<stdio.h>
int main()
{
	int n,m,k,i,j,sum;
	int a[6][6];
	printf("enter n: ");
	scanf("%d",&n);
	
	printf("enter numbers: ");
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
			scanf("%d",&a[i][j]);
	}
	
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
			printf("%4d",a[i][j]);
		printf("\n");
	}
	
	sum=0;
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
		{
			if((i+j)!=n-1&&i<n-1&&j<n-1)
				sum+=a[i][j];
		}
	}
	
	printf("%d\n",sum);
	
	return 0; 
	
}

enter n: 3
enter numbers: 1 2 3 4 5 6 7 8 9
   1   2   3
   4   5   6
   7   8   9
7
//矩阵循环右移

#include<stdio.h>
int main()
{
	int n,m,k,i,j,sum;
	int a[6][6],b[6][6];
	printf("enter n: ");
	scanf("%d",&n);
	
	printf("enter m: ");
	scanf("%d",&m);
	
	printf("enter numbers: ");
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
			scanf("%d",&a[i][j]);
	}
	
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
			printf("%4d",a[i][j]);
		printf("\n");
	}
	
	
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
		{
			b[i][(j+m)%n]=a[i][j];         //最关键j=(j+m)/n
		}
	
	}
	
	
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
			printf("%4d",b[i][j]);
		printf("\n");
	}
	
	return 0;
}

enter n: 3
enter m: 2
enter numbers: 1 2 3 4 5 6 7 8 9
   1   2   3
   4   5   6
   7   8   9
   2   3   1
   5   6   4
   8   9   7

 


转载:https://blog.csdn.net/tq_1999/article/details/101474872
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场