Bài Tập 4 - Một vài bài tập thực hành! (Chương 2 ngôn ngữ C)

Cho mình hỏi như vậy có đúng như yêu cầu bài tập không ạ
"Bài tập 4 Viết một function maximumArray có nhiệm vụ so sánh tất cả các giá trị chứa bên trong array với giaTriMax. Nếu có giá trị lớn hơn biến số giaTriMax đưa vào, nó sẽ chuyển thành 0. Prototype: C code: void maximumArray (int array[ ], int kichThuoc, int giaTriMax);

VD: array {1,5,7,8,5,2,3} và max=5, sẽ chuyển thành {1,5,0,0,5,2,3}. "

#include <stdio.h>
#include <stdlib.h>

void maximumArray (int array[ ], int kichThuoc, int giaTriMax);

int main()
{
int array[6] = {4,2,2,9,10,2};

maximumArray(array, 6, 5);

return 0;
}

void maximumArray (int array[ ], int kichThuoc, int giaTriMax)
{
int i;

for (i = 0; i < kichThuoc; i++)
{
    if (array[i] < giaTriMax)
    {
        printf("%d,", array[i]);
    }
    else
    {
        printf("0,");
    }
}

return 0;
}

Bạn làm được chưa ? Có thể chỉ cho mình với không . Mãi mà chương trình vẫn chưa chạy được

Bạn có thể post code lên để mọi người cùng sửa cho bạn. :slight_smile:

3 Likes


code của mình đây bạn à . Mình mới tập code nên hơi gà . Có gì khó đọc bạn thông cảm hộ mình với :((

Có thông báo lỗi gì không bạn. Theo mình đọc qua thì bạn chưa gọi hàm nên nó không chạy :v

2 Likes

Vẫn thông báo lỗi bạn à . Mình đang thiếu hàm gì vậy bạn ??


Này code nó vẫn chạy nhưng nó không chuyển về 0 mà nó kết thúc chương trình luôn bạn à :((

Bạn ơi, bạn đọc đọc qua bài viết dưới để biết các post code với markdown nha. :slight_smile:
Chứ mình lười xem ảnh lắm. :wink:

3 Likes
#include <stdio.h>
#include <stdlib.h>
void maximummArray(int array[], int kichThuoc, int giaTriMax);
int main(int argc, char *argv[])
{
   int n;
            printf("Ban hay nhap kich thuoc cua mang \n");
            scanf("%d",&n);
   int i;
   int a[n];
   for(i=0;i<n;i++)
   {
        printf("Ban hay nhap gia tri cua mang \n");
        scanf("%d",&a[i]);
   }
}
void maximummArray(int array[], int kichThuoc, int giaTriMax)
{
    int soMax =5;
    int i;
    int kichthuoc ;


    for(i=0;i<kichthuoc;i++)
    {
            if(array[i]>soMax)
            {
                array[i] = 0;
            }
else
            {
                printf("%d",&array[i]);
            }
            return 0 ;
    }


}

Mình gửi bạn. Code nó vẫn chạy nhưng nó không chuyển về 0 mà nó kết thúc chương trình luôn ấy .

Đơn giản là bạn chưa gọi hàm thôi.

Thêm hai dòng này ngay sau for của hàm main() là được.

maximummArray(a, n, 5);
return 0;

Cái giaTriMax bạn không dùng đến nè.

2 Likes


Vẫn không được bạn à . Mình hỏi tí , chương trình nào mình cũng phải kèm theo hàm đi cùng hả bạn ??

Bạn in địa chỉ của array[i] chứ có phải giá trị array[i] đâu. :kissing:

Đây là hàm void bạn return 0 để làm gì. :sweat_smile:

Bạn có vẻ chưa lắm vững kiến thức về hàm nhỉ :sweat_smile:. Mời bạn xem lại kiến thức vậy.

Bài 9: Function - Hàm Link dự phòng

3 Likes

Thì vì bạn chưa gọi hàm nên nó không làm thì cả đấy.
Cho thêm dòng

maximunArray(a, n, 5);

vào cuối hàm main.

Với cả mình nghĩ bạn nên học lại phần hàm :sweat_smile:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?