30/09/2018, 16:22

[Giải bài tập] Nhập dãy số nguyên lọc những số chia hết cho 3 sang mảng khác

Nhập dãy số nguyên lọc những số chia hết cho 3 sang mảng khác

‪#‎include‬<stdio.h>
#include<conio.h>

//verson 1.0 mang tinh
typedef int Mang[100];
void nhap(int &n,Mang &A)
{
    printf("
Nhap so phan tu : ");
    scanf("%d",&n);
    for(int i=1; i<=n; ++i)
    {
        printf("A[%d] = ",i);
        scanf("%d",&A[i]);
    }
}
void xuat(int n,Mang A,char *tb)
{
    printf("

%s
",tb);
    for(int i=1; i<=n; ++i)
        printf("%d	",A[i]);
}
void Loc_k(int n,Mang A,int &m,Mang &B,int k=3)
{
    m=0;
    for(int i=1; i<=n; i++)
        if(A[i]%k==0) B[++m]=A[i];
}
int main()
{
    int n,m,k;
    Mang A,B,C;
    nhap(n,A);
    xuat(n,A,"Day la day ban dau");
    Loc_k(n,A,m,B);
    xuat(m,B,"Nhung so chia het cho 3 trong A");
    Loc_k(n,A,k,C,7);
    xuat(k,C,"Nhung so chia het cho 7 trong A");
    getch();
}
#include<stdio.h>
#include<conio.h>

//verson 2.0 mang cap phat dong
typedef int *Mang;

void nhap(int &n,Mang &A)
{
    printf("
Nhap so phan tu : ");
    scanf("%d",&n);
    A=new int [n+1];
    for(int i=1; i<=n; ++i)
    {
        printf("A[%d] = ",i);
        scanf("%d",&A[i]);
    }
}

void xuat(int n,Mang A,char *tb)
{
    printf("

%s
",tb);
    for(int i=1; i<=n; ++i)
        printf("%d	",A[i]);
}

void Loc_k(int n,Mang A,int &m,Mang &B,int k=3)
{
    m=0;
    B=new int [n+1];
    for(int i=1; i<=n; i++)
        if(A[i]%k==0)	B[++m]=A[i];
}

int main()
{
    int n,m,k;
    Mang A,B,C;
    nhap(n,A);
    xuat(n,A,"Day la day ban dau");
    Loc_k(n,A,m,B);
    xuat(m,B,"Nhung so chia het cho 3 trong A");

    Loc_k(n,A,k,C,7);
    xuat(k,C,"Nhung so chia het cho 7 trong A");
    getch();
}
#include<stdio.h>
#include<conio.h>
#include<windows.h>

//verson 3.0 lam viec voi file
typedef int *Mang;

void nhap(int &n,Mang &A)
{
    printf("
Nhap so phan tu : ");
    scanf("%d",&n);
    A=new int [n+1];
    for(int i=1; i<=n; ++i)
    {
        printf("A[%d] = ",i);
        scanf("%d",&A[i]);
    }
}

void nhap_file(int &n,Mang &A,FILE *f)
{
    fscanf(f,"%d",&n);
    A=new int [n+1];
    for(int i=1; i<=n; ++i)
    {
        fscanf(f,"%d",&A[i]);
    }
}

void xuat(int n,Mang A,FILE*f)
{
    fprintf(f,"
%d
",n);
    for(int i=1; i<=n; ++i)
        fprintf(f,"%d	",A[i]);
}

void Loc_k(int n,Mang A,int &m,Mang &B,int k=3)
{
    m=0;
    B=new int [n+1];
    for(int i=1; i<=n; i++)
        if(A[i]%k==0)	B[++m]=A[i];
}

int menu()
{
    int chon;
    system("cls");
    printf("
1. Nhap tu ban phim:");
    printf("
2. Nhap tu file van ban:");
    printf("
3. Xuat man hinh:");
    printf("
4. Xuat ra file van ban:");
    printf("
5. Loc nhung so chia het 3 xuat mh");
    printf("
6. Loc nhung so chia het 2 xuat file");
    printf("
7. Thoat");
    printf("

Moi ban chon mon :");
    scanf("%d",&chon);
    if(1<=chon && chon <=7) return chon;
    return menu();
}

int main()
{
    int n,m,k,chon;
    char tenfile[100];
    FILE *f;
    Mang A,B,C;
    do
    {
        chon=menu();
        switch(chon)
        {
        case 1 :
            nhap(n,A);
            break;
        case 2 :
            printf("
Nhap ten file : ");
            fflush(stdin);
            gets(tenfile);
            f=fopen(tenfile,"rt");
            if(f==NULL) printf("
loi mo file");
            else
            {
                nhap_file(n,A,f);
                fclose(f);
            }
            break;
        case 3 :
            xuat(n,A,stdout);
            break;
        case 4 :
            printf("
Nhap ten file : ");
            fflush(stdin);
            gets(tenfile);
            f=fopen(tenfile,"wt");
            if(f==NULL) printf("
loi mo file");
            else
            {
                xuat(n,A,f);
                fclose(f);
            }
            break;
        case 5 :
            Loc_k(n,A,m,B);
            xuat(m,B,stdout);
            break;
        case 6 :
            printf("
Nhap ten file : ");
            fflush(stdin);
            gets(tenfile);
            f=fopen(tenfile,"wt");
            if(f==NULL) printf("
loi mo file");
            else
            {
                Loc_k(n,A,k,C,2);
                xuat(k,C,f);
                fclose(f);
            }
            break;
        case 7 :
            return 1;
        }
        getch();

    }
    while(1);
}

Nguồn : Lập Trình C

Bài liên quan
0