C语言-任务09

这篇博客介绍了C语言编程任务,包括创建、排序和遍历数据结构的函数实现。重点在于理解如何在不允许修改main函数和其他部分的情况下,正确实现create、sort和visit函数,以达到指定的输入输出效果。内容中提到了头文件string.h在拷贝字符串中的作用,并讨论了在排序函数中如何正确交换节点值的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

任务09_1

根据已知的数据结构和main函数,完成create、sort和visit函数,严格按照运行效果进行数据的输入和输出,数据结构如下:

#include<stdio.h>
#include<stdlib.h>

typedef struct student
{
   
   
   int      no;
   char    name[15];
   int      score;
}STU;

create、sort、visit和main函数如下:

STU * create(int n)//创建数组
{
   
   
   
}
void sort(STU *a,int n)//排序
{
   
   
	
}
void visit(STU*p,int len)//遍历
{
   
   
	
}


int main(void)
{
   
   
	STU *arr;
	int num;
	scanf("%d",&num);
	arr=create(num);
	visit(arr,num);
	sort(arr,num);
	visit(arr,num);
	return 0;
}

编程要求:

  1. 只能需要实现create、sort、visit这三个函数的函数体,其他不允许修改;
  2. 严格按照输入输出效果;
  3. 任务提交代码时需保证其符合行业代码规范,需进行必要的缩进及换行。(影响成绩评定)

运行效果举例:

输入举例:

4
101
chen
77
102
liu
99
103
zhang
85
104
zhao
65

输出效果:

no:101,name:chen,score:77
no:102,name:liu,score:99
no:103,name:zhang,score:85
no:104,name:zhao,score:65
no:104,name:zhao,score:65
no:101,name:chen,score:77
no:103,name:zhang,score:85
no:102,name:liu,score:99

这道题还是比较简单的,注意地址如果是几个变量相加的形式,那就不能够放在表达式的左边,不能够作为左值。这时需要利用取址来进行值的交换。

代码

#include<stdio.h>
#include<stdlib.h>

typedef struct student
{
   
   
   	int      no;
   	char    name[15];
   	int      score;
}STU;

STU * create(int n)//创建数组
{
   
   
	int i;
   	STU *p=(STU *)malloc(n*sizeof(STU));//指向数组首元素 
   	if(p==NULL)
   		printf("内存分配失败!\n"); 
   	else
	{
   
   
		for(i=0;i<n;i++)
		{
   
   
			scanf("%d",&(p+i)->no);
			scanf("%s",(p+i)->name);
			scanf("%d",&(p+i)->score);
		}
	}
	return p;
}
void sort(STU *a,int n)//排序
{
   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值