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.