易截截图软件、单文件、免安装、纯绿色、仅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代表数组的大小,如果想要遍历整个数组,那就得这样写了.

谢谢各位大哥啦


相关问答:

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

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

引用
一定,并永远坚持



有用。

楼主何出此言

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

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

c ......

我很伤心,C即将被淘汰!

6月5日消息,XX网站日前评出了10项大势已去的计算机技术。其中,有些技术已经被淘汰,有些即将被淘汰。如著名的Cobol语言,以及IBM的OS/2系统。

  以下为XX网站评出的被淘汰的10项计算机技术:

   ......

c中的转义字符问题

    '\108'作为字符常量对不对?
转义字符'\ddd'表示3位8进制所代表的字符。 但是108不是正确的8进制表示方法,因此应该是错误的。
但是char a='\108'; 为什么编译不出错呢?
\108 没超过 ......

大家觉得 C Primer Plus 这本书怎么样呢?

用这本书入门怎么样呢  跟谭浩强的相比如何? 谢谢
我把这本看了几篇,确实很好的书。就不要拿它跟 谭 的书比了, 谭 的书要照顾全国读者。

不可同日而语

一个是国外的,一个是国内的

学完c primer ......

请C/C++高手进,请教!

功能是实现字符串的翻转,不知道哪里有错误,请指教
#include <iostream>
#include <stdio.h>

using namespace std;
void reverse()
{
char ch;
scanf("%c",ch) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号