30/09/2018, 18:58

Tổng các số nguyên tố trong mảng 1 chiều

Cho 1 file text “CAU3.IN” chứa thông tin về 1 dãy số nguyên

  • Dòng 1 ghi gtri tổng số phần tử của dãy số
    +Dòng 2 ghi các gtri của các phần tử của dãy. Mỗi giá trị cách nhau 1 vài khoảng trắng.
    a/ Đọc dãy số từ file trên và lưu vào 1 mảng …
    b/ Tính tổng các số nguyên tố có trong mảng…
    c/ Ghi giá trị của mảng đã tính ở câu b/ vào file “CAU3.OUT”.
    YÊU CẦU: sử dụng con trỏ và mảng(cấp phát bộ nhớ động cho mảng)

mọi người xem dùm mình sai cái gì với ạ…HELP ME. thứ 2 mình thi cuối kì rồi…
cảm ơn mng nhiu nhiu <3

int *Tong_NT = new int[100];
int NT(int n)
{
    int i, k= sqrt(n);
    for(i=2;i<=k;i++)
    if (n%i==0)
    return 0;
    return 1; // la so NT
}

struct contro
{
    int info ;
    contro * next ;
};
typedef contro * t ;
t first = new contro  ;

void khoitao( t &first)
{
    first = NULL ;
}
void kitudau(t &first , int x)
{
    t p;
    p = new contro;
    p->info = x;
    p->next = first;
    first = p;
}

int main()
{
    FILE *fptr;
    int n=10, TONG=0;
    if ((fptr=fopen("CAU3.IN.txt","r"))==NULL) //bao loi neu co
    {
        printf("Loi doc file CAU3.IN");
        return 0;
    }
    int *Tong_NT;
    if ((Tong_NT= (int *) malloc(n* sizeof(int)))==NULL) //bao loi neu co
    {
        printf("Loi cap phat bo nho");
        fclose (fptr);
        return 0;
    }
    
    for (int i=0; i<n; i++) //doc ki tu mang tu so
    fscanf(fptr,"%d",(Tong_NT+i));
    fclose (fptr);
    
    if ((fptr=fopen("CAU3.OUT.txt","w"))==NULL) //bao loi neu co
    {
        printf("Loi tao file CAU3.OUT");
        return 0;
    }
    for (int i=0; i<n; i++)
    {
        if(NT(Tong_NT[i])==1)
        TONG=TONG+(Tong_NT[i]);
        fprintf(fptr,"%d",TONG);
    }
    printf("Tong so NT: ") ;
    
    for (int i=0; i<n; i++)
    {
        if(NT(Tong_NT[i])==1)
        TONG=TONG+(Tong_NT[i]);
        fprintf(fptr,"%d",TONG);
    }
    fclose (fptr);
    printf("nChuong trinh da ket thuc");
}
Bài liên quan
0