Tìm tổng chẵn lẻ khi nhập vào 1 mảng

Chào các bạn daynhauhoc.com

  • Mình bị lỗi là khi Run nó chỉ chạy lệnh printf("Enter the number of elemetns \n"); rồi ko theo như ý mình. Các bạn có thể hướng dẫn là đã sai ở phần nào.
    Cảm ơn các bạn.
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/* 
 * File:   main.c
 * Author: admin
 *
 * Created on May 23, 2019, 12:45 AM
 */

#include <stdio.h>
#include <stdlib.h>
#define MAX 100
/*
 * 
 */
void inputElements(int arr[], int number);
int sumOdd(int arr[], int number);
int sumEven(int arr[], int number);

int main(int argc, char** argv) {
    int number;
    int arr[MAX];
    char cont;
    do{
       do{
           printf("Enter the number of elemetns \n");
           scanf("%d", &number);
       }while(number <= 0);
       printf("Input Element:\n");
       inputElements(arr, number);
       printf("Sum of Even: %d\n", sumEven(arr, number));
       printf("Sum of Odd: %d\n", sumOdd(arr, number));
       fflush(stdin);
       scanf("%c", &cont);
    }while(cont != 27);
    getchar();
    getchar();
    return 0;
}
void inputElements(int arr[], int number)
{
    for(int i = 0; i < number; i++){
        printf("Enter number of element n = %d ", i + 1);
        scanf("%d", &arr[i]);
    }
}
int sumOdd(int arr[], int number)
{
    int sum = 0;
    for(int i = 0; i < number; i++){
        if(arr[i] % 2 != 0){
            sum += arr[i];
        }
    }
    return sum;
}

int sumEven(int arr[], int number)
{
    int sum = 0;
    for(int i = 0; i < number; i++){
        if(arr[i] % 2 == 0){
            sum += arr[i];
        }
    }
    return sum;
}

Vậy thì theo ý của bạn là như thế nào?

5 Likes

Ý của bạn là lặp đến khi nhấn Esc phải k, nhưng mà hàm scanf("%c", &cont) của bạn nó lại k đọc đc ký tự Esc nên sẽ là vòng lặp vô hạn.
Muốn vậy bạn phải sử dụng hàm getch() trong thư viện conio.h. :point_down:

    cont = getch();
} while (cont != 27);

Sửa lại thành như vậy chắc là sẽ được. :slightly_smiling_face:

3 Likes

Cảm ơn bạn, mình vừa chạy thì ok rồi

Enter the number of elemetns
4
Input Element:
Enter number of element n = 1 1
Enter number of element n = 2 2
Enter number of element n = 3 1
Enter number of element n = 4 5
Sum of Even: 2
Sum of Odd: 7
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?