30/09/2018, 16:02

Hàm tinh giờ trong tài liệu C_aptech bị lỗi?

đây là code trong sách : http://codepad.org/isaMJJvq

#include <stdio.h>
#include <conio.h>

//khai bao prototype
void time(int &,int &);

//ham doi phut thanh gio:phut
void time(int &ig,int &ip)
{
    ig = ip/60;
    ip %= 60;
}

void main (void)
{
    int igio, iphut;
    printf("Nhap vao so phut: ");
    time(igio,iphut);
    printf("%02d:%02d
",igio,iphut);
    getchar();
}

và lỗi :
Line 18: error: conio.h: No such file or directory
Line 5: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
Line 8: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
In function ‘main’:
Line 15: warning: return type of ‘main’ is not ‘int’


e tự học nên những code trong sách k chạy được e k thể tự giải quyết được . ai đi ngang qua đọc được thì giúp hộ e . e cảm ơn nhiều

Nguyễn Minh Dũng viết 18:18 ngày 30/09/2018

http://codepad.org/LT2SHjGN

#include <stdio.h>

//khai bao prototype
void time(int *,int *);

//ham doi phut thanh gio:phut
void time(int *ig,int *ip)
{
    *ig = *ip/60;
    *ip %= 60;
}

void main (void)
{
    int igio, iphut;
    printf("Nhap vao so phut: ");
    time(&igio,&iphut);
    printf("%02d:%02d\n",igio,iphut);
    getchar();
}

Xem chạy không?

Lê Đình Huy viết 18:16 ngày 30/09/2018

dạ chạy, nhưng sẽ bị " số rác " . và khi nhập số vào nó sẽ k chạy mà dừng chương trình

Nguyễn Minh Dũng viết 18:04 ngày 30/09/2018

Code bị thiếu nhập vào iphut mà, lâu đâu ra để tính Nhận lại code mà không chịu chạy kiểm tra.
http://codepad.org/GS4akJzN

#include <stdio.h>

//khai bao prototype
void time(int *,int *);

//ham doi phut thanh gio:phut
void time(int *ig,int *ip)
{
    *ig = *ip/60;
    *ip %= 60;
}

void main (void)
{
    int igio, iphut;
    printf("Nhap vao so phut: ");
    scantf("%d", &iphut);
    time(&igio,&iphut);
    printf("%02d:%02d\n",igio,iphut);
    getchar();
}
Lê Đình Huy viết 18:09 ngày 30/09/2018

dạ. chạy được rồi a. mới gặp có mấy lỗi tí tí mà e đang lẫn lộn lên hết rồi. Nhưng sao lại thay & = * vậy a ?

Phạm Hoàng Tuấn viết 18:08 ngày 30/09/2018

Toán tử “&” là toán tử dùng để lấy địa chỉ của biến. Con trỏ “*” dùng để lưu giá trị địa chỉ của biến, nên ta có thể dùng " * " hay " & " chắc như nhau . Vì bản chất của của việc truyền tham biến là truyền địa chỉ của biến đó.

    #include "stdafx.h"
    #include "conio.h"
    
    //khai bao prototype
    void time(int &,int &);
    
    //ham doi phut thanh gio:phut
    void time(int &ig,int &ip)
    {
        ig = ip/60;
        ip %= 60;
    }
    
    void main (void)
    {
        int igio, iphut;
        printf("Nhap vao so phut: ");
        scanf("%d", &iphut);
        time(igio,iphut);
        printf("%02d:%02d\n",igio,iphut);
        getchar();
    	
    }
Đỗ Trung Quân viết 18:10 ngày 30/09/2018

Line 18: error: conio.h: No such file or directory
Line 5: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
Line 8: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
In function ‘main’:
Line 15: warning: return type of ‘main’ is not ‘int’

Lần sau sửa hết được các lỗi này là kiểu gì cũng chạy nhưng chưa chắc ra đáp án đúng nhé, học đọc lỗi đi, C đọc lỗi dễ nhất rồi ý.

Đỗ Trung Quân viết 18:14 ngày 30/09/2018

#include <stdio.h>

//khai bao prototype
void time(int *,int *);

//ham doi phut thanh gio:phut
void time(int *ig,int *ip)
{
*ig = *ip/60;
*ip %= 60;
}

void main (void)
{
int igio, iphut;
printf(“Nhap vao so phut: “);
scantf(”%d”, &iphut);
time(&igio,&iphut);
printf("%02d:%02d\n",igio,iphut);
getchar();
}

Bài này của bạn ý chỉ dùng tham chiếu reference (&) không có pointer mà anh. Anh chỉ vậy sợ lại không hiểu * ở đâu ra. Bạn xem bài tham chiếu và con trỏ các clip C của anh @ltd nha
Bài này dùng tham chiếu vì đã biết chắc chắn nó chỉ đến igio và iphut.

#include <stdio.h>
#include <conio.h>

//khai bao prototype
void time(int &,int &);

//ham doi phut thanh gio:phut
void time(int &ig,int &ip)
{
    ig = ip/60;
    ip %= 60;
}

int main ()
{
    int igio, iphut;
    printf("Nhap vao so phut: ");
    scanf("%d",&iphut); // thiếu chỗ này.
    time(igio,iphut);
    printf("%02d:%02d\n",igio,iphut);
    getchar();
}
Lê Đình Huy viết 18:07 ngày 30/09/2018

Lỗi thì mình đọc được, nhưng k biết phải sửa lại như thế nào . Ráng đọc thêm tài liệu + video

Đỗ Trung Quân viết 18:13 ngày 30/09/2018

Lỗi thì mình đọc được, nhưng k biết phải sửa lại như thế nào . Ráng đọc thêm tài liệu + video

Code nhiều bạn sẽ quen lỗi thôi. Ví dụ như bài trên hàm scanf() bạn bỏ toán tử & đi.

scanf("%d",&iphut);   => scanf("%d",iphut); 

Chương trình vẫn chạy nhưng không ra kết quả, không báo lỗi, chỉ hiện con trỏ quay vòng. gặp nhiều bạn sẽ biết lỗi ở đó.
Đấy là kinh nghiệm của mình thôi. Còn đã báo lỗi Error màu đỏ ra rồi thì cứ tìm đúng dòng đó mà sửa

Bài liên quan
0