user-0 提问: c语言运行问题

回复:
user: user-1
content: 先编译，再运行 gcc *.c  ./a.out 如果是在windows上面，会有开发环境的，它为你提供了编译和执行的按钮

user: user-2
content: 引用 5 楼 adusuccessfully 的回复: #include "stdio.h" #include "stdlib.h" #define MAXSIZE 100 typedef  int  ElemType;  typedef  struct {   	ElemType elem[MAXSIZE];    	/*数组域*/ 	int  length;               	 /*线性表长域*/ } Sqlist;                    	 /*结构体类型名*/   void outlin(Sqlist s);  	    /*此处参数必须与下边函数说明一致*/ void creat( Sqlist *v); void insert(Sqlist *v,int i,int x); void del(Sqlist *v,int i);  void main( ) {   	Sqlist pz; 	int i,y,cord; 	do  	{   		printf("\n      主菜单   \n")  ; 		printf("    1   建立线性表  \n"); 		printf("    2   插入一个元素 \n"); 		printf("    3   删除一个元素 \n");  		printf("    4   结束程序运行 \n"); 		printf("-----------------------------\n"); 		printf(" 请输入您的选择(1， 2， 3， 4) "); 		scanf("%d",&cord);  		switch (cord) 		{   			case 1: 				{   					creat(&pz); outlin(pz); 				} break; 			case 2: 				{   					printf("\n 请输入插入的位置 i ，数据 x ："); 					scanf("%d%d",&i,&y); 					insert(&pz,i,y); 					outlin(pz); 				} break; 			case 3 : 				{  					printf("\n 请输入删除的位置 i:"); scanf("%d",&i); 					del(&pz,i);   					outlin(pz); 				}  break; 			case 4 :  				exit(0); 		} 	} while (cord<=4 ); } /*  main  end  */   void  outlin(Sqlist s) {   	int  i,j; 	for (i=1; i<=s.length; i++) 	printf("\n %2d  %6d",i,s.elem[i]); } /* outlin  end */   void  insert(Sqlist *v,  int i,  ElemType x) {  	int j; 	if((i<0)||(i>v->length))    		printf("\n   Error！"); /*插入位置出错*/ 	else  	{ /* 向后移动数据元素 */ 		for (j=v->length-1; j>=i; j--)   			v->elem[j+1]=v->elem[j]; 		v->elem[j]=x;              	/*插入元素*/ 		v->length ++;              	/*线性表长度加1*/ 	} }  /*  insert end   */  void del(Sqlist *v,int i) {  	int j; 	if ((i<0) || (i > v->length-1))  		printf("\n  Not exist!"); 	else   	{  /* 向前移动数据元素 */ 		for (j=i;j< v->length-1;j++) 			v->elem[j]=v->elem[j+1]; 		v->length--;  /* 线性表长度减1  */ 	} } /*  delete  end  */  void creat(Sqlist *v) {   	int  i,j; 	printf("\n n= "); scanf("%d",&(v->length)); 	for(i=0; i<v->length; i++)   	{   		printf("\n data= "); 		scanf("%d",&(v->elem[i])); 	}  }   /*  creat  end  */   1、楼主的delete函数与关键字delete相同，应换一个函数名； 2、楼主的main函数应有返回值类型，无返回值也要有void； 3、楼主的程序有缩进换行的话，会易读些……  小问题：  void  outlin(Sqlist s) { 	int  i, j; 	//for (i = 1; i <= s.length; i++) 	//	printf("\n %2d  %6d", i, s.elem[i]); 	for (i = 1; i <= s.length; i++) 		printf("\n %2d  %6d", i, s.elem[i - 1]); } /* outlin  end */

user: user-3
content: #include "stdio.h" #include "stdlib.h" #define MAXSIZE 100 typedef  int  ElemType;  typedef  struct {   	ElemType elem[MAXSIZE];    	/*数组域*/ 	int  length;               	 /*线性表长域*/ } Sqlist;                    	 /*结构体类型名*/   void outlin(Sqlist s);  	    /*此处参数必须与下边函数说明一致*/ void creat( Sqlist *v); void insert(Sqlist *v,int i,int x); void del(Sqlist *v,int i);  void main( ) {   	Sqlist pz; 	int i,y,cord; 	do  	{   		printf("\n      主菜单   \n")  ; 		printf("    1   建立线性表  \n"); 		printf("    2   插入一个元素 \n"); 		printf("    3   删除一个元素 \n");  		printf("    4   结束程序运行 \n"); 		printf("-----------------------------\n"); 		printf(" 请输入您的选择(1， 2， 3， 4) "); 		scanf("%d",&cord);  		switch (cord) 		{   			case 1: 				{   					creat(&pz); outlin(pz); 				} break; 			case 2: 				{   					printf("\n 请输入插入的位置 i ，数据 x ："); 					scanf("%d%d",&i,&y); 					insert(&pz,i,y); 					outlin(pz); 				} break; 			case 3 : 				{  					printf("\n 请输入删除的位置 i:"); scanf("%d",&i); 					del(&pz,i);   					outlin(pz); 				}  break; 			case 4 :  				exit(0); 		} 	} while (cord<=4 ); } /*  main  end  */   void  outlin(Sqlist s) {   	int  i,j; 	for (i=1; i<=s.length; i++) 	printf("\n %2d  %6d",i,s.elem[i]); } /* outlin  end */   void  insert(Sqlist *v,  int i,  ElemType x) {  	int j; 	if((i<0)||(i>v->length))    		printf("\n   Error！"); /*插入位置出错*/ 	else  	{ /* 向后移动数据元素 */ 		for (j=v->length-1; j>=i; j--)   			v->elem[j+1]=v->elem[j]; 		v->elem[j]=x;              	/*插入元素*/ 		v->length ++;              	/*线性表长度加1*/ 	} }  /*  insert end   */  void del(Sqlist *v,int i) {  	int j; 	if ((i<0) || (i > v->length-1))  		printf("\n  Not exist!"); 	else   	{  /* 向前移动数据元素 */ 		for (j=i;j< v->length-1;j++) 			v->elem[j]=v->elem[j+1]; 		v->length--;  /* 线性表长度减1  */ 	} } /*  delete  end  */  void creat(Sqlist *v) {   	int  i,j; 	printf("\n n= "); scanf("%d",&(v->length)); 	for(i=0; i<v->length; i++)   	{   		printf("\n data= "); 		scanf("%d",&(v->elem[i])); 	}  }   /*  creat  end  */   1、楼主的delete函数与关键字delete相同，应换一个函数名； 2、楼主的main函数应有返回值类型，无返回值也要有void； 3、楼主的程序有缩进换行的话，会易读些……

user: user-4
content: 楼主来干嘛的

user: user-0
content: 不是本人做的，是一道作业，怎么运行啊。

user: user-5
content: 这是你自己写的代码吗？

user: user-0
content: 运行出来怎么做啊

user: user-6
content: 链表的创建以及增删改，供参考！ 链表的“增删改”  #include <stdio.h> #include <stdlib.h> struct node*creat(struct node *head); void Output(struct node *head); void Insert(struct node *head,int k); void Delete(struct node *head,int j); void Replace(struct node *head,int n); struct node {  	int data; 	struct node *next; }; int main(){      int a,b,c,d; 	struct node *head; 	head=NULL;   	head=creat(head);//新建链表 	Output(head);   	do{ 		printf("\n"); 		printf("请选择您要进行的操作：\n"); 		printf("----------------------------------------\n"); 		printf("1.添加新结点\n"); 		printf("2.删除结点\n"); 		printf("3.修改结点数据\n"); 		printf("4.退出\n"); 		printf("----------------------------------------\n"); 		printf("\n"); 		printf("请选择："); 		scanf("%d",&d);  	switch(d) 	{ 		case 1: 			printf("您选择了添加新结点\n"); 	       printf("请输入要插入结点位置:");//插入新结点 	       scanf("%d",&a); 	       Insert(head,a); 	       Output(head); 		   break; 		case 2: 			printf("您选择了删除结点\n"); 	       printf("请输入要删除的结点:");//删除结点 	       scanf("%d",&b); 	       Delete(head,b); 	       Output(head); 		   break; 		case 3: 			printf("您选择了修改结点数据\n"); 	       printf("请输入要修改结点的位置:");//修改结点数据            scanf("%d",&c); 	       Replace(head,c); 	       Output(head); 		   break; 		case 4: 			break; 	} 	}while(d!=4);  	//printf("\n"); 	//printf("请输入要插入结点位置:");//插入新结点 	//scanf("%d",&a); 	//Insert(head,a); 	//Output(head);  	//printf("\n"); 	//printf("请输入要删除的结点:");//删除结点 	//scanf("%d",&b); 	//Delete(head,b); 	//Output(head);   	//printf("\n"); 	//printf("请输入要修改结点的位置:");//修改结点数据 	//scanf("%d",&c); 	//Replace(head,c); 	//Output(head);  	return 0; } struct node *creat(struct node *head){  	int i,LEN; 	struct node *p,*s; 	printf("请输入链表的长度："); 	scanf("%d",&LEN); 	 	if(LEN>=1){ 		for(i=1;i<=LEN;i++){		           p=(struct node *)malloc(sizeof(struct node *)); 			 			if(head==NULL) 				s=head=p; 			printf("请输入第%d个结点中的数据：",i); 			scanf("%d",&p->data); 			p->next=NULL; 			s->next=p; 			s=p; 		} 	}return (head); } void Output(struct node *head){  	struct node *temp; 	temp=head; 	printf("新链表如下："); 	while(temp!=NULL){ 	 		printf("%d->",temp->data); 		temp=temp->next; 	} }  void Insert(struct node *head,int k){  	struct node *p1,*p2,*p3; 	int i; 	p3=p1=head; 	for(i=1;i<k;i++){ 		p1=p1->next; 	} 		for(i=1;i<k-1;i++){ 		p3=p3->next; 	} 	p2=(struct node *)malloc(sizeof(struct node)); 	printf("请输入新结点的数据："); 	scanf("%d",&p2->data); 	p2->next=p1; 	p3->next=p2; }  void Delete(struct node *head,int j){  	int i; 	struct node *p1,*p2,*p3; 	p1=p2=p3=head; 	for(i=1;i<=j;i++){ 		p2=p2->next; 	} 	/*p1->next=NULL; 	p3=p2->next; 	free(p2); 	p1->next=p3;*/  		for(i=1;i<j-1;i++){ 		p1=p1->next; 	} 			for(i=1;i<j+1;i++){ 		p3=p3->next; 	} 			p1->next=p3; 			//free(p2); }  void Replace(struct node *head,int n){  	int i,m; 	struct node *p; 	p=head; 	for(i=1;i<n;i++){ 		p=p->next; 	} 	printf("请输入该结点的新数据："); 	scanf("%d",&m); 	p->data=m; 	//free(p);  }