C语言(排序、逆序、计算天数、矩阵转置)

发布于:2024-03-20 ⋅ 阅读:(54) ⋅ 点赞:(0)

一、对10个整数排序(从小到大)。例如原来 a[0]~a[9]的值为  6  90  45  56  1  15  44  78  58  101,排完序后a[0]~a[9]的值变为  1  6  15  44  45  56  58  78  90  101。

#include<stdio.h>
int main()
{
	int i,j,t;
	int a[10]={6,90,45,56,1,15,44,78,58,101};
	for(i=0;i<10;i++)
		{
			printf("%d",a[i]);
			if(i<9)
			printf(",");
		}
	for(j=0;j<9;j++)
	{
		for(i=0;i<9-j;i++)
		if(a[i]>a[i+1])
		{
			t=a[i];
			a[i]=a[i+1];
			a[i+1]=t;
		}
	}
	printf("这些数从小到大排序为:");
	for(i=0;i<10;i++)
		{
			printf("%d",a[i]);
			if(i<9)
			printf(",");
		}
	putchar('\n');
	return 0;
}
运行结果:

二、将一个数组中的值按逆序重新存放。例如原来a[0]~a[4]为 8、6、5、4、1,逆序后a[0]~a[4]变为  1、4、5、6、8。

#include<stdio.h>
int main()
{
	int i,j;
	int a[5],b[5];
	printf("请输入数组的5个数:");
	for(i=0;i<5;i++)
	{
		scanf("%d",&a[i]);
	}
	for(j=0,i=4;j<5;j++,i--)
	{
	    b[j]=a[i];
	}
	printf("该数组逆序为:");
	for(i=0;i<5;i++)
	{
		a[i]=b[i];
		printf("%d ",a[i]);
	}
	putchar('\n');
	return 0;
}
运行结果:

三、给出年,月,日,计算该日是该年的第几天

#include<stdio.h>
int main()
{
	void run_nian(int x,int y,int z);
	void ping_nian(int x,int y,int z);
	int a,b,c;
	printf("please enter year:");
	scanf("%d",&a);
	printf("please enter month:");
	scanf("%d",&b);
	printf("please enter day:");
	scanf("%d",&c);
	if(a%4==0&&a%100!=0||a%400==0)
		run_nian(a,b,c);
	else
		ping_nian(a,b,c);
	return 0;
}
void run_nian(int x,int y,int z)
{
	int i;
	int sum=0;
	int mon[12]={31,29,31,30,31,30,31,31,30,31,30,31};
	for(i=0;i<y-1;i++)
	{
		sum=sum+mon[i];
	}
	sum=sum+z;
	printf("这年为闰年,2月有29天\n");
	printf("%d年%d月%d日是这一年的第%d天\n",x,y,z,sum);
}
void ping_nian(int x,int y,int z)
{
	int i;
	int sum=0;
	int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	for(i=0;i<y-1;i++)
	{
		sum=sum+mon[i];
	}
	sum=sum+z;
	printf("这年为平年,2月有28天\n");
	printf("%d年%d月%d日是这一年的第%d天\n",x,y,z,sum);
}
运行结果:
闰年

平年

四、写一个函数,是给定的一个3*3的一个二维整数型数组转置,即行列互换

#include<stdio.h>
int main ()
{
	int a[3][3]={{4,9,3},{8,5,0},{2,4,6}};
	int b[3][3],i,j;
	printf("矩阵a为:\n");
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
		{
			printf("%5d",a[i][j]);
		}
		putchar('\n');
	}
	printf("矩阵a的转置为:\n");
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
		{
			b[i][j]=a[j][i];
			printf("%5d",b[i][j]);
		}
		printf("\n");
	}
	return 0;
}
运行结果:


网站公告

今日签到

点亮在社区的每一天
去签到