C语言编程作业,急!!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程作业,急!!!!相关的知识,希望对你有一定的参考价值。

当前编程题:结构课堂作业---电话簿排序

2.
【问题描述】编写一个程序,输入N个用户的姓名和电话号码,按照用户姓名的词典顺序排列输出用户的姓名和电话号码。
【输入形式】用户首先在第一行输入一个正整数,该正整数表示待排序的用户数目,然后在下面多行输入多个用户的信息,每行的输入格式为:姓名 电话。以回车结束每个用户的输入。
【输出形式】程序输出排序后的结果。每行的输出结果格式也是: 姓名 电话。姓名和电话字段中间没有空格,要求用户姓名不能超过10个字符,超出10个字符时候只取前10个字符作为姓名。电话号码不能超过10位,超过10位时只按10位处理。输出姓名、电话字段各占12个字符宽,输出格式采用默认对齐方式。另外,用户的数量要求不超过50个。
【样例输入】
3
amethystic 1234567
amethyst 654321
wangwei 7645434
【样例输出】
####amethyst######654321
##amethystic#####1234567
#####wangwei#####7645434
【样例说明】程序根据用户姓名的词典顺序排序,最后按照姓名#电话的格式输出。另外,由于规定姓名和电话之间用空格分割,所以输入姓名时请将姓和名一起输入,中间不要有空格。另外输出时候程序将自动补齐12字符宽。程序输出结尾有个回车符。
【评分标准】完全正确为20分,每个测试点4分。提交程序文件名为telsort.c

#include "stdio.h"
#include <string.h>
struct tel
char name[11],num[11];
;
int main(int argc,char *argv[])
struct tel s[50];
int n,i;
char t[]="############";
printf("Please enter n(int 0<n<51)...\\n");
if(scanf("%d",&n)!=1 || n<1 || n>50)
printf("Input error, exit...\\n");
return 0;

printf("Enter some name and tel-number(by ' ','Enter' end)...\\n");
for(i=0;i<n;i++)
scanf("%10s%*[^0-9]%10s",s[i].name,s[i].num);
printf("------------------------\\n");
for(i=0;i<n;i++)
printf("%.*s%s%.*s%s\\n",12-strlen(s[i].name),t,s[i].name,12-strlen(s[i].num),t,s[i].num);
return 0;

运行样例:

参考技术A #include<stdio.h>
#include<string.h>

struct

char name[32],tel[32];
t,bks[50];

int main()

int i,j,len,n;

scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s %s",bks[i].name,bks[i].tel);
for(i=0;i<n-1;i++)

for(j=0;j<n-1-i;j++)

if(strcmp(bks[j].name,bks[j+1].name)>0)

t=bks[j];
bks[j]=bks[j+1];
bks[j+1]=t;



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

len=strlen(bks[i].name);
len=(len<=10 ? len : 10);
bks[i].name[len]='\0';
len=strlen(bks[i].tel);
len=(len<=10 ? len : 10);
bks[i].tel[len]='\0';
printf("%12s%12s\n",bks[i].name,bks[i].tel);

return 0;
追答

//如果需要在左边填充#,而不是空格,改成这样就行了:
#include
#include

struct

char name[32],tel[32];
t,bks[50];

int main()

int i,j,len,n;
const char fill[10]="##########";

scanf("%d",&n);
for(i=0;i0)

t=bks[j];
bks[j]=bks[j+1];
bks[j+1]=t;



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

len=strlen(bks[i].name);
len=(len<=10 ? len : 10);
bks[i].name[len]='\0';
printf("%.*s%.*s",
10-len,fill,len,bks[i].name);
len=strlen(bks[i].tel);
len=(len<=10 ? len : 10);
bks[i].tel[len]='\0';
printf("%.*s%.*s\n",
10-len,fill,len,bks[i].tel);

return 0;

各国的英语名,国籍,语言,!(用英语!!!)急!!!

比利时,巴西,英国,加拿大,丹麦,芬兰,匈牙利,巴林,爱尔兰,阿曼,意大利,马耳他,墨西哥,波兰,新加坡,越南,希腊,荷兰,瑞士,泰国。
(请大家帮帮忙,明天就要交作业了!一定请用英语!!!!!!)

比利时 Belgium/The Kingdom of Belgium 法兰德斯文 Flemish、荷兰文Dutch、法文 French
巴西 Brazil/The Federative Republic of Brazil 葡萄牙文 Portuguese
英国 Britain/Great Britain/the United Kingdom 英文 English
加拿大 Canada/The Dominion of Canada 英文 English、法文 French
丹麦 Denmark/The Kingdom of Denmark 丹麦文 Danish
芬兰 Finland/The Republic of Finland 芬兰文 Finnish、瑞典文 Swedish
匈牙利 Hungary/the Republic of Hungary 匈牙利文 Hagyar
巴林 Bahrain/The Kingdom of Bahrain 阿拉伯语 Arabic
爱尔兰 Ireland/the Republic of Ireland 爱尔兰文 Irish 英文English
阿曼 Oman/The Sultanate of Oman 阿拉伯文Arabic、英文 English
意大利 Italy/The Republic of Italy 意大利文 Italian
马耳他 Malta/The Republic of Malta 马耳他文 Maltese
墨西哥 Mexico/The United Mexican States 西班牙文 Spanish
波兰 Poland/The Republic of Poland 波兰文 Polish
新加坡 Singapore/Republic of Singapore 马来文 Malay、中文 Chinese、泰米尔文 Tamil、英文 English
越南 Viet Nam/ The Socialist Republic of Vietnam 越南文 Vietnamese
希腊 Greece/The Hellenic Republic 希腊语 Greek
荷兰 Netherlands/The Kingdom of the Netherlands 荷兰文 Dutch
瑞士 Switzerland/Swiss Confederation 法文 French、德文 German、意大利文 Italian
泰国 Thailand/Kingdom of Thailand 泰文 Thai
参考技术A Barhrain (巴林), offical language:English, National language:Arabic

以上是关于C语言编程作业,急!!!!的主要内容,如果未能解决你的问题,请参考以下文章

关于c语言课程设计链表的两个问题。。(高分求助) 非常急。。。。!!。

c语言求答案!急!急!急!

急,急,急!!!!C语言判断输入的两个操作数数是不是是数字。(可以为负数),望高手赐教,不胜感激!!!

C语言编程!急!

急!!!c语言编程!!

急!急!!急!!编写C语言程序,输入一人的生日,并输入当前的日期,输出该人的实际年龄。