人生亦梦


私信TA

用户名:uq_55161405400

访问量:8860

签 名:

追寻强大且简洁的算法解疑,不会有难题,因而我为此痴迷

等  级
排  名 3060
经  验 2049
参赛次数 1
文章发表 25
年  龄 0
在职情况 学生
学  校
专  业 网络空间安全

  自我简介:

菜,并痴迷着; 爱,并奋斗着

解题思路:

注意事项:

参考代码:

/*有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列。*/


思路:直接,将字符串划分为年月日三个区段,用strncmp()函数直接处理


#include <stdio.h>

#include <string.h>


int main ()

{

int n=0;

char ch[100][100];

char *p[100];

//存入

while (gets(ch[n])!=NULL)

{

p[n]=ch[n];

n++;

}

//排序

for(int i=0;i<n;i++)

for(int k=i;k<n;k++)

{

if(strncmp(p[i]+6,p[k]+6,4)>0)//按年排

{

char *temp=p[i];

p[i]=p[k];

p[k]=temp;

}

else if(strcmp(p[i]+6,p[k]+6)==0)

{

if(strncmp(p[i],p[k],2)>0)        //按月排

{

char *temp=p[i];

p[i]=p[k];

p[k]=temp;

   

}

else if(strncmp(p[i],p[k],2)==0)

{

if(strncmp(p[i]+3,p[k]+3,2)>0) //按日排

{

char *temp=p[i];

p[i]=p[k];

p[k]=temp;

}

}

}

}

//打印

for(int i=0;i<n;i++)

{

puts(p[i]);

}

return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »