吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2819|回复: 9
收起左侧

[其他转载] 11.23 每日一c

  [复制链接]
吾爱姚吕婧妍 发表于 2018-11-23 21:13
本帖最后由 吾爱姚吕婧妍 于 2018-12-2 17:14 编辑

[Asm] 纯文本查看 复制代码
/*通信录排序:建立一个通讯录,通讯录的结构记录包括:
姓名 生日 电话号码;期中生日又包括三项:年 月 日。
编写程序,定义一个嵌套的结构类型,输入n(n<10)个联系人的信息,
在按他们的的年龄从大到小的顺序依次输出其信息。试编写相应程序。 
*/
//仅限年大小 
#include<stdio.h>
struct birthday
{
    int year;
    int month;
    int day;
 } ;
struct Maillist
{
    char name[10];
    struct birthday date;
    double Phonenumber;
 } s[10],max;
  
 int main()
 {
    int i,n,min;// i表示for循环的自变量,n表示输入多少个数据 
    printf("Enter you want to how much n ");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("name %d :",i+1);
        scanf("%s",&s[i].name);
        printf("Tel: ");
        scanf("%lf",&s[i].Phonenumber);
        printf("date of birth :");
        scanf("%d%d%d" ,&s[i].date.year,&s[i].date.month,&s[i].date.day); 
    }
    int j,m;
// j为for的第二个自变量循环 
// m为记录记录最大的那个同学的序号 
    for(i=0;i<n;i++) 
    {
        min=s[i].date.year;
        m=i;
        for(j=i+1;j<n;j++)
        {
            if(s[j].date.year<min)
            {
                min=s[j].date.year;
                m=j;    
            }
//比较大小后的交换 
            max=s[i];
            s[i]=s[m];
            s[m]=max;
        }
         
    }
//打印 
    for(i=0;i<n;i++)
    {
        printf("%s %0.f %d %d %d \n" ,s[i].name,s[1].Phonenumber,s[i].date.year,s[i].date.month,s[i].date.day);
    }
    return 0;
 }






[Asm] 纯文本查看 复制代码
// 此题的参考答案
#include<stdio.h>
struct  student
{
    char name[10];
    int birthday;//一开始我用char 发现不能比较(⊙o⊙)… 
    char Tel[30];
};
void studentsort(struct student s[],int t)
{
    struct student map;//先再定义一个结构 方便判断语句的双值转换 
    int i,j;
    for(i=1;i<t;i++)// i=1是只需要循环n-1次就可以排列整齐  
    {
        for(j=0;j<t-1;j++)
        {
            //判断  大的数字年龄越小放在后面 
            if(s[j].birthday>s[j+1].birthday)
            {
                map=s[j+1];
                s[j+1]=s[j];
                s[j]=map;
             } 
        }
    }
}
int main()
{
    int i,n;
    printf("Enter your want to input how much information : ");
    scanf("%d",&n);
    //定义一个结构 
    struct student pop[n]; 
    for(i=0;i<n;i++)
    {
        printf("Please input name birthday Tel ");
        scanf("%s %d %s",&pop[i].name,&pop[i].birthday,&pop[i].Tel);
     } 
     studentsort(pop,n);
     //打印 
     for(i=0;i<n;i++)
     {
        printf("name:%s birthday:%d Tel:%s\n",pop[i].name,pop[i].birthday,pop[i].Tel);
     }
     return 0;
 } 

免费评分

参与人数 2吾爱币 +3 热心值 +1 收起 理由
苏紫方璇 + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
嘤樱怪 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

嘤樱怪 发表于 2018-11-23 21:35
可以的 兄弟
wow999 发表于 2018-11-23 22:51
可以的,兄弟!!这段语句写得非常的简洁完美!表达也是通俗易懂
wangqiustc 发表于 2018-11-23 23:14
congratulation 发表于 2018-11-24 11:10
可以的,挺厉害的,贵在坚持
iamshy520 发表于 2018-11-24 20:55
建议楼主看点代码规范的书,对你的学习会有好处的
520523526 发表于 2018-11-28 09:39 来自手机
可以的!
106lby9574972 发表于 2018-11-29 21:39
如果把下面的比较排序换成冒泡排序的方法会更简洁,另外代码写得不是很规范,影响不大
 楼主| 吾爱姚吕婧妍 发表于 2018-11-29 21:44
106lby9574972 发表于 2018-11-29 21:39
如果把下面的比较排序换成冒泡排序的方法会更简洁,另外代码写得不是很规范,影响不大

谢谢 提醒
虽然重新打过一遍答案
却还是该去拿着答案和自己比较一下了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 23:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表