Không hiện giá trị khi xuất ra

Tại sao sau khi chạy chỉ mỗi nhập xuất n thôi mà không mà không hiện mấy cái kia ạ??

#include "pch.h"
#include <iostream>

using namespace std;

int nguyento(int n);
int lietke();

int main()
{
    int n;
    cout << "\nnhap n: "; cin >> n;
}

int nguyento(int n)
{
    if (n < 2)
        cout << "\nkhong co so nguyen to nao";
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n%i == 0)
            cout << "\nkhong cos so nguyen to nao";
        else cout << "\nn la so nguyen to";
    }
    return nguyento(n);
}

int lietke()
{
    int dem = 0, i = 2, n = 0;
    while (dem < n)
    {
        if (nguyento(i) == 1)
        {
            cout << i;
            dem++;
        }
        i++;
    }
    return lietke();
}
nhap n: 8
C:\Users\KIMCHI\Documents\Visual Studio 2019\Backup Files\v1_b13\x64\Debug\v1_b13.exe (process 8000) exited with code 0. To automatically close the console when debugging...
Press any key to close this window...

Chương trình bắt đầu từ hàm main()
Trong hàm main() của cậu có 2 câu lệnh:

  1. In ra chuỗi ký tự "nhap n: " cout <<"\nnhap n: "
  2. gán giá trị vào n: cin >> n
    Vì chỉ có 2 câu lệnh nên nó chỉ thực hiện 2 lệnh.

Bạn vui lòng up code bằng text nhé :smiley: nên dùng repl.it.

mình thêm 2 câu lệnh là

nguyento(n);
lietke();

nhưng nó chạy thế này

Đệ quy vô hạn:

int nguyento(int n)
{
    if (n < 2)
        cout << "\nkhong co so nguyen to nao";
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n%i == 0)
            cout << "\nkhong cos so nguyen to nao";
        else cout << "\nn la so nguyen to";
    }
    return nguyento(n); // <--- gọi đệ quy vô hạn, lặp mãi mãi.
}

int lietke()
{
    int dem = 0, i = 2, n = 0;
    while (dem < n)
    {
        if (nguyento(i) == 1)
        {
            cout << i;
            dem++;
        }
        i++;
    }
    return lietke(); // <--- cũng đệ quy vô hạn.
}

Ở phần trả về giá trị return trong 2 hàm songuyento()lietke(), có lẽ bạn vẫn chưa hiểu giá trị trả về là gì nên lại gọi chính hàm đó.

Nói chung là bạn sai cực kì nhiều. Vì bạn vẫn chưa hiểu hết các nội dung cơ bản của lập trình.

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