会数组的进 弱智问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 21:32:39
在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的学号,出生月日。试找出所有生日相同的学生。

关于输入
第一行为整数n,表示有n个学生,n<100。
此后每行包含一个字符串和两个整数,分别表示学生的学号(字符串长度小于10)和出生月(1<=m<=12)日(1<=d<=31)。
学号、月、日之间用一个空格分隔。

关于输出
对每组生日相同的学生,输出一行,
其中前两个数字表示月和日,后面跟着所有在当天出生的学生的学号,数字、学号之间都用一个空格分隔。
对所有的输出,要求按日期从前到后的顺序输出。
对生日相同的学号,按输入的顺序输出。

例子输入
5
00508192 3 2
00508153 4 5
00508172 3 2
00508023 4 5
00509122 4 5

例子输出
3 2 00508192 00508172
4 5 00508153 00508023 00509122

给个思路也行
我自己的问题很大。
#include<stdio.h>
void main()
{
int a[100][8]; int m[100][1],d[100][1],c[12][31],tem[1][8],i,n,x,y,j;
scanf("%d",n);
for(i=0;i<n;i++)
{for(j=0;j<8;j++)
scanf("%d",&a[i][j]);
scanf("%d %d\n",&m[i][1],&d[i][1]);
for(x=1;x<=12;x++)
{
for(y=1;y<=31;y++)
{

不知道你使用的是什么编译编译环境,我这个是在vc++6.0下,可以正常运行。

//程序中的输入不好处理,要求输入时学号字符串和生日整型数同行以空格分隔。
//但是库函数要求字符串的输入以回车结束,因此通过库中的输入函数一下完成数据输入不能实现。
//此程序完成了比较和输出功能,只是输入没有达到要求,此程序要求按如下方式输入:
5
00508192
3 2
00508153
4 5
00508172
3 2
00508023
4 5
00509122
4 5
//输出如下:
3 2 00508192 00508172
4 5 00508153 00508023 00509122
#include<stdio.h>
void main()
{
char a[100][10] = {0}; //用来存储学号
int m[100][2]={0},d[100]={0};//m用来存储生日,d用来当索引,记录学生数据在数组中下标。
int i,n=0,x,j;

scanf("%d",&n); //输入学生个数
for(i=0;i<n;i++)
{
d[i]=i;
fflush(stdin);//清除输入缓冲区
scanf("%s",a[d[i]]); //输入学号字符串,这里输入方式是学号输入后回车才被读进去
scanf("%d %d",&m[d[i]][0],&m[d[i]][1]); //接着输入入生日的月,日
}
for(i=0;i<n-1;i++) //用类冒泡排方法(冒泡排序是稳定的排序)按生日从前到后排序
{
for(j=i+1;j<n;j++)
{
if((m[d[i]][0]>m[d[j]][0]) || ((m[d