Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Cho hỏi cách tìm danh sách theo điểm trong code sau!

  1. #1
    Ngày gia nhập
    05 2008
    Nơi ở
    Vĩnh Phúc
    Bài viết
    6

    Mặc định Cho hỏi cách tìm danh sách theo điểm trong code sau!

    Tôi có đoạn code sau mong các bạn viết cho hàm tìm kiếm học sinh theo điểm.


    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <alloc.h>
    #include <string.h>
    typedef struct SV
    {
    	char ht[30];
    	float dtb;
    	struct SV *next;
    }Sinhvien;
    
    Sinhvien *pdau= NULL;
    void tao_ds()
    {
    	char ht	[30];
    	float diem;
    	Sinhvien *p;
    	printf("Tao danh sach lien ket dong !\n");
    	do
    	{
    		fflush(stdin);
    		printf("Ho ten: "); gets(ht);
    		if(ht[0] !=0) //da nhap ten sinh vien
    		{
    			if(pdau ==NULL)
    			{
    			   pdau = (Sinhvien*)malloc(sizeof(Sinhvien));
    			   p = pdau;
    			}
    			else
    			{
    				p->next = (Sinhvien*)malloc(sizeof(Sinhvien));
    				p = p->next;
    			}
    			//day du lieu vao ptu moi dc tao
    			strcpy(p->ht, ht);
    			printf("Diem trung binh: "); scanf("%f", &diem);
    			p->dtb = diem;
    			p->next = NULL;
    		}
    	}while(ht[0]!=0);
    }
    
    void in_ds()
    {
    	int stt = 1;
    	Sinhvien *p;
    	printf("Danh sach sinh vien\n");
    	printf("STT		   Ho ten		Diem TB\n");
    	p= pdau;
    	while(p!= NULL)
    	{
    		printf("%d		%s		%6.2f\n", stt, p->ht, p->dtb);
    		p = p->next;
    		stt++;
    	}
    }
    
    Sinhvien search(char *ht)
    {
    	Sinhvien *p, result={"",0.0};
    	p = pdau;
    	while(p != NULL)
    	{
    		if(strcmp(p->ht, ht)==0)
    		{
    			return *p;
    		}
    		p= p->next;
    	}
    	return result;
    }
    void insert(char ht[])
    {
    	Sinhvien *p, *q, *kq;
    	char ten[30];
    	float dtb;
    	//nhap thong tin sv can them
    	q = (Sinhvien*)malloc(sizeof(Sinhvien));
    	printf("Ho ten:"); fflush(stdin); gets(ten);
    	strcpy(q->ht, ten);
    	printf("Diem TB:"); scanf("%f",&dtb);
    	q->dtb = dtb;
    	//ket thuc nhap tt sv
    	p = pdau;
    	kq = NULL;
    	while(p != NULL)
    	{
    		if(strcmp(p->ht, ht)==0)
    		{
    			kq = p;
    			break;
    		}
    	p = p->next;
    	}
    	//insert
    	if(kq==NULL)
    		printf("Khong tim thay vi tri chen\n");
    	else
    	{
    		if(kq->next ==NULL)
    		{
    			kq->next = q;
    			q->next = NULL;
    		}
    		else
    		{
    			q->next = kq->next;
    			kq->next = q;
    		}
    		printf("Inserted !!!");
    
    	}
    	free(q);
    }
    
    void xoa(char ht[])
    {
    	Sinhvien *p, *q;
    	int kt = 0;
    	p=pdau;
    	if(strcmp(p->ht, ht) ==0)
    	{
    		q = pdau;
    		pdau = p->next;
    		free(q);
    	}
    	else
    	{
    		p=pdau; q=p->next;
    		while(q!=NULL)
    		{
    			if(strcmp(q->ht, ht)==0)//tim thay
    			{
    				kt = 1;
    				break;
    			}
    			p= p->next;
    			q= q->next;
    		}
    		if(kt != 0)
    		{
    			p->next = q->next;
    			free(q);
    		}
    		else
    		{
    			printf("Khong tim thay sv can xoa !");
    		}
    	}
    }
    void main()
    {
    	Sinhvien kq;
    	char *s;
    	clrscr();
    	tao_ds();
    	in_ds();
    	//test function search(s);
    	printf("Tim kiem sinh vien: "); gets(s);
    	kq= search(s);
    	if(strcmp(kq.ht,"")==0)
    	{
    		printf("Khong tim thay");
    	}
    	else
    	{
    		printf("Ket qua: SV %s co diemtb = %.2f", kq.ht, kq.dtb);
    	}
    	//test function insert(s);
    	printf("\nInsert vao sau sinh vien nao? ");fflush(stdin); gets(s);
    	insert(s);
    	//test function xoa(s);
    	printf("\nDelete sinh vien nao? ");fflush(stdin); gets(s);
    	xoa(s);
    	in_ds();
    
    	getch();
    	}

  2. #2
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    PHP Code:
    SinhvienSearch(float diem)
    {
        
    Sinhviencurrent;
        if(
    pdau==NULL)
            return;
        else
        {
            
    current=pdau;
            while(
    current->next!=NULL)
            {
                if(
    current->dtb==diem)
                    return 
    current;
                
    current=current->next;
            }
        }
        

    có thể làm như trên đây thử xem
    Cánh Chym ứ mỏi

  3. #3
    Ngày gia nhập
    05 2008
    Nơi ở
    Vĩnh Phúc
    Bài viết
    6

    Mình thử mà vẫn ko hiệu quả. Bạn có thể lắp code của bạn vào code của mình ko?
    C là gì? C là cố. Mà cố quá = quá cố ->

Các đề tài tương tự

  1. Tại sao lại bỏ Store Proceduce nếu code theo hướng Code First trong MVC3
    Gửi bởi rogerminh2401 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 5
    Bài viết cuối: 02-11-2012, 08:22 PM
  2. Nhóm danh mục con theo danh mục cha trong gridview
    Gửi bởi skullrapper trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 3
    Bài viết cuối: 27-09-2012, 03:11 PM
  3. Bài tập C++ Sắp xếp danh sách Nhân viên theo ngày sinh trong C++?
    Gửi bởi lufivuahaitac trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 23-04-2012, 02:22 PM
  4. Hàm tìm kiếm theo MSSV trong danh sách liên kết đơn?
    Gửi bởi judoka trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 08-04-2011, 08:46 PM
  5. Cách chia lớp trong danh sách Gridview theo sĩ số nhập vào
    Gửi bởi behochoi trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 29-12-2010, 03:42 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn