Sau khi build and run code tính tổng các số nguyên tố từ 1 tới n bằng codeblock thì không hiện ra cái gì

Mình làm bài tập tính tổng các sô nguyên tố từ 1 tới n mà sau khi build and run bằng codeblock thì lại chẳng hiện ra cái gì :

#include <stdio.h>
 #include <stdlib.h>
int main()
{
int n,i,sum=0;
printf("Nhap n=");
scanf("%d",&n);
for(i=2;i<n;i++)
{ 
    if(IsPrime(i)=true)
        sum+=i;
}
printf("%d",sum);
return 0;
}
bool IsPrime(int n)
{
int i,count=0;
for(i=1;i<=n;i++)
{
    if(n%i==0)
        count++;
}
if(count==2)
    return true;
return false;
}

if(IsPrime(i)=true) sử dụng == mới đúng
bạn chưa khai báo prototype hàm thì phải

2 Likes

Mình đã khai báo prototype và sửa lại == nhưng vẫn không được :frowning:

bạn post đầy đủ code đã sửa lại xem thế nào

“chẳng thấy hiện ra cái gì” có phải là chỉ có 1 màn hình hiện lên rồi tắt ngay? Nếu thế thì chọn Project (ở cùng thanh với File / Edit / View…) -> Properties…, chọn thẻ Build targets, nhấp chọn Pause when execution ends.

2 Likes

Không bạn ạ, nó không hiện ra một cái gì cơ mặc dù build không có lỗi

bạn thử IDE khác chưa

mình đã thử Dev c++ và nó báo lỗi ntn :

Compiler: Default compiler
Building Makefile: "E:\Users\Sõn\Desktop\New folder\Makefile.win"
Executing  make...
make.exe -f "E:\Users\Sõn\Desktop\New folder\Makefile.win" all
gcc.exe -c main.c -o main.o -I"C:/Dev-Cpp/include"   

main.c:4: error: syntax error before "IsPrime"

main.c:4: warning: data definition has no type or storage class
main.c:6: error: syntax error before "IsPrime"
main.c: In function `IsPrime':
main.c:15: error: `true' undeclared (first use in this function)
main.c:15: error: (Each undeclared identifier is reported only once
main.c:15: error: for each function it appears in.)
main.c:16: error: `false' undeclared (first use in this function)

main.c: In function `main':
main.c:27: error: `true' undeclared (first use in this function)

make.exe: *** [main.o] Error 1

Execution terminated

Code của mình đây:

#include <stdio.h>
#include <stdlib.h>
bool IsPrime(int );
bool IsPrime(int n)
{
    int i,count=0;
    for(i=1;i<=n;i++)
    {
        if(n%i==0)
            count++;
    }
    if(count==2)
        return true;
    return false;
}

int main()
{
    int n,i,sum=0;
    printf("Nhap n=");
    scanf("%d",&n);
    for(i=2;i<n;i++)
    {
        if(IsPrime(i)=true)
            sum+=i;
    }
    printf("%d",sum);
    return 0;
}

if(IsPrime(i)=true) dòng này sai nhé. Sửa if(IsPrime(i))
Mình chạy trên VS 2013 bt nhé

Vẫn không được bạn ạ.Codeblock thì không chạy, dev c++ thì báo lỗi :(((

Không biết bạn build C ở chuẩn nào nhỉ, C90 thì không có kiểu bool, C99 thì cần có thư viện stdbool.h để dùng kiểu bool.

3 Likes

Dẫ thử và thành công :smiley:.Tuy nhiên dev c++ vãn báo lỗi, còn codeblock thì ổn rồi, Thanks bạn .

1 Like

@nts311 Bạn đánh dấu :white_check_mark: cho câu trả lời đúng nhá :smile:

1 Like

bên dev c++ thì bạn thử đặt file ở đường dẫn nào ko chưa chữ tiếng vuêtj thử xem nha :slight_smile:

giờ thì cái code này cũng không hoạt động trên codeblock, bạn nào biết sử chỉ mình với:

#include <stdio.h>
#include <stdlib.h>

void thamtri(int,int);
void thambien(int &,int &);
int main()
{
    int a=5,b=5;
    thamtri(a,b);
    printf("a=%d,b=%d",a,b);
    thambien(a,b);
    printf("a=%d,b=%d",a,b);
    return 0;
}
void thamtri(int ix,int iy)
{
    ix+=1;
    iy+=1;
}
void thambien(int &ix,int &iy)
{
    ix+=1;
    iy+=1;
}

Post này đã solved rồi, nên tạo 1 post khác để hỏi câu hỏi khác nhé :wink:

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