| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7085 人关注过本帖
标题:求指导:班上有30个学生,给出姓名、出生日期、学号、专业等信息,编程根据 ...
只看楼主 加入收藏
fky
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-3-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
求指导:班上有30个学生,给出姓名、出生日期、学号、专业等信息,编程根据学号查找学生的信息并输出
Description
班上有30个学生,给出姓名、出生日期、学号、专业等信息,编程根据学号查找学生的信息并输出。
定义一个 struct student 来完成本题。
Input
首先是30行,每行一个学生的信息,分别是 姓名(小于32个字符)、生日(8位数字)、学号(8位数字)、专业(小于32个字符),以空格分隔。
然后是一个n,表示有n个查询
接下来n行,每行一个学号。
Output
对于每一个学号,输出学生的信息,一行中包含姓名、生日(8位数字)、学号(8位数字,不足的左边补0)、专业。
如果学号没有对应学生信息,输出一行“Not found”
Sample Input
高昊 19000101 00112233 计算机
陈越东 19000101 00112234 计算机
黄庆乐 19000101 00112235 计算机
屠鹏博 19000101 00112236 计算机
田伟 19000101 00112237 计算机
王江 19000101 00112238 计算机
(...以及后续24个学生的信息,略)
2
00112233
12345678
Sample Output
高昊 19000101 00112233 计算机
Not found


以上是问题的要求,小弟我基本程序语句只知道一些,不知道怎么用结构体,求赐教~~~谢谢了
程序代码:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>
#define NULL 0
#define LEN sizeof(struct student)
struct student{
    char name[33];
    long int birthday;
    long int order;
    char major[33]; 
    struct student *next;
};
void seek();
int main(){
    int i,s,k;
for(i=0;i<30;i++){

struct student *p0;   

 
p0 = (struct student *)malloc(LEN);

scanf ("%s",p0->name);    
scanf ("%ld",&p0->birthday);
scanf ("%ld",&p0->order);
scanf ("%s",p0->major);
}
scanf("%d",&k);
for(s=0;s<k;s++){
    seek();
}

return 0;
}
void seek()
{

 int order;

 struct student *p1;

 scanf("%ld", &order);

 if(head==NULL)

 {
  printf("Not found\n");
  return;

 } 

 p1 = head;

 while (order!=p1->order && p1->next!=NULL)

 p1 = p1->next; 

 if (order == p1->order)

 { 

 printf ("%s %ld %d %s\n", p1->name, p1->birthday, p1->order, p1->major);

 } 

 else

 printf ("Not found\n");
}

这是之前参考大神代码写的,但是连编译都过不了,还有好多地方自己都看不懂
搜索更多相关主题的帖子: 出生日期 信息 姓名 专业 
2014-03-20 12:18
fragileeye
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:107
专家分:387
注 册:2011-5-21
收藏
得分:0 
如果你想要别人帮忙:
1、编译不通过,贴出来错误信息。
2、看不懂,贴出你看不懂的地方。
ps:如果你自己都不懂,别人就算给正确源码你,有什么意义。
2014-03-20 12:49
LD199
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:18
专家分:46
注 册:2013-10-12
收藏
得分:20 
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>
#define NULL 0
#define LEN sizeof(struct student)
struct student{
    char name[32];
    long int birthday;
    long int order;
    char major[32];
    struct student *next;
};

int main(){
    void seek(int k);
    int i;
    struct student *p0;   
    p0 = (struct student *)malloc(LEN);
    for(i=0;i<32;i++){
    scanf ("%s",&p0->name);   
    scanf ("%ld",&p0->birthday);
    scanf ("%ld",&p0->order);
    scanf ("%s",&p0->major);
    p0=p0->next ;
    }

    int k;
    scanf("%d",&k);
    seek(k);

    return 0;
}

void seek(int k){
    struct student *p0;
    p0 = (struct student *)malloc(LEN);
    if(p0==NULL)
      printf("Not found\n");
    while (k!=p0->order && p0->next!=NULL)
        p0 = p0->next;
    if (k==p0->order)
        printf ("%s %ld %d %s\n", p0->name, p0->birthday, p0->order, p0->major);
    else
        printf ("Not found\n");
}

稍作了修改,不知可以正常运行波
2014-03-20 13:58
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
这里是个学习交流的地方。不是索要答案的地方。。。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-03-21 09:31
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
你的程序错的太多了,如果要修改实际就是重写了。你先看看书,自己修改一下再来问。
另:to 3楼:你的结点连接是不对的。
2014-03-21 10:37
fopen
Rank: 2
来 自:广东
等 级:论坛游民
帖 子:21
专家分:26
注 册:2014-2-11
收藏
得分:0 
c语言入门书籍有讲链表,建议你去看一看。呵呵……

我只会一点C和HTML,叫我情何以堪!我要学php和java!
2014-03-23 10:21
sfd1234567
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-6-2
收藏
得分:0 
统计学生中的"孙"姓同学的人数,并输出“孙”姓学生姓名、学号及各科成绩
2017-06-02 17:35
sfd1234567
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-6-2
收藏
得分:0 
学生名单有185人
2017-06-02 17:35
快速回复:求指导:班上有30个学生,给出姓名、出生日期、学号、专业等信息,编程 ...
数据加载中...
 
   



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

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