30/09/2018, 16:08

Bài tập struct: Báo lỗi ở cách làm thứ 2

Đề bài: Tạo danh sách sinh viên gồm mã nhân viên và họ tên

  • Làm theo “Cách 1” thì ra kết quả nhưng mình làm theo “Cách 2” thì báo lỗi không chạy

  • Ở “Cách 1” thì mình viết hàm “input” để nhập danh sách n nhân viên

  • Ở “Cách 2” thì mình viết thêm 1 hàm để nhập từng nhân viên, sau đó trong hàm input gọi tới
    hàm nhập từng nhân viên ở trên

  • Mọi người xem code giúp mình xem sai ở đâu và giúp chỉnh sửa nhé!
    Cách 1: http://codepad.org/2Whox04u
    Cách 2: http://codepad.org/nOgJucFp

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

lỗi hàm output viết không đúng

void output(nhanvien snv[], int n) // chư k fai là in
{
	for(int i = 1; i <= n; i++)
	printf("%5d %s\n", snv[i].manv, snv[i].hoten);
}
Nguyễn Hữu Điền viết 18:09 ngày 30/09/2018

@tuancoi2506 cũng không chạy ạ, báo lỗi ngay phần khai báo prototype

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

code của e a chạy trên visual studio bình thường, có điều a thấy prototype của e khái báo 1 kiểu, định nghĩa 1 kiểu, giá trị trả về và tham số đầu vào khác nhau kìa e.

int input(nhanvien, int); int output(nhanvien, int);
mà định ngĩa

void input(nhanvien snv[], int n) void output(nhanvien snv[], int in)
a k rõ e cố ý để vậy có ý j không ???

code e a chạy dc nè :

Nguyễn Hữu Điền viết 18:13 ngày 30/09/2018

Tệ nhỉ sao e vẫn không chạy được vậy, trong hàm main a viết thêm những gì vậy, thm số ý @tuancoi2506

Nguyễn Hữu Điền viết 18:10 ngày 30/09/2018

A gửi lên codepad code a sửa để e xem sai ở đâu @tuancoi2506

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

cái này do visual studio phát sinh thêm thôi e, đừng quan tâm.a post code của a, chắc do ide của e khác của a đang xài, k biết có ảnh hưởng gì k???


// qlsv.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h> 
#include <conio.h> 
#include <stdlib.h> 
#define MAX 50 
struct nhanvien
{ 
	int manv;
	char hoten[30];
};
//Khai bao prototype
int input(nhanvien, int);
int output(nhanvien, int);
//Ham nhap tung nhan vien
nhanvien newnv() 
{
	fflush(stdin);
	nhanvien snv;
	printf("Ma nhan vien: ");
	scanf("%d",&snv.manv);
	fflush(stdin);
	printf("Ho ten: ");
	gets(snv.hoten);
	return (snv);
}
//Ham nhap danh sach nhan vien
void input(nhanvien snv[], int n)
{ 
	for(int i = 1; i <= n; i++)
	{
		printf("Nhap vao nhan vien thu %d: ", i);
		snv[i] = newnv();
	}
}
//Ham in danh sach nhan vien ra man hinh 
void output(nhanvien snv[], int n)
{
	for(int i = 1; i <= n; i++)
	printf("%5d %s\n", snv[i].manv, snv[i].hoten);
}

int _tmain(int argc, _TCHAR* argv[])
{
	nhanvien snv[MAX];
	int i,n;
	printf("Nhap vao so nhan vien: ");
	scanf("%d",&n);
	fflush(stdin);
	input(snv,n);
	printf("DS nhan vien: ");
	output(snv,n);
	getch();
	return 0;
}

Nguyễn Hữu Điền viết 18:19 ngày 30/09/2018

copy code của a chạy nó vẫn báo lỗi ở dòng 12 @tuancoi2506

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

a k xài codeblock nên k biết cái này, có lẽ do cú pháp khai báo. anh @ltd ơi, vào giải đáp dùm bạn này với. hihiihi

Nguyễn Hữu Điền viết 18:22 ngày 30/09/2018

Chạy code của a nó ra cái này nè, tạo project khác vẫn bị vậy

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

Đã bỏ

#include "stdafx.h"

Sửa

int _tmain(int argc, _TCHAR* argv[])

Thành

int main()

Code

// qlsv.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAX 50
struct nhanvien
{
    int manv;
    char hoten[30];
};
//Khai bao prototype
int input(nhanvien, int);
int output(nhanvien, int);
//Ham nhap tung nhan vien
nhanvien newnv()
{
    fflush(stdin);
    nhanvien snv;
    printf("Ma nhan vien: ");
    scanf("%d",&snv.manv);
    fflush(stdin);
    printf("Ho ten: ");
    gets(snv.hoten);
    return (snv);
}
//Ham nhap danh sach nhan vien
void input(nhanvien snv[], int n)
{
    for(int i = 1; i <= n; i++)
    {
        printf("Nhap vao nhan vien thu %d: ", i);
        snv[i] = newnv();
    }
}
//Ham in danh sach nhan vien ra man hinh
void output(nhanvien snv[], int n)
{
    for(int i = 1; i <= n; i++)
        printf("%5d %s\n", snv[i].manv, snv[i].hoten);
}

int main()
{
    nhanvien snv[MAX];
    int i,n;
    printf("Nhap vao so nhan vien: ");
    scanf("%d",&n);
    fflush(stdin);
    input(snv,n);
    printf("DS nhan vien: ");
    output(snv,n);
    getch();
    return 0;
}

a k xài codeblock nên k biết cái này, có lẽ do cú pháp khai báo. anh @ltd ơi, vào giải đáp dùm bạn này với. hihiihi

Thư viện stdafx.h là của Visual Studio, cả _tmain nữa.

Nguyễn Hữu Điền viết 18:16 ngày 30/09/2018

Chạy ngon 2 anh @ltd @tuancoi2506 ạ, chỉ có mỗi cái DEV C vs codeblock nó ngáo, chạy trên VS2010 no warning, no errors luôn. Hai a góp ý cho e xem trình bày code như vậy đã hợp lý chưa?

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

Hai a góp ý cho e xem trình bày code như vậy đã hợp lý chưa?

Code nào em?

Mọi người xem code giúp mình xem sai ở đâu và giúp chỉnh sửa nhé!Cách 1: http://codepad.org/2Whox04uCách 2: http://codepad.org/nOgJucFp

Cái này trông có vẻ ổn

Nguyễn Hữu Điền viết 18:11 ngày 30/09/2018

hihi
Mà sao lâu lâu chưa thấy a @ltd ra thêm video C nào nữa vậy, e vẫn đang mơ hồ về struct và ghi-đọc tập tin

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

Anh đang bệnh, có nói được nhiều đâu. Nói 1 câu ho sù sụ

Nguyễn Hữu Điền viết 18:22 ngày 30/09/2018

Giống e rồi a @ltd , e ho với cúm nửa tháng nay rồi

Bài liên quan
0