c语言函数修改结构体 c语言修改结构体中的数据

C语言修改结构体中数据的问题

因为char型数组没有重载运算符=,不能对其进行直接复制字符串

我们提供的服务有:成都做网站、网站建设、外贸营销网站建设、微信公众号开发、网站优化、网站认证、嵊泗ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的嵊泗网站制作公司

可以借助strcpy函数完成,如strcpy(lib[0].name, "asd");就是将“asd”拷贝到lib[0].name中

c语言 结构体程序求修改

#includetime.h

#include stdio.h

#include stdlib.h

#define ID 1

#define ID1 2

#define ID2 3

#define ID3 4

struct human

{

int blood;

int state;//状态

int rate;

};

int num=0; //回合数

struct human one={400,0,50};

struct human two={400,0,50};

struct human three={400,0,50};

struct human four={400,0,50};

void show(struct human h)

{

printf("第%d回合\n角色%d 体力%d %s 回复率%d%\n",++num,ID,h.blood,h.state?"正常":"中毒",h.rate);

}

void show1(struct human h1)

{

printf("\n角色%d 体力%d %s 回复率%d%%\n",ID1,h1.blood,h1.state?"正常":"中毒",h1.rate);

}

void show2( struct human h2)

{

printf("\n角色%d 体力%d %s 回复率%d%%\n",ID2,h2.blood, (h2.state ? "中毒":"正常"),h2.rate);

}

void show3(struct human h3)

{

printf("\n角色%d 体力%d %s 回复率%d%%\n",ID3,h3.blood,h3.state?"正常":"中毒",h3.rate);

}

int main()

{

char ch;

srand( (unsigned)time( NULL ) );

show(one);

show1(two);

show2(three);

show3(four);

while(ch=getchar())

{

if(ch==10)

{

int r=rand();

if(r16384)

{

one.state=1;

one.blood=one.blood-r/100;

if(one.blood=0)

{

one.blood=0;

}

}

else one.state=0;

show(one);

if(r16384)

{

two.state=1;

two.blood=two.blood-r/130;

if(two.blood=0)

{

two.blood=0;

}

}

else two.state=0;

show1(two);

if(r16384)

{

three.state=1;

three.blood=three.blood-r/105;

if(three.blood=0)

{

three.blood=0;

}

}

else three.state=0;

show2(three);

if(r16384)

{

four.state=1;

four.blood=four.blood-r/150;

if(four.blood=0)

{

four.blood=0;

show3(four);

return 0;

}

}

else four.state=0;

show3(four);

}

}

return 0;

}

你的程序我基本上看懂了,上面的代码能够正常执行

1.c语言不支持bool类型,所以定义state时,应该定义成int state

2.char ch,应该写在函数前面,因为c语言不支持变量的随定义随引用(即如果要使用一个变量,只需先写一定义变量的语句即可,并不需要在函数开头定义)

3.c语言不支持引用类型,引用是c++增加的特性

void show(human h)

应该写成void show( struct human h)

4.较低版本的c语言不支持直接使用自定义的结构体类型定义变量,结构体类型前还需要加struct关键字 如human one是不行的,必须是struct human one

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

write(cus[i],sizeof(struct client),1,fp) 是什么意思

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

关于C语言中函数修改结构体的值的问题

这个就是实参和形参的问题。

可以直接传入指针。

你说的typedef成指针是一种方式。

也可以还是typedef

struct

xxx

List;

然后传入List*类型的参数。

效果是一样的。


本文标题:c语言函数修改结构体 c语言修改结构体中的数据
新闻来源:http://myzitong.com/article/ddedhph.html