| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1692 人关注过本帖
标题:关于字符串的一道题
取消只看楼主 加入收藏
流浪猪头
Rank: 2
等 级:论坛游民
帖 子:40
专家分:65
注 册:2018-7-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
关于字符串的一道题
问题:读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
输入格式:每个测试输入包含1个测试用例,格式为\
  第1行:正整数n
  第2行:第1个学生的姓名 学号 成绩
  第3行:第2个学生的姓名 学号 成绩
  ... ... ...
  第n+1行:第n个学生的姓名 学号 成绩
其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出格式:对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。
输入样例:
3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
输出样例:
Mike CS991301
Joe Math990112
程序代码:
#include <cstdio>
#include <cstring>
#define N 10
int main()
{
    int n,score,min,max;
    char na[N],nu[N],namax[N],numax[N],namin[N],numin[N];
    scanf("%d",&n);
    gets(na);
    gets(nu);
    scanf("%d",&score);
    strcpy(namin,na);strcpy(namax,na);
    strcpy(numin,nu);strcpy(numax,nu);
    min=score;max=score;
    for(int i=1;i<n;i++)
    {
        gets(na);
        gets(nu);
        scanf("%d",&score);
        if(score<min) {strcpy(namin,na);strcpy(numin,nu);} 
        if(score>max) {strcpy(namax,na);strcpy(numax,nu);}
    }
    puts(namax);printf(" ");puts(numax);printf("\n");
    puts(namin);printf(" ");puts(numin);printf("\n");
}

我这个有问题,我感觉是空格的原因。但是如何使切断两个字符串呢?求大佬瞅瞅
搜索更多相关主题的帖子: 学生 姓名 学号 成绩 strcpy 
2018-07-31 16:50
流浪猪头
Rank: 2
等 级:论坛游民
帖 子:40
专家分:65
注 册:2018-7-23
收藏
得分:0 
回复 2楼 no1xijin
哦哦,知道了,多谢
2018-07-31 18:47
流浪猪头
Rank: 2
等 级:论坛游民
帖 子:40
专家分:65
注 册:2018-7-23
收藏
得分:0 
回复 2楼 no1xijin
程序代码:
#include <cstdio>
#include <cstring>
#define N 10
int main()
{
    int n,score,min,max;
    char na[N],nu[N],namax[N],numax[N],namin[N],numin[N];
    scanf("%d",&n);
    scanf("%s",na);
    scanf("%s",nu);
    scanf("%d",&score);
    strcpy(namin,na);strcpy(namax,na);
    strcpy(numin,nu);strcpy(numax,nu);
    min=score;max=score;
    for(int i=1;i<n;i++)
    {
        scanf("%s",na);
        scanf("%s",nu);
        scanf("%d",&score);
        if(score>max) {strcpy(namax,na);strcpy(numax,nu);}
        if(score<min) {strcpy(namin,na);strcpy(numin,nu);}
    }
    printf("%s %s\n",namax,numax);
    printf("%s %s\n",namin,numin);
}

改成这样了,但是结果不对,送佛送到西,再看看哪里错了,嘿嘿
2018-07-31 19:08
流浪猪头
Rank: 2
等 级:论坛游民
帖 子:40
专家分:65
注 册:2018-7-23
收藏
得分:0 
回复 4楼 流浪猪头
图片附件: 游客没有浏览图片的权限,请 登录注册
看看,为什么结果不对
2018-07-31 20:18
流浪猪头
Rank: 2
等 级:论坛游民
帖 子:40
专家分:65
注 册:2018-7-23
收藏
得分:0 
回复 4楼 流浪猪头
图片附件: 游客没有浏览图片的权限,请 登录注册
看看,为什么结果不对
2018-07-31 20:18
快速回复:关于字符串的一道题
数据加载中...
 
   



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

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