我需要创建一个循环来找到最年长的学生并打印他的 ID [重复]
Posted
技术标签:
【中文标题】我需要创建一个循环来找到最年长的学生并打印他的 ID [重复]【英文标题】:I need to create a loop that will find the oldest student and print his ID [duplicate] 【发布时间】:2013-11-12 22:05:31 【问题描述】:好的,首先我将解释我的任务。对于这个任务,我必须使用我没有问题的动态内存分配。我遇到的问题是找出完成任务的正确方法。对于我的作业,我需要创建一个程序,提示用户输入他们有多少学生,然后询问以下信息;学生证、生日和电话号码。我需要使用循环来提示用户输入所有学生信息。我需要创建一个循环来扫描所有学生 ID,并使用他们的生日找到年龄最大的学生(循环必须能够扫描超过 3 个学生)。
这是我的代码,我从你们那里得到了一些建议,甚至是一些代码。这是我的代码,创建一个循环搜索所有学生并找到最老的学生的最佳方法是什么?
谢谢。
#include <stdio.h>
#include <stdlib.h>
struct studentDataType
int studentID;
int year;
int month;
int day;
long long phone;
;
int main (void)
struct studentDataType *studentRecords=NULL;
unsigned int students;
unsigned int studentID;
unsigned int year;
unsigned int month;
unsigned int day;
unsigned long phone;
printf("How many students are you entering records for:\n");
scanf("%d", &students);
studentRecords = malloc(sizeof(struct studentDataType) * students);
int i=0;
for (i; i != students ; ++i)
printf("Enter information for student as follows (ID, DOB year, DOB month, DOB day, Phone): %d\n", i+1);
struct studentDataType * s = &studentRecords[i];
scanf("%u %u %u %u %u", &(s->studentID), &(s->year), &(s->month), &(s->day), &(s->phone));
【问题讨论】:
:-) 我在 Stack-Overflow 上关注未回答的问题,每隔十分钟就会出现同样的问题和代码,标题不同,如果我错了,不同的问题会告诉我。无意冒犯,但我建议你把基础弄清楚,自己尝试解决基本问题,这就是你学习的方式。 (当我上次在'for'循环中添加int声明的答案时,我希望至少有一个赞成票......:-) ;-)) 请停止发布相同问题的重复内容(here 和 here)。如果您还没有解决原来的问题,请返回问题并进行编辑。如果您确实解决了上一个问题,请接受或删除该问题。将您从先前问题的答案中获得的代码发布为新问题并不是一个好主意。 【参考方案1】:首先用零初始化一个本地“日期”(即可能的最小日期)。然后遍历集合中的所有条目。当您发现结构的“日期”比本地日期更早时,将索引保存到该条目并将本地日期设置为条目日期。然后当循环结束时,保存的索引是“最旧”的条目。
类似这样的伪代码:
oldest_date = 0;
oldest_index = -1;
loop_over_all_students
if current_student.date > oldest_date
oldest_date = current_student.date
oldest_index = current_index
if (oldest_index >= 0)
/* The variable `oldest_index` is the index to the "oldest" student */
【讨论】:
你能给我一些示例代码吗? @user2172993 因为this question、this question、this question,现在当前的问题还没有让你明白吗?您为这个问题发布的非常代码是从某人对先前问题的回答中逐字粘贴的。 @user2172993 添加伪代码以上是关于我需要创建一个循环来找到最年长的学生并打印他的 ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章
C语言制作程序利用结构数组输入3个人姓名年龄,并输出三人最年长者姓名年龄