01/10/2018, 11:55
Mấy anh xem dùm code của em sai chỗ nào với
em mới học viết hàm con,gv ra đề là hiển thị menu và cho user nhập vào lệnh họ muốn và in ra màn hình kết quả tương ứng với lệnh đã nhập, source code phải tách ra làm 3 file:main.cpp,source.cpp và header.h. Em ko hiểu là code sai cái gì mà cứ bị báo lỗi thế này

đây là code của e
//file header.h
#ifndef __HEADER_H__
#define __HEADER_H__
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
using namespace std;
void KTChanLe(int n);
void KTSoNguyenTo(int n);
void KTSoChinhPhuong(int n);
void KTSoHoanHao(int n);
int Menu(int n);
void GoiHam(int &x, int &n);
#endif
//file source.cpp
#include "Header.h"
int Menu(int n)
{
printf("1. Kiem tra chan le.
2. Kiem tra n co phai la so nguyen to.
3. Kiem tra n co phai la so chinh phuong.
4. Kiem tra n co phai la so hoan hao.
5. Thoat.
");
printf("Nhap n: ");
scanf("%d", &n);
int x;
printf("Chon cong viec ban muon thuc hien: ");
scanf_s("%d", &x);
return x;
}
void GoiHam(int x, int n)
{
switch (x)
{
case 1:
KTChanLe(n);
break;
case 2:
KTSoNguyenTo(n);
break;
case 3:
KTSoChinhPhuong(n);
break;
case 4:
KTSoHoanHao(n);
break;
}
void KTChanLe(int n)
{
if (n % 2 == 0)
{
printf("so chan");
}
else
{
printf("so le");
}
getch();
}
void KTSoNguyenTo(int n)
{
int SoNguyenTo = 0;
for (int i = 2; i <= n / 2; i++)
{
if (n % i == 0)
{
SoNguyenTo = 1;
break;
}
}
if (SoNguyenTo == 1)
printf("la so nguyen to");
else printf("ko la so nguyen to");
getch();
}
void KTSoChinhPhuong(int n)
{
int SoChinhPhuong = 0;
for (int i = 2; i <= n / 2; i++)
{
if (i*i == n)
{
SoChinhPhuong = 1;
break;
}
}
if (SoChinhPhuong == 1)
printf("la so cp");
else printf("ko la so cp");
getch();
}
void KTSoHoanHao(int n)
{
int i;
int s = 0;
for (i = 2; i < n; i++)
{
if (n % i == 0)
{
s = s + i;
}
}
if (s == n)
{
printf("la so hoan hao");
}
else
printf("ko la so hoan hao");
getch();
}
}
file main.cpp
#include "Header.h"
void main()
{
int x, n;
do
{
system("cls");
x= Menu(n);
GoiHam(x, n);
system("pause");
} while (x != 5);
getch();
}
Bài liên quan
em không hiểu anh ơi
Có gì đâu mà không hiểu.
Sửa ở file main
thành
OMG, ở file source.cpp bạn viết hàm trong hàm hay là viết thiếu ngoặc vậy?
thiếu ngoặc chỗ nào anh, à với em sửa lại header.h rồi mà vẫn bị lỗi như vậy
em đã ktra rất kĩ các dấu ngoặc rồi ạ
Đọc lại file source.cpp, đọc kĩ void GoiHam. Không được viết hàm trong hàm trong C++.
em sửa lại như vầy
mấy hàm con kia em viết để ngoài
Bạn chạy thử đi rồi tự biết đúng hay sai.
lỗi gê hơn anh ơi
ghê chứ không phải gê.
Mấy cái warning là do
getch()
vàscanf()
. Làm theo hướng dẫn của nó.Mấy cái error thì mình chịu.
code của e anh ko lo chú ý, lo bắt lỗi chính tả của e
thật sự là ko có cách nào để sửa ạ
Code của bạn mình cũng chỉ nhìn được 1 phần thôi. Mình đâu phải là watcher của IDE của bạn mà phải nhìn kĩ quá làm gì?
Cái này là nghề rồi =))
Đợi người khác vào sửa thôi =))
Bạn định nghĩa trong header là :
mà trong source.cpp lại là:
cám ơn mấy anh, em đã sửa đc code, cám ơn mọi người đã giúp đỡ em ạ