Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Giúp minh sắp xếp tên theo alphabel sử dụng mảng cấu trúc con trỏ

    Mình đang bí ở phần sắp xếp tên theo alphabel, mong mọi người có thể gợi ý hoặc sửa sai giúp mình, mình xin cảm ơn


    Mã:
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    
    struct Canbo{
           char ho[8];
           char ten[8];
           char diachi[20];
           float luong;
           int tuoi;
           
           
    };
    
    void nhapCB(Canbo *cb)
    {
    	printf("Nhap ho va ten dem : ");
    	gets(cb->ho);
    	printf("Nhap  ten : ");
    	gets(cb->ten);
    	fflush(stdin);
    	printf("Nhap dia chi : ");
    	gets(cb->diachi);
    	fflush(stdin);
    	printf("Nhap luong :  ");
    	scanf("%f",&cb->luong);
    	printf("Nhap tuoi :  ");
    	scanf("%d",&cb->tuoi);
    	
    	fflush(stdin);
    	
    }
    void xuatCB(Canbo *cb)
    {
    	
    	printf("%s %s | %f | %d  | %s  |
    ",cb->ho,cb->ten,cb->luong,cb->tuoi,cb->diachi);
    	
    }
    void nhapDSCB(Canbo *pcb,int n)
    {
    	for(int i=0;i<n;i++)
    	{
    		nhapCB(pcb+i);
    	}
    }
    void xuatDSCB(Canbo *pcb,int n)
    {	
    	printf("STT |Ho Va Ten| Luong | Tuoi  | Dia Chi  |
    ");
    	for(int i=0;i<n;i++)
    	{
    	
    		printf("%d|",i+1);
    		xuatCB(pcb+i);
    	}
    }
    Canbo swap(Canbo *a,Canbo *b) 
    {
    	Canbo *temp= (Canbo *)malloc(100*sizeof(Canbo));  
    	*temp=*a;
    	*a=*b;
    	*b=*temp;
    }
    void sapxep(Canbo *psv, int n)
    {
    	
    	for (int i = 1; i < 8; i++) 
    	{
          for (int j = 1; j < 8; j++) 
    	  {
             if (strcmp((psv+j-1)->ten,(psv+j)->ten )> 0) 
    		 {
                swap((psv+j-1),(psv+j));
             }
          }
       }
    }
    int main()
    {
    	int n;
    	Canbo *pcb;
    	Canbo *cb=(Canbo*)malloc(sizeof(Canbo));
    
    	int chon;
    	
    	
    	do{
    		printf("
    1. Nhap 1 cb");
    		printf("
    2. Nhap ds cb");
    		printf("
    3. sap xep sv");
    		printf("
    ");
    	
    		scanf("%d",&chon);
    		fflush(stdin);
    		switch(chon)
    		{	
    		case 1:
    			
    			nhapCB(cb);
    			xuatCB(cb);
    			break;
    		
    		case 2:
    			printf("
    Nhap so luong sv");
    			scanf("%d",&n);	
    			pcb=(Canbo*)malloc(n*sizeof(Canbo));
    			fflush(stdin);
    			nhapDSCB(pcb,n);
    			xuatDSCB(pcb,n);
    			break;
    		
    		case 3:
    			sapxep(pcb,n);
    			xuatDSCB(pcb,n);
    			break;
    		
    		
    		
    		}
    	}while(chon<10);
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Phần sắp xếp của bạn chưa được vì đoạn code sau
    Mã:
    for (int i = 1; i < 8; i++) 
          for (int j = 1; j < 8; j++)
    Bạn sửa lại 8 thành n nhé.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •