请大家帮帮我 2

ML20 2002-04-13 11:42:12
我是一名会计专业的大二学生,今年初对计算机产生了浓厚的兴趣,刚刚学完C语言,现在正在学数据结构,不知怎么学.只知道把书中的伪代码改成C代码上机执行.可是改后的总是出毛病,这不,又错了.我想用showlist()显示表中的值,用getelem()获得第N个值,可是不对.请大家帮我看看.
#include <stdio.h>
#include <stdlib.h>

struct lnode{
int data;
struct lnode * next;
};

void getelem(struct lnode *li,int i,int *e);
void showlist(struct lnode *li);
void createlist(struct lnode *li,int n);

int main(){
struct lnode lin;
int n;
int e;
int c;

printf("\nHow many members do you want:");
scanf("%d",&n);

createlist(&lin,n);
showlist(&lin);

printf("\nWhich value you want to got:");
scanf("%d",&c);

getelem(&lin,c,&e);
printf("\nThe value is %d.",e);

getchar();
getchar();

return 0;
}

void getelem(struct lnode *li,int i,int *e){
struct lnode *pl;
register int j;

pl=li->next;
j=1;

while(pl&&j<i){
pl=pl->next;
++j;
}

*e=pl->data;
}

void showlist(struct lnode *li){
struct lnode * se;
se=li->next;

printf("\n");
while(se){
printf("%d\t",se->data);
se=se->next;
}
} /*showlist*/

void createlist(struct lnode *li,int n){
register int i;
struct lnode *p;

li=(lnode *)malloc(sizeof(lnode));
li->next=NULL;

for(i=n;i>0;--i){
p=(lnode *)malloc(sizeof(lnode));
printf("\nNow enter the value of this member:");
scanf("%d",&(p->data));
p->next=li->next;
li->next=p;
}

} /*createlist*/
...全文
43 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mthcy 2002-04-13
  • 打赏
  • 举报
回复
介绍一本书,《数据结构(c语言版)》清华大学出版社的,这样你就
不用看伪码了。
Ordie 2002-04-13
  • 打赏
  • 举报
回复
如果用C的编译器编译你的代码会出现错误,因为createlist函数中几处
lnode*前面都没有加上struct关键字。我把代码改成了可以运行的版本,
在vc上通过了,可能对你有用。还有几点应该注意:
1 分配内存的操作一定要判断返回值。
2 对于象getelem这样的函数只要返回一个int值就可以,传递e的地址
这种方法比较麻烦。


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

struct lnode{
int data;
struct lnode * next;
};

void getelem(struct lnode *li,int i,int *e);
void showlist(struct lnode *li);
struct lnode *createlist(int n);

int main()
{
struct lnode *lin;
int n;
int e;
int c;

printf("\nHow many members do you want:");
scanf("%d",&n);

lin = createlist(n);
showlist(lin);

printf("\nWhich value you want to got:");
scanf("%d",&c);

getelem(lin,c,&e);
printf("\nThe value is %d.",e);

getchar();
getchar();

return 0;
}

void getelem(struct lnode *li,int i,int *e)
{
struct lnode *pl=li;
/* register int j;

pl=li->next;
j=1;

while(pl&&j<i){
pl=pl->next;
++j;
}

*e=pl->data;*/
int j=0;
while (pl!=NULL)
{
j++;
if (i==j) *e=pl->data;
pl = pl->next;
}
}

void showlist(struct lnode *li)
{
struct lnode *se=NULL;
for (se=li; se!=NULL; se=se->next)
printf("%d\t", se->data);
} /*showlist*/

struct lnode *createlist(int n)
{
register int i;
struct lnode *p=NULL, *li=NULL, *pCur=NULL;

for(i=n;i>0;--i)
{
p=(struct lnode *)malloc(sizeof(struct lnode));
if (p==NULL)
{
printf("memory allocate error!");
return NULL;
}
printf("\nNow enter the value of this member:");
scanf("%d",&(p->data));
p->next=NULL; //到这里新分配的p节点已经准备就绪
if (i==n) {li = pCur = p;} //如果是第一个则将它
//赋给li(头指针)
else
{//如果不是第一个则把p赋给pCur(当前指针,总是指向
//最后一个结点)的指针域,这时p成为最后一个结点,
//所以再把pCur指向p即可。
pCur->next = p;
pCur = p;
}
}
return li;
} /*createlist*/
rty 2002-04-13
  • 打赏
  • 举报
回复
这不是线性链表吗,我去试试
小白利用PHP+MYSQL+HTML做的期末小项目,做的不好大家勿喷,还多多指正。 用的是以前模仿做的HTML淘宝网静态页面,接连上数据库加入图片和信息,实现后台与前端的连接,实现了增删改查功能美化做的不好还大家勿喷。呜呜呜,做了很久也只能实现这样一个效果了,要是有大神希望帮帮我改改项目,静态页面的美化会做,但是连接上PHP数据库后出来的一个效果如何美化就不知道如何才能实现了,希望有大佬教教我,可以看看我的整体一个作品,至少基础功能都可以实现,里面还放了几张同学的照片哈哈哈,皮一下,看到了不要骂我宝贝……最后一个重中之重,如何美化界面还大神指点啊哈哈哈哈…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
基于双环控制的三相SVPWM逆变器研究的仿真有问题求助-threestandalone.mdl 参照相关文献,对基于双环的三相SVPWM逆变器独立运行的控制策略已经了解,系统采用LC滤波器,参数已选好。逆变器为三相半桥逆变器。控制系统为电压外环电流内环,从三相电压、电流所采来的信号进行3-2变换至dq坐标系下进行控制,且两个坐标之间要进行解耦;控制器的输出信号(在dq坐标系下)要进行2s-2r变换至alpha beta坐标系进入SVPWM模块(自己搭建的,没有问题)产生开关管信号。坐标变换中的角度给定位100*pi*t(t为系统仿真过程时间)。各环节应该没有原理性错误,坐标变换矩阵应该也没有问题(根据前后幅值不变的原则进行变换)。仿真模型与输出电压波形如图示: 00001.JPG 00002.JPG 如图所示,输出电压的幅值、频率没有问题,就是相位不对,黄线为A相,其他依次类推,比期望的超前了0.005s。是哪里的问题呢?? 如何调节才能使相位满足要求??!!!!! 补充:控制系统中d轴给定即输出电压的幅值311,q轴给定为0。参考文献已上传,大家可以参考。希望大家给出建设性意见或者建议,为了给大家参考,我把模型贴出来供大家分享吧,大家可以看系统解耦,跟控制环路有没有问题!.==|  大家可以加我qq:283893272 ,希望大家多帮帮我。。谢谢了!!

69,372

社区成员

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

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