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.\n2. Kiem tra n co phai la so nguyen to.\n3. Kiem tra n co phai la so chinh phuong.\n4. Kiem tra n co phai la so hoan hao.\n5. Thoat.\n");
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();
}