C语言详解 之 数值列表积

 

#include <stdio.h>
#include <math.h>
#define input "list.txt"
#define max 5

int fgetList(FILE*inp, int list[], int max_num);

int main()
{
    FILE *inp;
    int count;
    int x[max],y[max],z[max];
    inp = fopen(input, "r");
    count = fgetList(inp, x, max);
 printf("%d/n",count);
    count = fgetList(inp, y, max);
 printf("%d/n",count);
    int sum=0;
    for(int i=0;i<count;i++)
    {
       z[i]=x[i]*y[i];
       sum += z[i];
    }
   
    double result = sqrt(sum);
    printf("x/ty/tz/n");
    for(i=0;i<count;i++)
    {
       printf("%d/t%d/t%d/n",x[i],y[i],z[i]);
    }
    printf("%f", result);
   
 fclose(inp);
   return 0;
}

int fgetList(FILE*inp, int list[], int max_num)
{
    int i=0;
    int temp;
    fscanf(inp,"%d",&temp);
    while(-9 != temp && i<max_num)
    {
      list[i] = temp;
      i++;
      fscanf(inp,"%d",&temp);
    }
   
    if(i == max_num)
    {
      printf("array size is not enough!!/n");

  
   do{
     fscanf(inp,"%d",&temp);
   }while(-9 != temp);   /// 此处这段代码是十分有必要的,因为它会让文件指针正确的指到下一个数组的开头。


     }
   
    return i;
 
}

 

 

这段代码的有意思的地方在于我的一个错误!

 

int fgetList(FILE*inp, int list[], int max);

这时候报出一个编译错误说这行代码有错,一直找不出来。

最后我将函数拆成不带参数的函数,没有错误,一个、两个都没有错。原来是

max 出错。

因为我在程序开始时写了

#define max 20

这时候编译认为这两个变量属于重复声明,故而报错!!

这个错误自己应该谨记!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值