首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么实现连加

2012-03-01 
如何实现连加写了一个函数Add(char*Sresult,char*SIntpart1,char*SIntpart2)已经能实现两数的相加其中part

如何实现连加
写了一个函数Add(char   *Sresult,char   *SIntpart1,char   *SIntpart2)已经能实现两数的相加
其中part1,part2是两个加数,   sresult   为结果,调用这个函数之前需要给这三个参数都分配空间来存储数据,怎样才能实现   类似a+b+c+d的这样的连加那,还有可能是很多个数相加,   不只4个数相加,样实现这样的加法那?望指教

[解决办法]
// ignore secure codes
int *add(int *r, int *a, int *b)
{
*r = *a + *b;
return r;
}

int main()
{
int r;
int a = 1, b =2, c= 3, d =4;

add(&r, &d, add(&r, &c, add(&r, &b, &a)));
printf( "r = %d\n ", r);

}
[解决办法]
char *表示字符串不方便,因为要实现这个功能最好的方法就是将+操作符重载。

最好的方法就是自己定义一个类,表示字符串,然后重载其+操作符,类似于string类或者MFC中的CString类。

在重载+运算符时只要返回该类的引用即可。


[解决办法]
不要试图提供这样的功能。
[解决办法]
不知道搂住为什么要想办法实现这样的功能。那样没有实用的价值阿

难道 n个数连加的时候, n个数都要预先分配存储空间吗? 如果不关心中将结果。那么两个变量足以,如果是你的具体实现是将结果存放在a1种的话, 那么add(a1,a2)add(a1,a3) add(a1,a4)就可以实现4个数连加了阿。 只不过是分成四个步骤而已。

[解决办法]
如果确实有需要,
使用 可变参数列表即可 ~
[解决办法]
//add的格式,第一个参数是个数,后面是被加数
#include <stdarg.h>

int add(int i,...)
{
int ret=0;
int j;
va_list ap;
va_start(ap,i);
for(j=1;j <=i;j++){
ret+=va_arg(ap,int);
}
return ret;
}

int main(int argc, char* argv[])
{
printf( "%d,%d ",add(3,1,2,3),add(5,1,2,3,4,5));
getch();
return 0;
}
[解决办法]
学习了..

热点排行