为什么出错了?什么原因??

qqpass2008 2007-04-18 01:06:07
#include<stdio.h>
#include<malloc.h>
#include<string.h>
struct stu{
int num;
char name[20];
char sex;
float score;
}student[2]={{050101,"许元元",'w',502},{050102,"张帆",'m',498}};

typedef struct node{
struct stu data;
struct node *next;
}Llist,*linklist;

createList(linklist p,struct stu student[],int n)
{linklist h=NULL;
int i;Llist *s,*r;
for(i=0;i<n;i++)
{s=(Llist *)malloc(sizeof(Llist));
s->data.num=student[i].num;
strcpy(s->data.name,student[i].name);
s->data.sex=student[i].sex;
s->data.score=student[i].score;
s->next=NULL;
if(h==NULL){h=s;r=s;}
else{r->next=s;
r=s;}
}
}
main()
{Llist *a1=NULL,*p;
createList(&a1,student,2);
p=a1;
while(p)
{printf("\n%d\t%s\t%c\t%f",p->data.num,p->data.name,p->data.sex,p->data.score);
p=p->next;
}

}
...全文
202 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqpass2008 2007-04-18
  • 打赏
  • 举报
回复
完全明白了,谢谢!!
freshui 2007-04-18
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<malloc.h>
#include<string.h>
struct stu{
int num;
char name[20];
char sex;
float score;
}student[2]={{050101,"许元元",'w',502},{050102,"张帆",'m',498}};

typedef struct node{
struct stu data;
struct node *next;
}Llist,*linklist;

void createList(linklist &p,struct stu student[],int n)
{
linklist h=NULL;
int i;Llist *s,*r;

for(i=0;i<n;i++)
{
s=(Llist *)malloc(sizeof(Llist));
s->data.num=student[i].num;
strcpy(s->data.name,student[i].name);
s->data.sex=student[i].sex;
s->data.score=student[i].score;
s->next=NULL;
if(h==NULL)
{
h=s;r=s;
}
else{
r->next=s;
r=s;
}
}

p=h;
}
main()
{ Llist *a1=NULL,*p;
createList(a1,student,2);
p=a1;
while(p)
{printf("\n%d\t%s\t%c\t%f",p->data.num,p->data.name,p->data.sex,p->data.score);
p=p->next;
}

}
freshui 2007-04-18
  • 打赏
  • 举报
回复
你要显示的结果是啥?
那显然后面那个函数最后一句是
p=h;

这样是指向list的head, 才能全部显示
qqpass2008 2007-04-18
  • 打赏
  • 举报
回复
显示不正确,什么原因??
freshui 2007-04-18
  • 打赏
  • 举报
回复
完整的:

#include<stdio.h>
#include<malloc.h>
#include<string.h>
struct stu{
int num;
char name[20];
char sex;
float score;
}student[2]={{050101,"许元元",'w',502},{050102,"张帆",'m',498}};

typedef struct node{
struct stu data;
struct node *next;
}Llist,*linklist;

void createList(linklist &p,struct stu student[],int n)
{
linklist h=NULL;
int i;Llist *s,*r;
for(i=0;i<n;i++)
{s=(Llist *)malloc(sizeof(Llist));
s->data.num=student[i].num;
strcpy(s->data.name,student[i].name);
s->data.sex=student[i].sex;
s->data.score=student[i].score;
s->next=NULL;
if(h==NULL){h=s;r=s;}
else{r->next=s;
r=s;}
}
p=s;
}
main()
{ Llist *a1=NULL,*p;
createList(a1,student,2);
p=a1;
while(p)
{printf("\n%d\t%s\t%c\t%f",p->data.num,p->data.name,p->data.sex,p->data.score);
p=p->next;
}

}
freshui 2007-04-18
  • 打赏
  • 举报
回复
void createList(linklist *p,struct stu student[],int n)
改成
void createList(linklist &p,struct stu student[],int n)
并在这个函数的最后一个}前加上:
p=r;
即可
qqpass2008 2007-04-18
  • 打赏
  • 举报
