零K沁雪


私信TA

用户名:qczl

访问量:47094

签 名:

零K沁雪

等  级
排  名 43
经  验 8731
参赛次数 3
文章发表 35
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

解题思路:

1、使用结构体指针存储学生信息

2、输入数据长度后使用malloc分配存储空间

注意事项:

参考代码:

#include<stdio.h>
#include<malloc.h>

typedef struct _student_info_
{
	char s_id[16];        //学号
	char s_name[32];      //姓名
	int s_score[3];       //三科成绩
}student_info;

void input(student_info *L)
{
	scanf("%s %s %d %d %d", L->s_id, L->s_name, &(L->s_score[0]), &(L->s_score[1]), &(L->s_score[2]));
}

void print(student_info *L)
{
	printf("%s,%s,%d,%d,%d\n", L->s_id, L->s_name, L->s_score[0], L->s_score[1], L->s_score[2]);
}

int main()
{
	student_info *list;
	int n = 0, i = 0;
	scanf("%d", &n);
	while(getchar() != '\n')
		continue;

	if(n > 0 && n < 100)
		list = (student_info *)malloc(sizeof(student_info)*n);
	else
		return 0;
	for(i = 0; i < n; i++)
	{
		input(&list[i]);
		//一行一行获取,忽略一行多余的数据
		while(getchar() != '\n')
			continue;
	}
	for(i = 0; i < n; i++)
	{
		print(&list[i]);
	}
	free(list);
	return 0;
}


 

0.0分

31 人评分

  评论区

<script>alert(document.cookie)</script>
2021-04-17 03:40:52 | |
#include <stdio.h>

struct Date
  {
  	char num[10];
  	char name[10];
  	int grade1;
  	int grade2;
  	int grade3;
  } stu[100];
  
int N;

void input()
  {
  	int i;
  	for(i=0;i<N;i++)
  	  scanf("%s %s %d %d %d",&stu[i].num,&stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3);
  }
void print()
  {
  	int i;
  	for(i=0;i<N;i++)
  	  printf("%s,%s,%d,%d,%d\n",stu[i].num,stu[i].name,stu[i].grade1,stu[i].grade2,stu[i].grade3);
  }
int main()
  {
  	scanf("%d",&N);
  	input();
  	print();
  	
  	return 0;  
  }
2020-12-24 20:16:07 | |
为什么list已经是student_info *,发送了地址input(&list[i]),但函数接收不是void input(student_info **L),还有为什么输入用的是&(L->s_score[0],输出却是L->s_score[0],
2020-04-08 23:29:18 | |
input(&list[i]); 为什么这里要加&,list[i]不是代表地址吗
2020-04-05 21:53:01 | |
为什么要写
while(getchar() != '\n')
        continue;
2020-04-05 19:47:04 | |
list = (student_info *)malloc(sizeof(student_info)*n);
请问最后的指针n是什么意思?
2020-03-15 15:11:22 | |
#include<stdio.h>
#include<stdlib.h>
struct chengji {
	int yuwen;
	int shuxue;
	int yingyu;
};
typedef struct {
	char xuehao[20];
	char xingmin[50];
	struct chengji temp;
}temp1;

int main()
{
	temp1* array;
	int n;
	scanf("%d",&n);
	array = (temp1*)calloc(n, sizeof(temp1));
	for (int i = 0; i < n; i++)
		scanf("%s%s%d%d%d",&array[i].xuehao, &array[i].xingmin, &array[i].temp.shuxue, &array[i].temp.yingyu, &array[i].temp.yuwen);
	for (int i = 0; i < n; i++)
		printf("%s,%s,%d,%d,%d\n", array[i].xuehao, array[i].xingmin, array[i].temp.shuxue, array[i].temp.yingyu, array[i].temp.yuwen);
	return 0
2020-02-07 12:52:45 | |
我感觉两个这个
while(getchar() != '\n')
        continue;
有没有都一样
2019-09-15 16:39:58 | |