Kiểm tra phần tử mảng 1 chiều khi nhập từ bàn phím

Yêu cầu:

– Viết chương trình nhập vào mảng A gồm n phần tử, trong quá trình nhập kiểm tra các phần tử nhập vào không được trùng, nếu trùng thông báo và yêu cầu nhập lại.

Thuật toán:

– So sánh giá trị nhập vào với các phần tử trong mảng.

Code:

/************************************************************
* Author: VNCODING
* History 
* 2014/10/31 first create VNCODING
*************************************************************/
#include <stdio.h>
#include <conio.h>
#define MAX_SIZE 100


void print_arr(int A[], int n, char name_arr);
void import_arr(int A[], int n);
bool is_existed_arr(int A[], int n, int x);

void main()
{
    int A[MAX_SIZE];
    int n = 5;
    import_arr(A, n);
    print_arr(A, n, 'A');

    getch();
}


void print_arr(int A[], int n, char name_arr)
{
    int i;
    if(n == 0)
    {
        printf("\nArray %c is empty", name_arr);
        return;
    }
    printf("\nMang %c", name_arr);
    for(i = 0; i < n; i++)
        printf("\n%c[%d] = %d", name_arr, i, A[i]); 
}

void import_arr(int A[], int n)
{
    int i, j;
    int temp;
    for(i = 0; i < n; i++)
    {
        do 
        {
            printf("\nNhap vao A[%i] = ", i);
            scanf("%d", &temp);
        }while( i > 0 && is_existed_arr(A, i+1, temp));
        A[i] = temp;
    }
}

// Ham kiem tra xem x da xuat hien trong mang A hay chua?
bool is_existed_arr(int A[], int n, int x)
{
    int i;
    for(i = 0; i < n; i++)
        if(x == A[i])
            return true;
    return false;
}

Kết quả:

Nhap vao A[0] = -2
Nhap vao A[1] = 0
Nhap vao A[2] = 3
Nhap vao A[3] = 6
Nhap vao A[4] = -2
Nhap vao A[4] = 3
Nhap vao A[4] = 9

Mang A
A[0] = -2
A[1] = 0
A[2] = 3
A[3] = 6
A[4] = 9

1 Comment on Kiểm tra phần tử mảng 1 chiều khi nhập từ bàn phím

  1. Làm ơn giải thích giúp mình vấn đề này về mảng: Khi mình thay đổi 1 phần tử bất kì arr[i] trong 1 hàm thì trong hàm main phần tử đó cũng thay đổi, tại sao vậy nhỉ?? mình hiều arr[i] chỉ như 1 biến thông thường thôi chứ nhỉ, có phải con trỏ đâu, chỉ có a là contro thôi chứ??

Leave a Reply