标题:C语言scanf()里的一点问题?
只看楼主
Eahonxu
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2016-7-13
结帖率:96.15%
已结贴  问题点数:2 回复次数:6 
C语言scanf()里的一点问题?
题目是,编写一个程序,首先要求用户输入名字,然后要求用户输入姓氏。在一行打印输入的姓名,在下一行打印每个名字中字母的个数。把字母个数与相应名字的结尾对齐,如下所示:
Melissa Honeybee
        7             8
然后打印相同的信息,但是字母个数与相应单词的开始对齐。
Melissa Honeybee
7         8
小弟我编到这里就接不下去了。。。

#include<stdio.h>
#include<string.h>
int main()
{
    char name[20];
    char family[20];
    scanf("%s%s", name, family);
    printf("%s %s\n", name, family);
    return 0;
}
求大神帮忙解惑~~~
搜索更多相关主题的帖子: 单词 C语言 family include 
2016-07-16 14:39
captain2050
Rank: 2
等 级:论坛游民
帖 子:57
专家分:43
注 册:2016-7-15
得分:1 
回复 楼主 Eahonxu
#include<stdio.h>
#include<string.h>
int main()
{
    char a[20];
    char b[20];
    int anum=0,bnum=0;
    printf("请输入两个字符串,用空格分开\n");
    scanf("%s%s",a,b);
    anum=strlen(a);
    bnum=strlen(b);
    printf("%s %s\n",a,b);
    printf("%d",anum);
    for(int i=1;i<=anum;i++)
        printf(" ");
    printf("%d",bnum);
}
2016-07-16 14:53
zx315
Rank: 5Rank: 5
来 自:广东
等 级:职业侠客
威 望:2
帖 子:86
专家分:378
注 册:2016-7-13
得分:1 
程序代码:
#include<stdio.h>
#include<string.h>

int main()
{
    char name[20];
    char family[20];
    scanf("%s%s", name, family);
    printf("%s %s\n", name, family);
    
    int n_len = strlen(name);
    int f_len = strlen(family);
    printf("%*d%*d", n_len, n_len, f_len, f_len);
    
    return 0;
}



Read The Fucking Source Code~
2016-07-16 17:18
BBOY愿愿
Rank: 3Rank: 3
来 自:四川
等 级:论坛游民
威 望:9
帖 子:60
专家分:67
注 册:2015-12-9
得分:1 
回复 2楼 captain2050
我改了一下你的

#include<stdio.h>
#include<string.h>
int main()
{
    char a[20];
    char b[20];
    int anum=0,bnum=0;
    printf("请输入两个字符串,用空格分开\n");
    scanf("%s%s",a,b);
    anum=strlen(a);
    bnum=strlen(b);
    printf("%s\t%s\n%d\t%d\n",a,b,anum,bnum);
}

其实你可以很优秀------对自己说-----即使遍体鳞伤也要活得漂亮-------
2016-07-16 17:27
低调低调
Rank: 3Rank: 3
来 自:四川省成都市
等 级:论坛游侠
威 望:1
帖 子:66
专家分:103
注 册:2016-6-23
得分:1 
以下是引用zx315在2016-7-16 17:18:48的发言:


#include<stdio.h>
#include<string.h>

int main()
{
    char name[20];
    char family[20];
    scanf("%s%s", name, family);
    printf("%s %s\n", name, family);
   
    int n_len = strlen(name);
    int f_len = strlen(family);
    printf("%*d%*d", n_len, n_len, f_len, f_len);
   
    return 0;
}



这个基本上就能满足你的要求了 要是你还想在加点其他的要求的话 你可以再试试
2016-07-16 19:28
east东
Rank: 2
等 级:论坛游民
帖 子:15
专家分:27
注 册:2016-7-13
得分:1 
回复 4楼 BBOY愿愿
#include<stdio.h>
#include<string.h>
int main()
{
    char a[20];
    char b[20];
    int anum,bnum,i;
    printf("请输入两个字符串,用空格分开\n");
    scanf("%s%s",a,b);
    anum=strlen(a);
    bnum=strlen(b);
    printf("%s %s\n",a,b);
    for(i=1;i<anum;i++)
        printf(" ");
    printf("%d ",anum);
    for(i=1;i<bnum;i++)
        printf(" ");
    printf("%d ",bnum);

}

我又改了下,正好把数字放到右面
2016-07-16 22:53
qq543322463
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2013-7-26
得分:1 
回复 楼主 Eahonxu
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    int i=0;

    //声明两个变量来存放姓名的大小
    int lg_name=0;
    int lg_family=0;

    char name[20];
    char family[20];
    scanf("%s%s", name, family);
    printf("%s %s\n", name, family);

    //计算字母个数,详细查看strlen()函数
    lg_name=strlen(name);
    lg_family=strlen(family);

    for(i=0;i<lg_name-1;i++)
    {
        printf(" ");//打印空格,让光标跳到相对应的地方
    }
    printf("%d",lg_name);
    printf(" ");//打印空格
    for(i=0;i<lg_family-1;i++)
    {
        printf(" ");//打印空格,让光标跳到相对应的地方
    }
    printf("%d",lg_family);
    return 0;
}
2016-07-18 10:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-466977-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.170850 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved