01/10/2018, 14:53

Mọi người giúp em với ạ! Em làm mà in ra mảng p chỉ hiện p[0], xin mọi ngời xem giúp hộ e mã code sai đâu ạ!

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void nhapcanh(int a[100000],int b[100000],int n){
	for(int i=0;i<n;i++){
		printf("  ");
		scanf("%d %d",&a[i],&b[i]);
	}
}
void prufercode(int a[100000],int b[100000],int p[100000], int n,int y,int k,int x,int j){	
	while(n!=0){
		for(int i=0;i<n;i++){
			if(a[i]==k||b[i]==k) x++;
		}
		if(x==1){
			for(int i=0;i<n;i++){
				if(a[i]==k){
					p[j]=b[i]; 
					y=i;
				}
				else if(b[i]==k){
					p[j]=a[i];
					y=i;
				}				
			}
			for(int i=0;i<n;i++){
				if(a[i]==k||b[i]==k){	
					for(int i=y;i<n;i++){
						a[i]=a[i+1];
						b[i]=b[i+1];
					}
				}		
			}
			j+=1;	
		}
		k+=1;
		n-=1;
	}
}
void xuatma(int a[100000],int n){
	for(int i=0;i<n;i++){
		printf("%5d",a[i]);
	}
	printf("
");
}
main(){
	int n,y,k=1,x=0,j=0;
	int a[100000],b[100000],p[100000];
	do{
		printf("So canh n=");
		scanf("%d",&n);	
	}while(n<=0||n>=100000);
	int m=n;	
	nhapcanh(a,b,n);
	prufercode(a,b,p,n,y,k,x,j);
	xuatma(p,m-1);
	xuatma(a,m);
	xuatma(b,m);
	getch();
	return 0;
}
Bài liên quan
0