#include
#include
//定义结构体,保存m与n
typedef struct
{
int m;
int n;
}node,*pnode;
//统计求和
int Sum(pnode p,int num)
{
int i,j;
int sum=0;
int flag;
//从10到1000
for(i=10;i<=1000;i++)
{
flag=1;
for(j=0;j
{
flag=0;
break;
}
if(flag==1)//符合要求,累加和
sum+=i;
}
return sum;
}
int main(void)
{
int num;//输入能被m值除余n的对数
pnode p;//结构体指针
int i; //循环变量
int sumtemp,sum=0;//求和
int sel;//选择是否继续
FILE *fp;
while(1)//无限循环
{
//录入数据
printf("\n输入能被m值除余n的对数:");
scanf("%d",&num);
if(num<=0)
{
printf("个数不合法\n");
return 1;
}
p=(pnode)malloc(num*sizeof(node));
if(p==NULL)
{
printf("内存申请出错\n");
return 1;
}
printf("依次录入%d对数值,中间用空格隔开\n",num);
for(i=0;i
printf("输入第 %d 对m和n:",i+1);
scanf("%d%d",&(p+i)->m,&(p+i)->n);
if((p+i)->m<=0 || (p+i)->n<=0 || (p+i)->m<=(p+i)->n)
{
printf("数据不合法\n");
return 1;
}
}
printf("统计数据...\n");
sumtemp=Sum(p,num);
if(sumtemp==0)
return 1;
printf("%d\n",sumtemp);//显示本次累加和
sum+=sumtemp;//累加总和
free(p);//是否资源
printf("是否继续统计?1-是;其余数字-否");
if(scanf("%d",&sel)!=1||sel!=1)//选择否或者其它键,退出循环
break;
}
printf("保存文件...\n");
fp=fopen("out.txt","w");
if(fp==NULL)
{
printf("打开文件出错\n");
return 1;
}
fprintf(fp,"sum=%d\n",sum);
fclose(fp);
return 0;
}