 悬赏园豆:10
                [已解决问题] 
            
                    解决于 2020-03-18 12:30
                悬赏园豆:10
                [已解决问题] 
            
                    解决于 2020-03-18 12:30 
                 
        题目截图如下:

#include <stdio.h>
#include <stdlib.h>
//自定义的结构体,用于存储每个学生的信息
struct inform{
    //准考证号
    char str[16];
    //试机座位号
    int num1;
    //考试座位号
    int num2;
};
int main()
{
    typedef struct inform Inform;
    //用户所输入的学生信息的个数
    int N;
    //用户输入的需要查询考试座位号的学生个数
    int M;
    //循环变量
    int i = 0, j = 0;
    //接收用户所输入的学生信息的个数
    scanf("%d",&N);
    //定义结构体数组,存储每个学生的详细信息
    Inform student[N];
    //通过循环依次录入每个学生的信息
    for (i = 0; i < N; i++)
    {
        //接收该学生的准考证号
        scanf("%s", student[i].str);
        //接收该学生的试机座位号
        scanf("%d", &student[i].num1);
        //接收该学生的考试座位号
        scanf("%d", &student[i].num2);
    }
    //接收用户输入的需要查询考试座位号的学生个数
    scanf("%d", &M);
    //用于接收用户输入的对应考生的待查询的试机座位号码的数组
    int flags[M];
    //依次对flags[M]赋值
    for (i = 0; i < M; i++)
    {
        scanf("%d", &flags[i]);
    }
    //通过for循环的嵌套来查找该学生的准考证号和考试座位号
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < N; j++)
        {
            //判断是否为我们所需要查找的
            if(student[j].num1 == flags[i]) {
                //打印查找到的学生的准考证号和考试座位号,并且中间以空格隔开
                printf("%s %d\n", student[j].str,student[j].num2);
            }
        }
    }
    
    return 0;
}我是通过结构体来做的,最后的输出结果是没有问题的,就是输出的格式出了问题,这是我的输出语句printf("%s %d\n", student[j].str,student[j].num2);

using namespace std;
typedef long long ll;
struct STU
{
string n1;
int n2,n3;
} number;
int main()
{
int repeat;
scanf("%d",&repeat);
int i;
struct STU number[repeat];
for(i=0; i<repeat; i++)
{
cin>>number[i].n1>>number[i].n2>>number[i].n3;
}
int m;
cin>>m;
for(i=0; i<m; i++)
{
int a;
cin>>a;
int j;
for(j=0; j<repeat; j++)
{
if(number[j].n2==a)
{
cout<<number[j].n1<<" "<<number[j].n3<<endl;
}
}
}
}
这样就好了,用string代替char类型。
也可以把你代码中结构体里面的char str[16]改成str[17],其中字符串末尾还有一个结束符"\0",结束符也要占一位,所以至少是str[17],当然str[18]也可以。tips,最好去学一下c++。
你可以去看一下我的有一篇blog,https://www.cnblogs.com/jackwang-sparrow/p/12297344.html
好的,谢谢,我搞忘了C语言字符串的'\0' 需要占位,
还是基础没有打牢。
不好意思,最近在忙其他事,没能及时回复你