
append(32); 的时候,while((N>=tempvalue && templeft!=NULL) || (N<temp value && temp right
!=NULL
))
不满足,执行tempright=NewNode; 那么原来的就被right覆盖了
//已经帮你改好
#include<limitsh>
#include<stdioh>
#include<stdlibh>
int main(void)
{
int i=0,b[50],sum=0;
int count=0;
char c;
printf("实现从键盘上输入任意个数的加法器\n");
printf("请输入要求和的任意个数\n");
//注意:输入的各数据之间用一个空格分隔,最后回车结束输入
do
{
scanf("%d",&b[i]);//将键盘上输入的数赋值给对应的数组b[i]
count++; //每次循环将使变量count的值加1,count变量即为键盘上输入数的个数
sum+=b[i]; //每次循环使b[i]自加,将值赋给sum
i++; //每次循环使i自加1,保证下次循环即为输入的下一个数
scanf("%c",&c); //扫描键盘上输入的字符
}while(c!='\n'); //使c不等于换行符即回车键,扫描到\n即停止循环
printf("你总共输入了%d个数\n",count);
for(i=0;i<count;i++)
{
printf("你输入的第%d个数是:%d\n",i+1,b[i]);
}
printf("\n");
printf("具体是(");
for(i=0;i<count-1;i++)
{
printf("%d",b[i]);
printf("+");
}
printf("%d",b[count-1]);
printf(")");
printf("=");
printf("%d",sum);
printf("\n");
system("PAUSE");
return EXIT_SUCCESS;
}
正如楼下所言 int p ,定义的p是一个指向int型的指针
int (p)[10]是一个指向数组的指针 数组长度为10
假如定义成 deal(int p),传参数时要加强制类型转换: deal((int)a);
并且使用p时不能用下标,p[2][3]是错误的,因为不知道p指向的int型的长度,无法编译成(p+210+3)
必须自己写成(p+210+3)来调用
假如定义成 deal(int (p)[10])就不一样了,编译器就能知道p是一个指向长度为10的数组的指针
那么p[2][3]就能编译成(p+210+3)了
总之,C语言是很灵活的,不同的定义方式配上不同的用法,都是能得到正确的结果的
不知道这么说楼主明白了没
同样的还有多维数组对多维指针的问题,楼主可以自己类推一下
以上就是关于C语言崩溃问题,为什么会这样,如何解决全部的内容,包括:C语言崩溃问题,为什么会这样,如何解决、C程序自动崩溃、C语言指针问题,这个程序为啥崩溃等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)