Đề bài : nhập số nguyên dương n (n>0).tìm n số chính phương đầu tiên.e xem mãi mà không tìm ra lỗi sai mong mọi người giúp e với.
code:
#include <iostream>
using namespace std;
//nhap so nguyen duong n
void input(int &n)
{
do
{
cout << "nhap so nguyen duong n= ";
cin >> n;
} while (n <= 0);
}
//kiem tra so chinh phuong
int SoCP(int n)
{
if (n < 4)
return 0;
int a = (int)sqrt((float)(n));
if (a*a == n)
return 1;
return 0;
}
//dem n so chinh phuong
int dem(int n)
{
int i = 1;
int demso = 0;
while (demso <= n)
{
for (int j = 1; j <= i; j++)
{
if (SoCP(j) == 1)
{
demso++;
}
return i;
}
i++;
}
}
// xuat gia tri ra ngoai man hinh
void main()
{
int n;
input(n);
dem(n);
cout << "\t" << dem;
system("pause");
}


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