Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Giúp các bé đáng thương ấy với

Gameshow “Ai Là Triệu Phú” trên VTV đang chờ đón bạn – Tải ngay!

Bán đấu giá ủng hộ từ thiện

Ngập tràn ưu đãi cho tín đồ công nghệ tại sony show 2014

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Tin tức công nghệ mới
kết quả từ 1 tới 3 trên 3
  1. #1
    thanhluan710's Avatar
    thanhluan710 vẫn chưa có mặt trong diễn đàn Rìu Chiến
    Tham gia
    Dec 2007
    Đến từ
    Thái Bình
    Bài
    1.704
    Cảm ơn
    212
    Điểm
    2.430/494 bài viết

    Default Xin mọi người trợ giúp về thuật toán trong C

    Mình gà quá mong các bạn chỉ giúp về thuật toán nếu có giải thuật thì thank rất nhiều

    Thao tác nhập các phần tử trên mảng với yêu cầu chi ra trong mảng phần tử nào là số nguyên tố số chính phương số hoàn hảov vv kiểm tra 1 số có xuất hiện trong mảng không và xuất hiện bao nhiêu lần và tại vị trí nào
    Tìn phần tử lớn nhất bé nhất lớn thứ 2 bé thứ 2 trong mảng

    Mình gà cái này lắm pro nào có thể nói rõ về giải thuật thì cảm ơn nhiều lắm
    Viết Code như Làm Thơ - Làm SEO như Viết Văn

  2. #2
    xuanhung_cntt's Avatar
    xuanhung_cntt vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Apr 2008
    Bài
    225
    Cảm ơn
    65
    Điểm
    64/46 bài viết

    Default

    PHP Code:
    //***********************************************************************//
    //  Code By XuanHung_Cntt                          //
    //***********************************************************************//
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    //Ham kiem tra  so n co phai la so nguyen to hay khong.tra ve 1 neu la nguyen to,tra ve 0 neu khong phai la nt
    int nt(int n)
    {
        
    int i,danhdau;
        
    //khoi tao ban dau: mac dinh so do la so nguyen to
        
    danhdau=1;
        
    //tim cac uoc cua n trong khoang 2 toi n div 2
        
    for (i=2;i<=(int) n/2;i++)
            if (
    n%i==0//neu i la uoc cua n thi ta gan bien danhdau=0
                
    danhdau=0;
        
    //tra lai gia tri cho ham
        
    return danhdau;
    }
    //Ham kiem tra 1 so co phai la so chinh phuong hay khong?Dung --> tra ve 1; sai--> 0
    int cp(int n)
    {
        
    int trave=0;
        
    // Neu n la so am thi ket luan luon khong phai la so chinh phuong
        
    if (n<0trave=0;
        
    // neu binh phuong cua can bac 2 cua n bang n thi ket luan do la so chinh phuong
        
    else
            if (
    pow((int)sqrt(n),2)==n)
            
    trave=1;
        return 
    trave;
    }
    // Ham sap xep mang a theo thu tu tang dan.n la so phan tu cua mang
    void sapxep(int a[],int n)
    {
        
    int i,j,tg;
        for (
    i=0;i<n-1;i++)
            for (
    j=i+1;j<n;j++)
                
    //Neu phan tu dung truoc ma lon hon phan tu dung sau thi doi choi 2 phan tu nay.
                
    if (a[i]>a[j])
                    
    //Doi cho 2 phan tu.
                    
    {
                        
    a[i]+=a[j];
                        
    a[j]=a[i]-a[j];
                        
    a[i]-=a[j];
                    }
    }
    // Ham Kiem tra so hoan hao? Dung -->1; sai-->0
    int hoanhao(int n)
    {
        
    int tong,i;
        
    //Bien tong luu tru tong cac uoc cua n.Khoi tao tong=0
        
    tong=0;
        
    //Tim uoc cua n 
        
    for (i=1;i<=(int) n/2;i++)
            
    //Neu i dung la uoc cua n thi ta cong them i vao bien tong: tong=tong+i
            
    if (n%i==0)
                
    tong+=i;
        
    //kiem tra xem tong co bang n hay ko?Dung --> return 1;sai--> return 0
        
    if (tong==n) return 1;
        else return 
    0;
    }    
    //Ham kiem tra 1 so AMSTRONG.
    int amstrong(int n)
    {    
        
    int nho,tong,bandau;
        
    //Bien ban dau dung de luu gia tri dau tien cua n, dung de so sanh voi bien tong
        
    bandau=n;
        
    //Bien tong dung luu tru tong cua cac phan tu sau khi lap phuong,khoi tao tong=0
        
    tong=0;
        
    //tinh tong lap phuong cua cac chu so.
        //n/10>0 => so nay >=10 => can phai tach tiep, toi khi so do chi la 1 chu so
        
    while ((int)n/10>0)
        {
            
    //Lay phan tu cuoi cung cua so do gan vao bien nho.VD so=13435 => phan tu cuoi cung la 5
            
    nho=n%10;
            
    //Bien tong=tong + nho ^3
            
    tong+=pow(nho,3);
            
    //loai bo phan tu cuoi cung cua so do di
            
    n=n/10;
        }
        
    // thuc hien xong doan tren tao co 0<=n<10,ta tien hanh cong them n^3 vao bien tong
        
    tong+=pow(n,3);
        
    //Neu tong=gia tri ban dau cua n thi ket luan so n ban dau la so Amstrong
        
    if (tong==bandau)
            return 
    1;
        else return 
    0;
    }
    // Thu tuc nhap vao 1 mang voi kich thuoc la n
    void input(int a[],int n)
    {
        
    int i;
        for (
    i=0;i<n;i++)
            {
                
    printf("A[%d]=",i);
                
    scanf("%d",&a[i]);
            }
    }
    //Ham chen 1 so nguyen x vao vi tri thu k (0<=k<n) trong mang gom n phan tu
    void chen(int a[],int x,int k,int n)
    {
        
    int i;
        
    //Don cac phan tu ve phia sau bat dau tu vi tri thu k toi vi tri thu n-1 (xuat phat tu 0)
        
    for (i=n;i>=k;i--)
        {
            
    a[i]=a[i-1];
           
    //     printf("a[%d]=%d , ",i,a[i]);
        
    }
        
    a[i]=x;
    }
    //Ham kiem tra 1 so xem so do co thuoc vao dayu hay ko?co-->1; khong-->0
    int kiemtra(int x,int a[],int n)
    {
        
    int i,danhdau=0;
        
    //Duyet tu dau mang toi cuoi mang
        
    for (i=0;i<n;i++)
            if (
    a[i]==xdanhdau=1;
        return 
    danhdau;
    }
    //Xuat ra man hinh mang a voi kich thuoc la n phan tu
    void output(int a[],int n)
    {
        
    int i;
        for (
    i=0;i<n;i++)
            
    printf("%d  ",a[i]);
        
    printf("\n");
    }
    //tim so lon thu 2 trong day vua nhap:tu tuong giong o tren lop to lam
    int max2(int a[],int n)
    {
        
    int max1,max2,i;
        
    max1=a[2]>a[1]?a[1]:a[2];
        
    max2=a[2]>=a[1]?a[2]:a[1];
        for (
    i=2;i<n;i++)
            {
            if (
    max2<a[i])
                {
                    
    max1=max2;
                    
    max2=a[i];
                }
            if (
    max1==max2)
                if (
    a[i]<max1)
                    
    max1=a[i];
            }
        if (
    max1==max2)
        {
            
    max1=-1;
        }
        return 
    max1;
    }
    //dem xem cac so trog day xuat hien bao nhieu lam
    // tu tuong cung giong bai o tren lop to lam
    void slxh(int a[],int n)
    {
        
    int i,dem=0,j,tg;
        for (
    i=0;i<n;i++)
            if (
    a[i]==0)
                
    dem+=1;
        if (
    dem!=0)
            
    printf("\nSo 0 Xuat Hien %d lan trong day",dem);
        for (
    i=0;i<n;i++)
            if (
    a[i]!=0)
               {
                
    dem=0;
                
    tg=a[i];
                for (
    j=i;j<n;j++)
                    if (
    a[j]==tg )
                        {
                        
    dem+=1;
                        
    a[j]=0;
                        }
                
    printf("\n%d Xuat Hien %d lan trong day",tg,dem);
                }
    }
    //Ham tim uoc chung lon nhat cua 2 so a va b
    // tu tuong: chia lay phan nguyen lien tiep cua a cho b cho toi khi phan du do =0
    int ucln(int a,int b)
    {
        
    int r;
        
    // khoi tao gia tri ban dau cho bien r= phan du cua pheo chia a cho b
        
    r=a%b;
        
    // lap, dung khi bien r =0
        
    while (r!=0)
        {
            
    a=b;
            
    b=r;
            
    //r= phan du cua phep chia a cho b
            
    r=a%b;
        }
        
    // tra lai gia tri cho ham
        
    return b;
    }
    //tim uoc chung lon nhat cua 1 mang a
    // tu tuong: tim uoc chung lon nhat cua phan tu a[1] va a[2] rui gan cho bien tam
    //sau do tim ucln cua bien tam voi a[3]
    // cu lap lai nhu tren, sau khi duyet het mang ta se thu dc ucln cau mang la gia tri cua bien tam
    int uclnmang(int a[],int n)
    {
        
    int i,tam;
        
    //khoi tao bien tam =a[0]
        
    tam=a[0];
        
    //duyet tu 1 toi phan tu cuoi cung cua day
        
    for (i=1;i<n;i++)
            {
                
    // bien tam = uoc chung lon nhat cua no voi a[i]
                
    tam=ucln(tam,a[i]);
            }
        
    // tra ve gia tri cho ham
        
    return tam;
    }

    void main()
    {
        
    int n,i,j,q,k,UC;
        
    int a[100];
        
    clrscr();
        do{
            
    printf("So Phan Tu:(<n<=100)"); scanf("%d",&n);
          }
        while (
    n<=0||n>100);
        
    input(a,n);
        
    clrscr();
        for (
    i=0;i<n;i++)
            {
                
    printf("\nA[%d]=%d  ",i,a[i]);
                if(
    nt(a[i]))
                    
    printf("  NT  ");
                else
                    
    printf("  KNT ");
                if (
    cp(a[i]))
                    
    printf("  CP  ");
                else
                    
    printf("  KCP ");
                if (
    hoanhao(a[i]))
                    
    printf("  HH  ");
                else
                    
    printf("  KHH ");
                if (
    amstrong(a[i]))
                    
    printf("  As  ");
                else
                    
    printf("  KAS ");
            }
        
    printf("\nNhap 1 so nguyen x:");scanf("%d",&q);
        do{
            
    printf("Vi tri chen (chu y: 0=<k<%d):",n);scanf("%d",&k);
        }
        while (
    k<|| k>=n);
        
    printf("\n\nDay sau khi nhap:\n");
        
    output(a,n);
        
    kiemtra(q,a,n);
        
    sapxep(a,n);
        
    printf("\nDay Sau Khi Sap Xep:\n");
        
    output(a,n);
        
    chen(a,q,k,n);n++;
        
    printf("\nDay sau khi chen them phan tu %d vao vi tri thu %d\n",q,k);
        
    output(a,n);
        if (
    max2(a,n)==-1)
            
    printf("\n\nTat ca cac phan tu vua nhap trung nhau\n          ==> khong ton tai phan tu lon thu 2 trong day");
        else
            
    printf("\n\nPhan tu lon thu 2 trong day la:%d\n\n",max2(a,n));
        
    printf("\n\nUoc chung lon nhat cua mang sau khi chen la:%d\n",uclnmang(a,n));
        
    printf("\n\nSo Lan Xuat hien cua cac so trong day vua them la:");
        
    slxh(a,n);
        
    getch();


  3. Có 1 thành viên cảm ơn xuanhung_cntt cho bài viết này:
    thanhluan710 (18-04-2009)

  4. #3
    xuanhung_cntt's Avatar
    xuanhung_cntt vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Apr 2008
    Bài
    225
    Cảm ơn
    65
    Điểm
    64/46 bài viết

    Default

    PHP Code:
    //***********************************************************************//
    //  Code By XuanHung_Cntt                          //
    //***********************************************************************//
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    //Ham kiem tra  so n co phai la so nguyen to hay khong.tra ve 1 neu la nguyen to,tra ve 0 neu khong phai la nt
    int nt(int n)
    {
        
    int i,danhdau;
        
    //khoi tao ban dau: mac dinh so do la so nguyen to
        
    danhdau=1;
        
    //tim cac uoc cua n trong khoang 2 toi n div 2
        
    for (i=2;i<=(int) n/2;i++)
            if (
    n%i==0//neu i la uoc cua n thi ta gan bien danhdau=0
                
    danhdau=0;
        
    //tra lai gia tri cho ham
        
    return danhdau;
    }
    //Ham kiem tra 1 so co phai la so chinh phuong hay khong?Dung --> tra ve 1; sai--> 0
    int cp(int n)
    {
        
    int trave=0;
        
    // Neu n la so am thi ket luan luon khong phai la so chinh phuong
        
    if (n<0trave=0;
        
    // neu binh phuong cua can bac 2 cua n bang n thi ket luan do la so chinh phuong
        
    else
            if (
    pow((int)sqrt(n),2)==n)
            
    trave=1;
        return 
    trave;
    }
    // Ham sap xep mang a theo thu tu tang dan.n la so phan tu cua mang
    void sapxep(int a[],int n)
    {
        
    int i,j,tg;
        for (
    i=0;i<n-1;i++)
            for (
    j=i+1;j<n;j++)
                
    //Neu phan tu dung truoc ma lon hon phan tu dung sau thi doi choi 2 phan tu nay.
                
    if (a[i]>a[j])
                    
    //Doi cho 2 phan tu.
                    
    {
                        
    a[i]+=a[j];
                        
    a[j]=a[i]-a[j];
                        
    a[i]-=a[j];
                    }
    }
    // Ham Kiem tra so hoan hao? Dung -->1; sai-->0
    int hoanhao(int n)
    {
        
    int tong,i;
        
    //Bien tong luu tru tong cac uoc cua n.Khoi tao tong=0
        
    tong=0;
        
    //Tim uoc cua n 
        
    for (i=1;i<=(int) n/2;i++)
            
    //Neu i dung la uoc cua n thi ta cong them i vao bien tong: tong=tong+i
            
    if (n%i==0)
                
    tong+=i;
        
    //kiem tra xem tong co bang n hay ko?Dung --> return 1;sai--> return 0
        
    if (tong==n) return 1;
        else return 
    0;
    }    
    //Ham kiem tra 1 so AMSTRONG.
    int amstrong(int n)
    {    
        
    int nho,tong,bandau;
        
    //Bien ban dau dung de luu gia tri dau tien cua n, dung de so sanh voi bien tong
        
    bandau=n;
        
    //Bien tong dung luu tru tong cua cac phan tu sau khi lap phuong,khoi tao tong=0
        
    tong=0;
        
    //tinh tong lap phuong cua cac chu so.
        //n/10>0 => so nay >=10 => can phai tach tiep, toi khi so do chi la 1 chu so
        
    while ((int)n/10>0)
        {
            
    //Lay phan tu cuoi cung cua so do gan vao bien nho.VD so=13435 => phan tu cuoi cung la 5
            
    nho=n%10;
            
    //Bien tong=tong + nho ^3
            
    tong+=pow(nho,3);
            
    //loai bo phan tu cuoi cung cua so do di
            
    n=n/10;
        }
        
    // thuc hien xong doan tren tao co 0<=n<10,ta tien hanh cong them n^3 vao bien tong
        
    tong+=pow(n,3);
        
    //Neu tong=gia tri ban dau cua n thi ket luan so n ban dau la so Amstrong
        
    if (tong==bandau)
            return 
    1;
        else return 
    0;
    }
    // Thu tuc nhap vao 1 mang voi kich thuoc la n
    void input(int a[],int n)
    {
        
    int i;
        for (
    i=0;i<n;i++)
            {
                
    printf("A[%d]=",i);
                
    scanf("%d",&a[i]);
            }
    }
    //Ham chen 1 so nguyen x vao vi tri thu k (0<=k<n) trong mang gom n phan tu
    void chen(int a[],int x,int k,int n)
    {
        
    int i;
        
    //Don cac phan tu ve phia sau bat dau tu vi tri thu k toi vi tri thu n-1 (xuat phat tu 0)
        
    for (i=n;i>=k;i--)
        {
            
    a[i]=a[i-1];
           
    //     printf("a[%d]=%d , ",i,a[i]);
        
    }
        
    a[i]=x;
    }
    //Ham kiem tra 1 so xem so do co thuoc vao dayu hay ko?co-->1; khong-->0
    int kiemtra(int x,int a[],int n)
    {
        
    int i,danhdau=0;
        
    //Duyet tu dau mang toi cuoi mang
        
    for (i=0;i<n;i++)
            if (
    a[i]==xdanhdau=1;
        return 
    danhdau;
    }
    //Xuat ra man hinh mang a voi kich thuoc la n phan tu
    void output(int a[],int n)
    {
        
    int i;
        for (
    i=0;i<n;i++)
            
    printf("%d  ",a[i]);
        
    printf("\n");
    }
    //tim so lon thu 2 trong day vua nhap:tu tuong giong o tren lop to lam
    int max2(int a[],int n)
    {
        
    int max1,max2,i;
        
    max1=a[2]>a[1]?a[1]:a[2];
        
    max2=a[2]>=a[1]?a[2]:a[1];
        for (
    i=2;i<n;i++)
            {
            if (
    max2<a[i])
                {
                    
    max1=max2;
                    
    max2=a[i];
                }
            if (
    max1==max2)
                if (
    a[i]<max1)
                    
    max1=a[i];
            }
        if (
    max1==max2)
        {
            
    max1=-1;
        }
        return 
    max1;
    }
    //dem xem cac so trog day xuat hien bao nhieu lam
    // tu tuong cung giong bai o tren lop to lam
    void slxh(int a[],int n)
    {
        
    int i,dem=0,j,tg;
        for (
    i=0;i<n;i++)
            if (
    a[i]==0)
                
    dem+=1;
        if (
    dem!=0)
            
    printf("\nSo 0 Xuat Hien %d lan trong day",dem);
        for (
    i=0;i<n;i++)
            if (
    a[i]!=0)
               {
                
    dem=0;
                
    tg=a[i];
                for (
    j=i;j<n;j++)
                    if (
    a[j]==tg )
                        {
                        
    dem+=1;
                        
    a[j]=0;
                        }
                
    printf("\n%d Xuat Hien %d lan trong day",tg,dem);
                }
    }
    //Ham tim uoc chung lon nhat cua 2 so a va b
    // tu tuong: chia lay phan nguyen lien tiep cua a cho b cho toi khi phan du do =0
    int ucln(int a,int b)
    {
        
    int r;
        
    // khoi tao gia tri ban dau cho bien r= phan du cua pheo chia a cho b
        
    r=a%b;
        
    // lap, dung khi bien r =0
        
    while (r!=0)
        {
            
    a=b;
            
    b=r;
            
    //r= phan du cua phep chia a cho b
            
    r=a%b;
        }
        
    // tra lai gia tri cho ham
        
    return b;
    }
    //tim uoc chung lon nhat cua 1 mang a
    // tu tuong: tim uoc chung lon nhat cua phan tu a[1] va a[2] rui gan cho bien tam
    //sau do tim ucln cua bien tam voi a[3]
    // cu lap lai nhu tren, sau khi duyet het mang ta se thu dc ucln cau mang la gia tri cua bien tam
    int uclnmang(int a[],int n)
    {
        
    int i,tam;
        
    //khoi tao bien tam =a[0]
        
    tam=a[0];
        
    //duyet tu 1 toi phan tu cuoi cung cua day
        
    for (i=1;i<n;i++)
            {
                
    // bien tam = uoc chung lon nhat cua no voi a[i]
                
    tam=ucln(tam,a[i]);
            }
        
    // tra ve gia tri cho ham
        
    return tam;
    }

    void main()
    {
        
    int n,i,j,q,k,UC;
        
    int a[100];
        
    clrscr();
        do{
            
    printf("So Phan Tu:(<n<=100)"); scanf("%d",&n);
          }
        while (
    n<=0||n>100);
        
    input(a,n);
        
    clrscr();
        for (
    i=0;i<n;i++)
            {
                
    printf("\nA[%d]=%d  ",i,a[i]);
                if(
    nt(a[i]))
                    
    printf("  NT  ");
                else
                    
    printf("  KNT ");
                if (
    cp(a[i]))
                    
    printf("  CP  ");
                else
                    
    printf("  KCP ");
                if (
    hoanhao(a[i]))
                    
    printf("  HH  ");
                else
                    
    printf("  KHH ");
                if (
    amstrong(a[i]))
                    
    printf("  As  ");
                else
                    
    printf("  KAS ");
            }
        
    printf("\nNhap 1 so nguyen x:");scanf("%d",&q);
        do{
            
    printf("Vi tri chen (chu y: 0=<k<%d):",n);scanf("%d",&k);
        }
        while (
    k<|| k>=n);
        
    printf("\n\nDay sau khi nhap:\n");
        
    output(a,n);
        
    kiemtra(q,a,n);
        
    sapxep(a,n);
        
    printf("\nDay Sau Khi Sap Xep:\n");
        
    output(a,n);
        
    chen(a,q,k,n);n++;
        
    printf("\nDay sau khi chen them phan tu %d vao vi tri thu %d\n",q,k);
        
    output(a,n);
        if (
    max2(a,n)==-1)
            
    printf("\n\nTat ca cac phan tu vua nhap trung nhau\n          ==> khong ton tai phan tu lon thu 2 trong day");
        else
            
    printf("\n\nPhan tu lon thu 2 trong day la:%d\n\n",max2(a,n));
        
    printf("\n\nUoc chung lon nhat cua mang sau khi chen la:%d\n",uclnmang(a,n));
        
    printf("\n\nSo Lan Xuat hien cua cac so trong day vua them la:");
        
    slxh(a,n);
        
    getch();


  5. Có 1 thành viên cảm ơn xuanhung_cntt cho bài viết này:
    thanhluan710 (18-04-2009)

 

 

Quyền sử dụng

  • 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ể tự sửa bài viết của mình
  •