当前位置: 代码迷 >> C语言 >> 新来的报到
  详细解决方案

新来的报到

热度:220   发布时间:2004-11-18 16:25:00.0
新来的报到

小弟初来乍到,编程菜鸟,求各位帮忙看看程序

想在线性表中插入一元素

#define MAXSIZE 1000 main() { int list[1000],result,i,n,x; printf("\nInput the number:\n"); scanf("%d",&n); printf("\nInput the array!\n"); for (i=0;i<n;i++) scanf("%d",&list[i]); printf("\ninsert the number you want to insert:\n"); scanf("%d",&x); result=sq_insert(list,n,x); {case 0: printf("\ninsert successfully!"); for(i=0;i<n;i++) printf("\n%d\n",list[i]); break; case 1: printf("error"); break; } } int sq_insert(list,*p,int i,q) int list[1000]; int j; if(i<0||i>p+1) { printf("Error"); return 1;} if(j=*p>=n-1) {printf("overflow!") return 1;} for(j<*p;j>=i;j--) list[j+1]=list[j]; list[i]=x; (*p)++; return 0; }


----------------解决方案--------------------------------------------------------

怎么不用函数啊


----------------解决方案--------------------------------------------------------

int sq_insert(list,*p,int i,q)

这不是函数吗?


----------------解决方案--------------------------------------------------------

1.已经定义了宏,在程序中就不要用1000了。这样方便修改。

2.int sq_insert(list,*p,int i,int q)函数应该写在main()函数之前或在main()函数中先声明,后调用。

3.子函数丢了大括号。

我也刚刚学习,可能有说的不对的,请谅解。


----------------解决方案--------------------------------------------------------

还是不能运行啊,哪位高手来指点一下啊


----------------解决方案--------------------------------------------------------

#include "stdio.h"

#define MAXSIZE 1000 int sq_insert(int* p,int i,int q) {

if(i<0) { printf("Error"); return 1; }

if(i>MAXSIZE-1) { printf("overflow!"); return 1; }

for(;i>=0;i--) p[i]=p[i-1]; p[0]=q; return 0;

}

void main() { int list[MAXSIZE],result,i,n,x; printf("\nInput the number:\n"); scanf("%d",&n); printf("\nInput the array!\n"); for (i=0;i<n;i++) scanf("%d",&list[i]); printf("\ninsert the number you want to insert:\n"); scanf("%d",&x); result=sq_insert(list,n,x); switch(result) {case 0: printf("\ninsert successfully!"); for(i=0;i<n+1;i++) printf("\n%d\n",list[i]); break; case 1: printf("error"); break; } } 我不太知道是如何将一个数插入到线形表的,是否是将其插入到数组的第一个位置,你的源程序好像是这个思,如果我理解的正确,上面的程序就可以运行,这是在C++下通过上机验证的,你可以对照一下;要弄清楚函数调用的参数。


----------------解决方案--------------------------------------------------------
  相关解决方案