便签(串)
时间: 1ms 内存:1M
描述:
用串的块链存储并一次性输出你认识的3个人的信息,包括姓名,年龄,性别,身高。
输入:
输出:
示例输入:
(这里只输入一个)
Wen Gehua
21
boy
172.3
示例输出:
name:Wen Gehua
age:21
sex:boy
height:172.3
提示:
参考答案(内存最优[924]):
#include <stdio.h>
#include <string.h>
struct fri
{
char mes[1000];
struct fri *next;
}fr[3];
int main()
{
int zimu(char a);
int i;
int n=0;
struct fri *head,*p;
int count;
p=head=&fr[0];
fr[0].next=&fr[1];
fr[1].next=&fr[2];
fr[2].next=NULL;
while(p!=NULL&&gets(p->mes))
{
if(!zimu(p->mes[0]))
{
continue;
}
for(i=0;i<4;i++)
{
if(i==0)
{
count=strlen(p->mes)+1;
}
else
{
gets(&p->mes[count]);
count=strlen(p->mes)+1;
}
if(i!=3)p->mes[strlen(p->mes)]='#';
}
p=p->next;
n++;
}
if(p==&fr[1]) fr[0].next=NULL;
if(p==&fr[2]) fr[1].next=NULL;
p=head;
while(p!=NULL)
{ i=0;
printf("name:");
for(;i<strlen(p->mes);i++)
{
if(p->mes[i]!='#')
printf("%c",p->mes[i]);
else
{
i++;break;
}
}
printf("\nage:");
for(;i<strlen(p->mes);i++)
{
if(p->mes[i]!='#')
printf("%d",p->mes[i]-'0');
else
{
i++;break;
}
}
printf("\nsex:");
for(;i<strlen(p->mes);i++)
{
if(p->mes[i]!='#')
printf("%c",p->mes[i]);
else
{
i++;break;
}
}
printf("\nheight:");
for(;i<strlen(p->mes);i++)
{
if(p->mes[i]!='#')
{
if(p->mes[i]!='.')
printf("%d",p->mes[i]-'0');
else printf("%c",p->mes[i]);
}
else
{
i++;break;
}
}
printf("\n");
p=p->next;
}
return 0;
}
int zimu(char a)
{
if(a>='a'&&a<='z')return 1;
else if(a>='A'&&a<='Z')return 1;
else return 0;
}
参考答案(时间最优[0]):
#include <stdio.h>
#include <string.h>
struct fri
{
char mes[1000];
struct fri *next;
}fr[3];
int main()
{
int zimu(char a);
int i;
int n=0;
struct fri *head,*p;
int count;
p=head=&fr[0];
fr[0].next=&fr[1];
fr[1].next=&fr[2];
fr[2].next=NULL;
while(p!=NULL&&gets(p->mes))
{
if(!zimu(p->mes[0]))
{
continue;
}
for(i=0;i<4;i++)
{
if(i==0)
{
count=strlen(p->mes)+1;
}
else
{
gets(&p->mes[count]);
count=strlen(p->mes)+1;
}
if(i!=3)p->mes[strlen(p->mes)]='#';
}
p=p->next;
n++;
}
if(p==&fr[1]) fr[0].next=NULL;
if(p==&fr[2]) fr[1].next=NULL;
p=head;
while(p!=NULL)
{ i=0;
printf("name:");
for(;i<strlen(p->mes);i++)
{
if(p->mes[i]!='#')
printf("%c",p->mes[i]);
else
{
i++;break;
}
}
printf("\nage:");
for(;i<strlen(p->mes);i++)
{
if(p->mes[i]!='#')
printf("%d",p->mes[i]-'0');
else
{
i++;break;
}
}
printf("\nsex:");
for(;i<strlen(p->mes);i++)
{
if(p->mes[i]!='#')
printf("%c",p->mes[i]);
else
{
i++;break;
}
}
printf("\nheight:");
for(;i<strlen(p->mes);i++)
{
if(p->mes[i]!='#')
{
if(p->mes[i]!='.')
printf("%d",p->mes[i]-'0');
else printf("%c",p->mes[i]);
}
else
{
i++;break;
}
}
printf("\n");
p=p->next;
}
return 0;
}
int zimu(char a)
{
if(a>='a'&&a<='z')return 1;
else if(a>='A'&&a<='Z')return 1;
else return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。