Hỏi đáp lỗi trong vòng lặp switch????

Thảo luận trong 'Lập trình máy tính' bắt đầu bởi conloc171, 24 Tháng mười một 2011.

  1. Offline

    conloc171

    • Thành Viên Mới

    Số bài viết:
    29
    Đã được thích:
    2
    Điểm thành tích:
    0
    Đây là code bài ds số nguyên của em :
    Dùng vòng lặp switch thì bị báo lỗi call of nonfunction. Mọi người sửa giúp em cái, sắp nộp bài tổng hợp rồi. có bài đầy đủ cho em luôn thì càng tốt. Hihihihi.....:-*
    Mã:
    #include<conio.h>
    #include<stdio.h>
    #include<iostream.h>
    
    
    #define dodai 100 type int kieu;
    int n;
    int a[100];
    
    
    void nhap(int a[], int n)
    {
        for(int i=1;i<=n;i++)
        {
            printf("\nPhan tu thu a[%d]:",i);
            scanf("%d",&a[i]);
        }
    }
    
    
    void xuat(int a[], int n)
    {
        for(int i=1;i<=n;i++)
        {
           printf("%5d",a[i]);
        }
    }
    
    
    void  chon(int a[], int n)
    {int i,x,m,j;
    for(i=1;i<n;i++)
        {int m=i;
            for(int j=i+1;j<=n;j++)
                if(a[j]<a[m]) m=j;
        if(m!=i)
            { x=a[i]; a[i]=a[m]; a[m]=x;}
        }
    return;
    }
    
    
    void chen(int a[], int n)
    {int j;
        for(int i=2;i<=n;i++)
        {int x=a[i];j=i-1;
            while(x<a[j])
            {    a[j+1]=a[j];
                j--;}
            a[j+1]=x;
            }
        return;
    }
    
    
    void swap(int *c,int *d)
    {int a;
            a=*c;
            *c=*d;
            *d=a;
    return;
    }
    
    
    void noibot(int a[], int n)
    {for(int i=1;i<=n-1;i++)
        for(int j=n;j>=i+1;j--)
            if(a[j]<a[j-1]) 
                swap(&a[j],&a[j-1]);
        return;
    }
    
    
    void Quick_Sort(int a[], int left, int right)
    {    if(left<right)
            {int i=left;int j=right;int x=a[(left+right)/2];
            do { while(a[i]<x) i++;
                   while(a[j]>x) j--;
                   if(i<=j){swap(&a[i],&a[j]);i++;j--;}
           }while(i<=j);
           Quick_Sort(a,left,j);
           Quick_Sort(a,i,right);
        }
    }
    
    
    void main()
    {
        int n,x,p,q,left,right;
        {    
        int chon;
            do
                  {    
            clrscr();
            cout<<"Danh sach dat so nguyen:";      
                        cout<<"\nMENU:  \n";
                        cout<<"    1. Nhap DS\n";
                       cout<<"    2. In DS\n";
                        cout<<"    3. SX chon\n";
                        cout<<"    4. SX chen\n";
            cout<<"    5. SX noi bot\n";
            cout<<"    6. SX nhanh\n";
                        cout<<"    7. Thoat\n";
                        cout<<"Nhap lua chon:   ";cin>>chon;
            switch(chon)
            {
            case 1:
                clrscr();
                printf("\nnhap so luong phan tu:");
                scanf("%d",&n);
                nhap(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU! ";
                                getch();
                                break;
            case 2:    
                clrscr();
                printf("\ndanh sach vua tao:\n");
                xuat(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU! ";
                                getch();
                                break;
    
    
            case 3:
                clrscr();
                printf("\nDS sau khi SX chon:\n");
                chon(a,n);      báo lỗi tại đây
                xuat(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU!";
                getch();
                break;
            case 4:
                clrscr();
                printf("\nDS sau khi SX chen:\n");
                chen(a,n);
                xuat(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU!";
                getch();
                break;
            case 5:
                clrscr();
                printf("\nDS sau khi SX noi bot:\n");
                noibot(a,n);
                xuat(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU!";
                getch();
                break;
            case 6:
                int left,right;
                clrscr();
                printf("\nDS sau khi SX nhanh:\n");
                Quick_Sort(a,left,right);
                xuat(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU!";
                getch();
                break;
                default:break;
            }
        }while(chon!=7);
        return;
        }
    }
  2. Offline

    hongoctrien

    • Friends

    Số bài viết:
    2.449
    Đã được thích:
    2.464
    Điểm thành tích:
    2.431
    Bạn đã có 1 hàm chon()
    Bạn khai báo tiếp 1 biến với tên là chon cho lệnh switch nữa.

    Bạn thay hàm chon() thành một tên khác hoặc đổi tên biến chon thành tên gọi khác.

    Mã:
    #include<conio.h>
    #include<stdio.h>
    #include<iostream.h>
    
    
    
    
    #define dodai 100 type int kieu;
    int n;
    int a[100];
    
    
    
    
    void nhap(int a[], int n)
    {
        for(int i=1;i<=n;i++)
        {
            printf("\nPhan tu thu a[%d]:",i);
            scanf("%d",&a[i]);
        }
    }
    
    
    
    
    void xuat(int a[], int n)
    {
        for(int i=1;i<=n;i++)
        {
           printf("%5d",a[i]);
        }
    }
    
    
    
    
    void  chon(int a[], int n)
    {int i,x,m,j;
    for(i=1;i<n;i++)
        {int m=i;
            for(int j=i+1;j<=n;j++)
                if(a[j]<a[m]) m=j;
        if(m!=i)
            { x=a[i]; a[i]=a[m]; a[m]=x;}
        }
    return;
    }
    
    
    
    
    void chen(int a[], int n)
    {int j;
        for(int i=2;i<=n;i++)
        {int x=a[i];j=i-1;
            while(x<a[j])
            {    a[j+1]=a[j];
                j--;}
            a[j+1]=x;
            }
        return;
    }
    
    
    
    
    void swap(int *c,int *d)
    {int a;
            a=*c;
            *c=*d;
            *d=a;
    return;
    }
    
    
    
    
    void noibot(int a[], int n)
    {for(int i=1;i<=n-1;i++)
        for(int j=n;j>=i+1;j--)
            if(a[j]<a[j-1]) 
                swap(&a[j],&a[j-1]);
        return;
    }
    
    
    
    
    void Quick_Sort(int a[], int left, int right)
    {    if(left<right)
            {int i=left;int j=right;int x=a[(left+right)/2];
            do { while(a[i]<x) i++;
                   while(a[j]>x) j--;
                   if(i<=j){swap(&a[i],&a[j]);i++;j--;}
           }while(i<=j);
           Quick_Sort(a,left,j);
           Quick_Sort(a,i,right);
        }
    }
    
    
    
    
    void main()
    {
        int n,x,p,q,left,right;
        {    
        int ch;
            do
                  {    
            clrscr();
            cout<<"Danh sach dat so nguyen:";      
                        cout<<"\nMENU:  \n";
                        cout<<"    1. Nhap DS\n";
                       cout<<"    2. In DS\n";
                        cout<<"    3. SX chon\n";
                        cout<<"    4. SX chen\n";
            cout<<"    5. SX noi bot\n";
            cout<<"    6. SX nhanh\n";
                        cout<<"    7. Thoat\n";
                        cout<<"Nhap lua chon:   ";cin>>ch;
            switch(ch)
            {
            case 1:
                clrscr();
                printf("\nnhap so luong phan tu:");
                scanf("%d",&n);
                nhap(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU! ";
                                getch();
                                break;
            case 2:    
                clrscr();
                printf("\ndanh sach vua tao:\n");
                xuat(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU! ";
                                getch();
                                break;
    
    
    
    
            case 3:
                clrscr();
                printf("\nDS sau khi SX chon:\n");
                chon(a,n);  
                xuat(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU!";
                getch();
                break;
            case 4:
                clrscr();
                printf("\nDS sau khi SX chen:\n");
                chen(a,n);
                xuat(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU!";
                getch();
                break;
            case 5:
                clrscr();
                printf("\nDS sau khi SX noi bot:\n");
                noibot(a,n);
                xuat(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU!";
                getch();
                break;
            case 6:
                int left,right;
                clrscr();
                printf("\nDS sau khi SX nhanh:\n");
                Quick_Sort(a,left,right);
                xuat(a,n);
                cout<<"\nBam 1 phim bat ki de tro ve MENU!";
                getch();
                break;
                default:break;
            }
        }while(ch!=7);
        return;
        }
    }
    
    conloc171 thích bài này.
  3. Offline

    integer

    • Tiếu Ngạo Giang Hồ

    • :-?
    Số bài viết:
    1.695
    Đã được thích:
    1.313
    Điểm thành tích:
    900
    Switch không phải vòng lặp, trừ khi dùng goto. switch là câu lệnh điều kiện.
    conloc171 thích bài này.
  4. Offline

    conloc171

    • Thành Viên Mới

    Số bài viết:
    29
    Đã được thích:
    2
    Điểm thành tích:
    0
    Cám ơn 2 anh, em đã sửa được rồi>:D
  5. Offline

    hondacodon_vh

    • Thành Viên Mới

    Số bài viết:
    3
    Đã được thích:
    0
    Điểm thành tích:
    0
    Do chú đặt biến int chon trừng với hàm void chon() ko lỗi mới lạ đó. sửa lại tên khác đi

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí