一、对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;
}
运行结果: