您的位置:首页 > 编程语言 > C语言/C++

[C语言学习]作业十五

2006-01-21 23:36 274 查看
[C语言]作业号:LF (提交的作业可多次修改更新覆盖,截止至2004-05-29(星期六) 23时)
题目: 
(上次LE作业,由于数据库误操作,将后来提交的覆盖了,只有部分当时课上提交的了。仅此致歉。)
1)运行书本排序的5个例题E9-1 ~ E9-5。
2)下载sortdemo.exe文件,在本地运行,查看QB编写的六种排序方法的实现与时间比较;
3)下载sortdemo.bas文件,查看该QB源程序中各排序函数的难易度;
4)选取567班名单中,自己本宿舍4位同学的(昵称,姓名,学号,登录时间,在线)五项数据,作为结构体数组变量,在定义时赋值;用冒泡排序法,按“在线”排升序显示输出;再用选择排序法,按“登录时间”排降序显示输出。

---本次作业提交文件在下框内。---

学号:06030706    姓名:毛佳茗    IP号:211.65.220.21
#include <stdio.h>
#define renshu 4
struct data
{char nickname[20];
char name[10];
char number[10];
char time[20];
int hits;
int itime;
};
struct data r429[renshu]={
{"mjm","毛佳茗","06030706","2004-5-12 10:30:13",82},
{"大傻","户万春","06030707","2004-5-12 9:49:09",133},
{"ishihara","朱友晶","06030708","2004-5-12 10:27:07",50},
{"林海","刘斌","06030709","2004-5-12 9:35:05",43}
};
int itime(char time[])
{int i,j=0,sum=0,totime[20];
long int k[8]={1,10,0,60,600,0,3600,36000};
for (i=0;time[i]!='/0';i++) totime[i]=time[i]-48;
for (i=i-1;totime[i]!=-16;i--,j++)
sum+=totime[i]*k[j];
return sum;
}
void main()
{struct data temp;
int i,j,min;
for(i=0;i<renshu-1;i++)
for(j=0;j<renshu-i-1;j++)
if(r429[j].hits>r429[j+1].hits)
{temp=r429[j];
r429[j]=r429[j+1];
r429[j+1]=temp;}
printf("按“在线”升序排列/nnickname name number time online/n");
for(i=0;i<renshu;i++)
printf("/n%-10s%-9s%-10s%-20s%4d/n",r429[i].nickname,r429[i].name,r429[i].number,r429[i].time,r429[i].hits);
printf("----------------------------------------------------------/n按“登录时间”降序排列/n");
for(i=0;i<renshu;i++) r429[i].itime=itime(r429[i].time);
for(i=0;i<renshu-1;i++)
{ min=i;
for(j=i;j<renshu;j++) if(r429[j].itime>r429[min].itime) min=j;
if(min!=i)
{temp=r429[i];
r429[i]=r429[min];
r429[min]=temp;}
}
printf("nickname name number time online/n");
for(i=0;i<renshu;i++)
printf("/n%-10s%-9s%-10s%-20s%4d/n",r429[i].nickname,r429[i].name,r429[i].number,r429[i].time,r429[i].hits);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: