祝老师新年快乐!

可不可以问一下如何通过科学方法去访问Wikipedia等网站

我已经非常仔细的核对过,原则上不会有较大出入。

如果对分数有疑问的,请add comment。

           
2021213147 2021213162 2021213177   2021213192 2021213236 2021213221  
2021213148 2021213163 2021213178   2021213193 2021213207 2021213222  
2021213149 2021213164 2021213179   2021213194 2021213208 2021213223  
2021213150 2021213165 2021213180   2021213195 2021213209 2021213224  
2021213151 2021213166 2021213181   2021213196 2021213210 2021213225  
2021213152 2021213167 2021213182   2021213197 2021213211 2021213226 2020213630
2021213153 2021213168 2021213183   2021213198 2021213212 2021213227 2020213634
2021213154 2021213169 2021213184   2021213199 2021213213 2021213228 2017213151
2021213155 2021213170 2021213185   2021213200 2021213214 2021213229 2017213207
2021213156 2021213171 2021213186   2021213201 2021213215 2021213230 2018213230
2021213157 2021213172 2021213187   2021213202 2021213216 2021213231  
2021213158 2021213173 2021213188   2021213203 2021213217 2021213232  
2021213159 2021213174 2021213189   2021213204 2021213218 2021213233  
2021213160 2021213175 2021213190   2021213205 2021213219 2021213234  
2021213161 2021213176 2021213191   2021213206 2021213220 2021213235  

时间排序:machine language , assembly language, non-procedural language ,high-level language 按时间排序

老师能介绍一下吗

老师能不能给一下“7-60 实验11_3_结构排序”的数据,谢谢老师!

#include <stdio.h>
#include <string.h>

struct data{
char name[11];
char id[11];
int score[3];
};

void operation_1(struct data stu[], int, int); //add information
void operation_2(struct data stu[], int, int); //delete information
void operation_3(struct data stu[], int, int); //change information
void operation_4(struct data stu[], int, int); //average score

int main()
{
int order, i, n;
struct data stu[130];

scanf("%d", &n);
for(i = 0; i < n ; i++)
{
scanf("%d", &order);
getchar();
if(order == 1)
operation_1(stu, n, i);
else if(order == 2)
operation_2(stu, n, i);
else if(order == 3)
operation_3(stu, n, i);
else if(order == 4)
operation_4(stu, n, i);
}

return 0;
}

void operation_1(struct data stu[], int n, int i)
{
char buffer[11];//buffer
int flag = 1;
scanf("%s", &buffer);
for (int j = 0; j < n; j++)
{
if (strcmp(buffer, stu[j].id) == 0) //search
{
flag = 0;
j = 130;//equal to break
}
}
getchar();
if (flag == 1)
{
strcpy(stu[i].id, buffer);
scanf("%s%d%d%d", stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
printf("Add success\n");
}
else printf("Students already exist\n");
}

void operation_2(struct data stu[], int n, int i)
{
char buffer[11];//buffer
int flag = 1;
scanf("%s", &buffer);
for (int j = 0; j < n; j++)
{
if (strcmp(buffer, stu[j].id) == 0) //search
{
flag = 0;
stu[j]=stu[i+1];
j=130;//equal to break
}
}
getchar();
if (flag == 0)
{
printf("Delete success\n");
}
else printf("Students do not exist\n");
}

void operation_3(struct data stu[], int n, int i)
{
char buffer[11];//buffer
int flag = 1, t;
scanf("%s", &buffer);
for (int j = 0; j < n; j++)
{
if (strcmp(buffer, stu[j].id) == 0) //search
{
flag = 0;
t=j;
j=130;//equal to break
}
}
if(flag==0)
{
scanf("%d%d%d", &stu[t].score[0], &stu[t].score[1], &stu[t].score[2]);
printf("Update success\n");
}
else printf("Students do not exist\n");
}

void operation_4(struct data stu[], int n, int i)
{
char buffer[11];//buffer
int flag = 1, t;
scanf("%s", &buffer);
for (int j = 0; j < n; j++)
{
if (strcmp(buffer, stu[j].id) == 0) //search
{
flag = 0;
t=j;
j=130;//equal to break
}
}
if(flag==0)
{
printf("Student ID:%s\n", stu[t].id);
printf("Name:%s\n", stu[t].name);
printf("Average Score:%.1lf\n", (stu[t].score[0]+stu[t].score[1]+stu[t].score[2])*1.0/3);
}
else printf("Students do not exist\n");
}

疑问一:我目前使用fgets函数的输入格式是(str , size , stdin ),其中第二项是大小的意思,所以是不是输入多少字符就是多少个字节呢?第三项是否所有情况都是输入stdin呢?

疑问二:在标准的fgets函数中会自动将字符串末尾的'\n'读入,所以在puts时会自动换行。如果是将字符串写入一个字符串数组,我知道如何处理掉末尾的换行符,那如果我使用fgets函数将一个字符串写入一个字符指针,如何将末尾的'\n'处理掉呢?

参考PTA练习13的编程第三题。代码如下:https://onlinegdb.com/95ykND2WbJ

这个代码为什么运行没有结果 是哪里错了?