鱼C论坛

 找回密码
 立即注册
查看: 1567|回复: 2

定义变量赋值问题

[复制链接]
发表于 2016-9-18 13:18:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
int  i , j=0; 定义变量j赋初值0,程序正确。但是这样,先定义再赋值,int  i , j;  j=0 为什么会出错??求解答这是题目,下面是程序
QQ图片20160918131134.png
#include <stdio.h>
#define   N   8
typedef  struct
{  char  num[10];
   double  s;
} STREC;
double  fun( STREC  *a, STREC *b, int *n )
{
  int i,j=0;     //  int i , j; j=0 这样先定义再赋值,为什么会出错呢
  double av=0.0;
  for(i=0;i<N;i++)
    av=av+a[i].s;
  av=av/N;
  for(i=0;i<N;i++)
    if(a[i].s<av) b[j++]=a[i];
  *n=j;
  return av;  
}

main()
{  STREC  s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
                {"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}};
   STREC  h[N],t;FILE *out ;
   int  i,j,n;  double  ave;
   ave=fun( s,h,&n );
   printf("The %d student data which is lower than %7.3f:\n",n,ave);
   for(i=0;i<n; i++)
     printf("%s  %4.1f\n",h[i].num,h[i].s);
   printf("\n");
   out = fopen("out.dat","w") ;
   fprintf(out, "%d\n%7.3f\n", n, ave);
   for(i=0;i<n-1;i++)
     for(j=i+1;j<n;j++)
       if(h[i].s>h[j].s) {t=h[i] ;h[i]=h[j]; h[j]=t;}
   for(i=0;i<n; i++)
     fprintf(out,"%4.1f\n",h[i].s);
   fclose(out);
}



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-18 23:28:07 | 显示全部楼层
       int i , j; j=0
改为int i , j; j=0;
就没错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-19 17:52:37 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 03:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表