My program is nearly done.But my function SumN doesnt print the correct output.
SumN have to output the Sum of numbers that belong to the interval [a;b].
Example:
input
a=1
b=10
1
4
13
45
10
output
sum=15

but im getting 60 and in should be 15.

Can sameone help ?

#include "stdafx.h"
int CountEven(FILE *fint);
void SumN(FILE *fint,int a ,int b );
void MyFilePrint(FILE *fint );

int _tmain(int argc, _TCHAR* argv[])
{   FILE *fint;
    int m,i=0,a,b,number;

    if((fint=fopen("a.txt","w"))!=NULL){
        printf("vavedete interval [a;b]\na=");
        scanf("%d",&a);
        printf("b=");
        scanf("%d",&b);
        printf("Vavedete realni chisla, za krai vavedete CTRL/Z:\n");
        m=scanf("%d",&number);

        while(m != EOF){
            fprintf(fint,"%d",number);
            fputc(' ',fint);
            if(++i%2==0)fputc('\n',fint);
            m=scanf("%d",&number);
        }

    fclose(fint);
    }else printf("Greshka pri otvarianeto na faila");
        CountEven(fint);
        SumN(fint , a , b );
        MyFilePrint(fint);
    return 0;
}
int CountEven(FILE *fint)
{   int  even=0, number; 

    if((fint=fopen("a.txt","r"))!=NULL){
        while(fscanf(fint, "%d", &number) != EOF){ 

            if (number%2==0)  
                even++;   

        }  

        fclose (fint); 
    }else printf("Greshka pri otvarianeto na faila");

    return printf("Ima %d chetni chisla vav faila.\n", even); 
}
void SumN(FILE *fint,int a ,int b )
{   int  number,m; 
    int *sum=0;
    if((fint=fopen("a.txt","r"))!=NULL){
        m=fscanf(fint, "%d", &number);
        while( m != EOF){ 

            if ((number>=a) && (b>=number)) 
                sum=sum+number;

            m=fscanf(fint, "%d", &number);
        }  

        fclose (fint); 
    }

    printf("Sumata na chislata prinatlejashti na intervala ot %d do %d e %d\n",a,b,sum); 
}
void MyFilePrint(FILE *fint)
{   int m , number , i=0;
    if((fint=fopen("a.txt","r"))!=NULL){
    m=fscanf(fint,"%d",&number);

        while(m != EOF){
            printf("%d",number);
            printf(" ");
            if(++i%3==0)printf("\n");
            m=fscanf(fint,"%d",&number);
        }
    }else printf("Greshka pri otvarianeto na faila");
}

int *sum=0;

sum is a pointer yet you use it as an integer. It shouldn't be a pointer in this case.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.