易截截图软件、单文件、免安装、纯绿色、仅160KB

问个好简单的C问题

#include "stdio.h"
#define N 5
int a[N]={10,20,30,40,50};
main()
{int i;
  float s,v;
  for(s=i=0;i <N;i++)
      s=s+a[i];
v=s/N;
ptintf("The average is % 6.2f\n",v);
}
我的问题就是代码的第2行和第3行,第2行是给N赋值为5,为什么第3行不直接写成int a[5]={10,20,30,40,50};
而要多写出第2行代码来呢?
因为第3行可能写到任何位置,如果以后要修改程序时,当然是修改的2行方便了,
下面的程序都不需要修改!
修改int a[]这个数量需要先找到它,然后再修改。而且不止一个地方需要修改。

程序里不止一个地方用到N,方便你以后要改N的值,就可以直接改#define那行,而不用在程序里每个出现N的地方都改

我的问题就是代码的第2行和第3行,第2行是给N赋值为5,为什么第3行不直接写成int a[5]={10,20,30,40,50};
而要多写出第2行代码来呢?
------------------------
如果你直接写a[5],如果你以后修改N的值的话,不是要修改很多地方。
第2行代码多余吗?

第二行是宏定义,N就表示5,代码中出现单独的N的地方就用5去代替,这个替换工作是在编译期完成的,和你说的一样,可以直接用写a[5],但是这样一来后面的循环也得改成i <5,如果用到5的地方多了,有一天你想把5改成6的时候你就发现第二行并不是多的

你这里主要是用到了宏定义.
看看后面的循环,用到了N.
N代表数组的大小,如果想要遍历整个数组,那就得这样写了.

谢谢各位大哥啦


相关问答:

jsp中 <c:if test> 相关问题

在查询后将查询出来的值赋给各输入框
<c:if test="${not empty dataValue}">
      fm.SAMPLING_DATE.value=" <c:out value='${dataValue.SAMPLING_DATE}'/ ......

一个简单的c游戏

13个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到3者退出圈子,找出最后留在圈子中的人原来的序号
结果应该是13 可我的程序的结果是11 希望好心人帮改一下
#include <stdio.h>
#include < ......

两个C文件的问题

以前在VC里面建一个工程,都只用一个 .c 文件,昨天在一个工程里用了两个 .c文件了,遇到问题了,请大家指点。比如:
File1.c Fil ......

你们现在还在用C吗?C有前途吗?

你们现在还在用C吗?C有前途吗?
一定,并永远坚持

引用
一定,并永远坚持



有用。

楼主何出此言

楼主来c版问这个问题是踢馆用意吗哈哈

越来越冷是肯定的,完全淘汰倒也没那么容易

c ......

一个非常简单的C程序的运行结果

#include <stdio.h>
main()
{
int a,b,sum;
a=1;b=2;
sum=a+b;
printf("sum is %d\n");
}


结果是:2367460

为什么?
printf("sum is %d\n", ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号