当前位置:首页 » 编程语言 » c语言编辑结构体数组
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编辑结构体数组

发布时间: 2022-04-18 07:49:19

‘壹’ c语言 结构体,数组

//你想输入几种水果的名字的话,就得创建一个结构体数组变量呀
#include
#include
struct
friut
{
char
name[20];
float
price;
//价格的话用一个变量来表示就行了,不需要用到数组
};
int
main()
{
struct
friut
a[5];//比如创建一个结构体数组变量,存放5种水果的名字和价格
int
i,n;
scanf
("%d",&n);//这里的n就要取小于
5
以下的数了,当然你也可以取更大的数组
for
(i=0;i
{
scanf
("%s",a[i].name);
//改成这样,因为name是个字符数组名,就不用加地址符
&

scanf("%f",&a[i].price);
//输入水果价格。
不要的话可以删掉。
}
printf("水果名称和价格如下:\n");
for
(i=0;i
{
printf
("%s\n",a[i].name);
//输出每种水果的名字
printf
("%f\n",a[i].price);//输出水果价格。。我自己加上去的,不需要的话可以去掉。
}
return
0;
}

‘贰’ c语言怎样修改文件中的结构体数组

write(&cus[i],sizeof(struct client),1,fp) 是什么意思
答:C语言把一个结构体数组写入文件分三步: 1、以二进制写方式(wb)打开文件 2、调用写入函数fwrite()将结构体数据写入文件 3、关闭文件指针 相应的,读文件也要与之匹配: 1、以二进制读方式(rb)打开文件 2、调用读文件函数fread()读取文件中的数据.

‘叁’ C语言,结构体中的数组怎么赋值,

intmain(void){

structstudentsbao={};

printf("%d,%s ",bao.id,bao.name);//输出是4224528,空(应该是null)

//structstudentsbao={3,"123"};可以。第一种赋值方法

//strcpy(bao.name,"bao");//可以,

//printf("%d,%s ",bao.id,bao.name);

//bao.name="bao";错误“stray'351'inprogram”其他是乱码,

//bao.name[0]='a';

//bao.name[0]='/0';

//printf("%d,%s ",bao.id,bao.name);

/*这样可以,*/

//chararr[10]="baobao";

////bao.name=arr;//error""

//scanf("%s",bao.name);//可以,

//printf("%d,%s ",bao.id,bao.name);

//所以scanf那一类函数都可以。

//还有就是memcpy函数也是可以的

return0;

}

(3)c语言编辑结构体数组扩展阅读

C语言结构体数组的直接赋值及数组的长度计算:

#include<stdio.h>

//自定义一个字符串的结构体,包含字符串和字符串长度两个变量

typedefstructStr{

charch[100];

intlength;//char数组(字符串)的长度

}myStr;

//刚开始声明变量时每个变量的字符串长度length都为0

//这里以长度为10的数组为例,数组长度是1000

//对第0个到第9个结构体数组的长度同时赋值为0

myStrmyStr1[10]={

[0...9]={

.length=0,

}

};

intmain(){

inti;

for(i=0;i<10;i++){

printf("%d ",myStr1[i].length);

}

return0;

}

‘肆’ C语言 编程 结构体数组

调试通过
#include<stdio.h>
#include<string.h>
main()
{
int i,j;
struct pro{
char dm[4];
char mc[10];
int dj;
int sl;
long je;

}sell[10],t;
printf("请依次输入十个产品销售记录,各项用回车隔开");
for(i=0;i<10;i++)
{scanf("%s\n%s\n%d\n%d",sell[i].dm,sell[i].mc,&sell[i].dj,&sell[i].sl);
sell[i].je=sell[i].dj*sell[i].sl;
}
printf("排列前:\n");
for(i=0;i<10;i++)
printf("%s %s %d %d %l\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
for(i=0;i<10;i++)
for(j=i;j<10;j++)
{
if(strcmp(sell[i].dm,sell[j].dm)<0)
{ t=sell[i];
sell[i]=sell[j];
sell[j]=t;
}
if(strcmp(sell[i].dm,sell[j].dm)==0&&sell[i].je<sell[j].je)
{ t=sell[i];
sell[i]=sell[j];
sell[j]=t;
}
}
printf("排列后:\n");
for(i=0;i<10;i++)
printf("%s %s %d %d %l\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
}

‘伍’ C语言结构体数组的定义

所谓结构体数组,是指数组中的每个元素都是一个结构体。在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。

结构体可以存储不同的数据类型,将他们互相联系起来。结构体数组可以连续存储多个结构体,和数组作用相似。比如想定义同一个最小外接矩形的四个坐标值,并给予这个矩形一个特征编号。当需要存储多个最小外接矩形的信息时,就需要动态申请一个结构体数组。

struct 结构体类型名{类型名 成员名;类型名 成员名;……},先声明结构体类型,再定义结构体变量名。声明结构体类型,不分配空间,定义结构体类型变量,就要分配内存空间。

(5)c语言编辑结构体数组扩展阅读:

结构体数组指针类型:

一个结构体变量的指针就是该变量所占据的内存段的起始地址。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址,指针变量也可以用来指向结构体数组中的元素。

1、类型一:

指向结构体变量的指针引用结构体变量中的成员。

2、类型二:

用结构体变量和指向结构体变量的指针构成链表,链表是一种常见的重要的数据结构。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。

链表中的每一个元素称为“结点”,每个结点都应包括两个部分:

一是用户需要用的实际数据,

二是下一个结点的地址。

链表中各元素在内存中的存储单元可以是不连续的。要找某一元素,可以先找到上一个元素,根据它提供的下一元素地址找到下一个元素。这种链表的数据结构,必须利用结构体变量和指针才能实现。

可以声明一个结构体类型,包含两种成员,一种是用户需要用的实际数据,另一种是用来存放下一结点地址的指针变量。

参考资料来源:网络—结构体类型—数组

‘陆’ C语言编程。定义一结构体数组

DEV C++下运行成功

#include<stdio.h>
#include<stdlib.h>
typedef struct
{
char XH[100];
char XM[100];
char JG[100];
float CJ;
}student;

void paixu(student stu[],int n)
{
int t,j=0;
while(j<n)
{
for(int i=j+1;i<n;i++)
{
if(stu[i].CJ>stu[j].CJ)
{
t=stu[i].CJ;
stu[i].CJ=stu[j].CJ;
stu[j].CJ=t;
}
}
printf("\n%s\t%s\t%s\t%f",stu[j].XH,stu[j].XM,stu[j].JG,stu[j].CJ);
j++;
}
}

int main()
{
int n,i;
printf("请输入学生总人数N:");
scanf("%d",&n);
student stu[n];
for(i=0;i<n;i++)
{
getchar();
printf("\n请输入学生%d的学号:",i+1);
gets(stu[i].XH);
printf("请输入学生%d的姓名:",i+1);
gets(stu[i].XM);
printf("请输入学生%d的籍贯:",i+1);
gets(stu[i].JG);
printf("请输入学生%d的成绩:",i+1);
scanf("%f",&stu[i].CJ);
}
printf("\n按成绩由高到低排列有:\n学号\t姓名\t籍贯\t成绩\n");
paixu(stu,n);
printf("\n\n");
system("pause");
}