c语言编程题,求答案

大概是一道排序题?想了半天不知道该怎么做
2024-12-03 18:05:27
推荐回答(1个)
回答1:

1.我写了一个程序;

2.功能可以实现;

3.有不足,希望你可以改进;

4.我的运行结果如图片

5.源码如下:

#define _CRT_SECURE_NO_WARNINGS

#include

#include

#include

typedef struct _student

{

int dormNum; //宿舍号

int num; //学号

}Student;

void printS(Student *p)

{

printf("宿舍号      学号\n");

while(p->num)

{

printf("%d\t",p->dormNum);

printf("%d\n",p->num);

p++;

}

}

int main()

{

int i = 0;

int j = 0;

int flag =0;

Student arrray[7] = {0};

for(i = 1101, j = 170901; i<=1106; i++, j++)

{

arrray[i - 1101].dormNum = i;

arrray[i - 1101].num = j;

}

arrray[i - 1101].dormNum = 0;

arrray[i - 1101].num = 0;

printf("原来的分配表如下:\n");

printS(arrray);

for(i = 0; i<7; i++)

{

if(flag == 1)

{

arrray[i].num = arrray[i - 1].num +1;

}

if(arrray[i].num == 170903)

{

arrray[i].num = 170903 +1;

flag = 1;

}

if(i == 5)

{

arrray[i].num = 0;

}

}

printf("新的分配表如下:\n");

printS(arrray);

system("pause");

return 0;

}