由c++写的c程序有错,帮改。

作者&投稿:蛮梦 (若有异议请与网页底部的电邮联系)
scrooke@hotmail.com
__________________________
表面上没有编译错误,但是程序对*和->的操作符的使用导致很多逻辑错误。

举个例子 你定义的BSTree 是一级指针,用这个定义了二级指针

而程序当中很多东西都混用了 比如说

L66-L67:

L_Rotate((*T)->lchild);
R_Rotate(T);

然后你的定义是

void L_Rotate(BSTree *p);

void R_Rotate(BSTree *p);

很显然(*T)->lchild的类型是以及指针*BSTnode (或者说是BSTree) 而你需要一个**BSTnode,这个调用显然就会出现逻辑问题

发我QQ邮箱好了 252290278
或者直接Q我

gxw1990422@yahoo.com.cn 发过来

wuwei_xhu@163.com你发来

发来瞧瞧?gcc2011@163.com

请问这个C程序哪错了?怎么改?~

for (i=1;i<=9;i+=2)
把后面的分号去掉 在c里分号代表语句结束
所以是不循环执行的

太乱了。麻烦您把题意写清楚吧,补充好了再看
还有,你这个
for(i=0;i<r;i++)
{
scanf("%d",(p+i));
}

指针p没有指向任何空间,当然会报错。

c语言:程序改错
答:int table[3][]={{1,2,3,4},{2,3,4,5},{3,4,5,6}};修改为:int table[3][4]={{1,2,3,4},{2,3,4,5},{3,4,5,6}};多维数组直接赋值时,不能省略数组的第二个下标的。rowsum(table[3][4],3);修改为 rowsum(table,3);因为定义的时候 void rowsum(int a[][4],...

C语言程序纠错。
答:printf("文章未改时的字符数是%d个!\n",countOne); //用于测试,显示字符数 / for(i = 0; i < countOne; i++) //测试字符是否写入到数组中去 { printf("%c",strOne[i]);} / for (i = 0; i < countOne; i++){ if (keyWords[0] == strOne[i])/* 判断查找单词第一...

我在编写C语言出现错误,和书上的答案不一样 !!! 要怎么修改?? 大家帮...
答:void main(){ float a,b,c,min;printf("Please input three numbers:\n");scanf("%f %f %f",&a,&b,&c);if(a<b)min=a;else min=b;if(c<min)min=c;printf("min is:%f",min);} 输入12 25 10就得到你的答案了,注意三个数之间必须为空格,要和scanf的格式一样 如果你写scanf(...

C语言编程出现的致命错误
答:建议你把输入的那一句改成下面两句:printf("Please Enter a Number:");scanf("%d",&a);2、你在声明中变量a的类型是int,但在输入时你又写成了%f,二者类型不一致,出现错误。建议要么前面声明为float a;要么后面打印的地方改成%d,二处必改之一处才行。以上两点都会使你的程序出现致命错误。

在线等高手帮我修改C语言程序设计错误!!!急!!
答:头文件#include "stdafx.h"必须放在第一位;清屏的函数也要头文件#include "conio.h";input类型是int型的,main函数也要弄成int类型的。还有 char No[100];你要定义成数组撒,基本上有错的地方都帮你弄完了,完全没错误,能实现你的功能了,分给我吧,呵呵。// 3.cpp : 定义控制台应用程序的...

c语言编程中字符串复制函数编程程序出现错误,这是怎么回事?
答:使用gets函数的时候应注意以下要素:可以无限读取,不会判断上限,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到堆栈中,破坏一个或多个不相关变量的值。这个事实导致gets函数只适用于玩具程序,为了避免这种情况,我们可以用fgets(stdin) 读取标准...

我写的C程序运行出来有错,求高手指教,在线等,速度。。。
答:include <stdio.h> int fun(char s[]){ int n=0;while(*s <= '9' && *s >='0'){ n=10*n+*s-'0';s++;} return(n);} void main(){ char s[10]={'6','1','*','4','*','9','*','0','*'};printf("%d\n",fun(s));} 不解释,错的地方有几处,都是语法...

简单C语言改错,刚开始学的,编了一个小程序就是不知道哪里有问题,不会改...
答:你的问题很多,你里边有两个函数都没有写执行体 void num_kecheng();void inputstu();这两个函数仅仅定义了,但是没有方法执行 你的flag变量定义了两次而且都没有给赋初值,你全局定义了一次局部又定义了一次。看你的代码估计就想用一个所以不要再main()函数中在定义了。我大概把问题找完了,因为...

我写用c写程序的时候出现了stay\'161'in program的错误这是什么原因...
答:第十行或前后的空行出现了全角字符,将那行删了,将输入法切换到英文重写。

C语言,线性表的,帮忙改改错,多谢啦~~~
答:只是把你用引用的参数改成指针,还有最开始的初始线表的函数改成返回表其他没改动了 C源文件:运行结果:下面的是头文件:include "stdio.h"#include "stdlib.h"#include "malloc.h"#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFASIBLE -1#define OVERFLOW -2#define ...