回复
改啦,但怎么还是没有显示出数据来???
freshui 2007-04-18
  • 打赏
  • 举报
回复
void createList(linklist *p,struct stu student[],int n)

你在函数中用到p了没?
freshui 2007-04-18
  • 打赏
  • 举报
回复
1, createList()前面应该加个void

2, 你函数的原型是: void createList(linklist,struct stu *,int)

你调用时:createList(&a1,student,2);
变成了:void createList(linklist *,struct stu *,int)

本身已经是指针了, 再取地址干吗?
qqpass2008 2007-04-18
  • 打赏
  • 举报
回复
运行后什么都没显示啊!!
mochen5460 2007-04-18
  • 打赏
  • 举报
回复
createList(a1,student,2);
p=a1;
参数类型不对,改成上面的试试
qqpass2008 2007-04-18
  • 打赏
  • 举报
回复
这个什么意思??

E:\Project\temp.cpp(33) : error C2664: 'createList' : cannot convert parameter 1 from 'struct node ** ' to 'struct node *'
内容概要:本文研究油浸式变压器在不同气候条件下的能量极限问题,通过Matlab代码实现建模与仿真,深入分析环境温度、湿度等气候因素对变压器热稳定性、负载能力及运行安全性的影响,进而确定其在多种工况下的最大能量承载极限。研究采用多智能体方法提升模型的适应性与仿真精度,综合考虑热平衡方程与环境参数输入,旨在为变压器的设计优化、容量规划、动态负载管理及智能电网中的可靠性分析提供科学依据和技术支撑。; 适合人群:具备电力系统基础知识和Matlab编程能力,从事电气工程、能源系统仿真、电力设备设计等相关领域的科研人员与工程师,特别适合研究生及工作1-5年的专业技术人才; 使用场景及目标:①评估油浸式变压器在极端气候环境下的安全运行边界;②优化变压器的负载调度与能效管理策略;③支持智能电网背景下设备级动态容量规划与韧性电网建设;④为高可靠性供电系统的设计与运维提供理论参考; 阅读建议:学习者应结合提供的Matlab代码深入理解建模流程,重点掌握热传导模型构建、环境变量设定、多智能体协同机制及仿真参数调优方法,并通过调整气候条件进行多场景仿真实验,以深化对变压器能量极限形成机理的认知。
内容概要:本文系统研究了基于开关电容器的级联多电平逆变器在布尔PWM控制技术下的工作特性与仿真实现,深入分析该拓扑结构的工作原理、电容电压自平衡能力及其对输出波形质量的优化作用。通过Simulink平台构建完整的系统仿真模型,验证布尔PWM控制策略在抑制谐波畸变、提升直流电压利用率和改善输出电压精度方面的有效性,进一步探讨其在高效率、高电能质量要求的电力电子变换系统中的应用潜力,为新型多电平逆变器的设计与控制提供理论依据与技术支撑。; 适合人群:电气工程、自动化、电力电子与电力传动等相关专业的高校本科生、研究生,从事新能源发电、电机驱动及电力系统仿真的科研人员,以及具备MATLAB/Simulink基础并希望深入理解先进PWM控制技术的工程技术人员。; 使用场景及目标:①掌握开关电容器型级联多电平逆变器的结构优势与运行机理;②理解布尔PWM控制的基本原理及其在多电平调制中的独特优势;③通过Simulink仿真实践,掌握控制模型搭建、参数整定与仿真结果分析方法;④为开展高性能逆变器相关课题研究或实际工程项目提供可复现的技术参考与设计思路。; 阅读建议:建议读者结合Simulink模型进行同步操作,重点关注布尔逻辑调制信号的生成方式、开关器件的驱动时序设计及电容电压动态响应特性,对比传统载波PWM等调制方法的性能差异,深入理解控制策略对系统稳态与动态性能的影响。同时可进一步拓展学习空间矢量PWM(SVPWM)、最近电平逼近(NLC)等其他先进调制技术,以全面掌握多电平逆变器的控制体系。

70,039

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