Nhờ mọi người xem giúp câu 4 bài tập nhỏ C

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "ham.h"

float bai_1a_tinh_chu_vi_hinh_tron(float);
float bai_1b_tinh_dien_tich_hinh_tron(float);
void bai2(int);
float bai3(float);
int main(){
    int z;
        printf("Bai 1: Tinh chu vi va dien tich hinh tron theo ban kinh R\n");
        printf("Bai 2: Xac dinh xem 1 so nguyen N co phai la so nguyen to khong?\n");
        printf("Bai 3: Tinh gia tri cua so PI theo khai trien Maclaurin bang de quy.\n");
        printf("Bai 4: In ra man hinh va luu pho cua chuoi 40 ky so .\n");
        printf("MOI BAN NHAP MUC TUONG UNG : ");
        scanf("%d",&z);
    switch(z){
                case 1:{
                    float r;
                        printf("\nNhap ban kinh r= ");
                        scanf("%f",&r);
                        float a=bai_1a_tinh_chu_vi_hinh_tron(r);
                            printf("\nCHU VI HINH TRON = %.2f\n",a);
                        float b=bai_1b_tinh_dien_tich_hinh_tron(r);
                            printf("\nDIEN TICH HINH TRON = %.2f",b);
                    return 0;
                }
                case 2:{
                    int n;
                        printf ("nhap so nguyen N=  ");
                        scanf("%d",&n);
                    while(n<2){
                            printf ("N>=2\nNhap so nguyen N=  ");
                            scanf("%d",&n);}
                    bai2(n);
                    return 0;
                }
                case 3:{
                    float n;
                    float bai3(float);
                        printf("Nhap vao so n: ");
                        scanf("%f",&n);
                        printf("Pi= %f \n",bai3(n)*4);
                    return 0;
                }
                case 4:{
                    char d[40]={};
                        puts("nhap 40 so chuc nang: \n");
                        gets(d);
                        bai4(d[40]);
                    return 0;
                }
                default :{
                    printf("\nMOI BAN NHAP LAI");
                    return 1;
                }
    }
}

Đây là hàm em gọi ra :slight_frown:

#include <stdio.h>
#include <conio.h>
int bai4(char d[40])
{
    int j,i;
        for(i=9;i>=0;i--){
            for(j=0;j<40;j++){
                    if((d[j] - '0')>i)
                        printf("*");
                    else
                        printf(" ");
            }
            printf("\n");
        }
        return 0;
}

sau khi viết xong em bấm bài 4 thí nó không chạy , ai giải thích giúp với !

Tại case 4: cái bạn truyền vào không phải mảng d mà là phần tử thứ 40 của d.
Chúc bạn thành công.

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