CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

突发奇想 别打我啊

楼主niece(薇 我有新女人了)2004-08-01 15:32:36 在 C/C++ / C语言 提问

int   a[3]={1,2,3}  
  int   b[3]={4,5,6}  
   
        怎么才能   a[]*b[]     实现   123*456 问题点数:0、回复次数:21Top

1 楼peter9606( 荷尔蒙一失效 人就清醒了)回复于 2004-08-01 15:38:44 得分 0

应该到c++版面去  
   
  因为c不能重载运算符  
   
  用c++中的运算符重载就可以了  
   
  其实数学真得不难Top

2 楼leonchew(安静(静哥哥,找寻黄蓉中...))回复于 2004-08-01 15:43:36 得分 0

c++可以搞定Top

3 楼niece(薇 我有新女人了)回复于 2004-08-01 15:45:14 得分 0

哥哥用C有办法吗Top

4 楼peter9606( 荷尔蒙一失效 人就清醒了)回复于 2004-08-01 15:46:11 得分 0

问题是在c中   数组的乘法是没有定义的Top

5 楼niece(薇 我有新女人了)回复于 2004-08-01 15:51:59 得分 0

加也可以     比如   实现   123+456Top

6 楼peter9606( 荷尔蒙一失效 人就清醒了)回复于 2004-08-01 15:55:17 得分 0

加也可以     比如   实现   123+456  
  ????  
  c语言没有实现数组的任何运算吧~!除了[]  
  楼主怎么实现的?Top

7 楼niece(薇 我有新女人了)回复于 2004-08-01 15:58:20 得分 0

我是问大家啊Top

8 楼wlj1800(跑步进入原始社会)回复于 2004-08-01 16:01:22 得分 0

不明白什么意思,怎么是123+456咯  
  要是数组的运算加或乘也不是这样子的啊    
  是不是要现将数组(数组大小为n)里面的数字变成一个n位数,然后与另一个数组构成的n位数相乘啊   ?  
  那c实现一点也不难啊      
  Top

9 楼hellwolf(地狱狼)(活着)(死磕)回复于 2004-08-01 16:01:25 得分 0

c++   ,c++的运算符重载可以解决Top

10 楼UPCC(杂食动物)回复于 2004-08-01 16:18:21 得分 0

本人只是无聊搞搞,高人不要拍我砖头,因为我知道我错了......我用了个愚蠢的方法!  
   
  #include   <stdio.h>  
  #include   <stdlib.h>  
  #include   <string.h>  
  char*   change(int*   a,int   n)  
  {  
  char*   ch   =   new   char[n+1];  
  for(int   i=0;   i<n;   i++)  
  {  
  if(i==0)  
  {  
  char   c=a[0]+48;  
  strcpy(ch,&c);  
  }  
  else  
  {  
  char   cc=a[i]+48;  
  strcpy(ch+i,&cc);  
  }  
  }  
  ch[n]='\0';  
  return   ch;  
  }  
  int   main(void)  
  {  
  int   a[4]={1,2,3};  
  int   b[4]={4,5,6};  
  char   *c1=change(a,3);  
  char   *c2=change(b,3);  
  int   c=atoi(c1)+atoi(c2);  
  printf("%d\n",c);  
  return   0;  
  }Top

11 楼UPCC(杂食动物)回复于 2004-08-01 16:20:17 得分 0

if(i==0)  
  {  
  char   c=a[0]+48;  
  strcpy(ch,&c);  
  }  
  else  
  可以省列掉。Top

12 楼UPCC(杂食动物)回复于 2004-08-01 16:24:41 得分 0

用简单的吧..........哎又连续发帖了.....sorry  
   
  #include   <stdio.h>  
  #include   <stdlib.h>  
  #include   <string.h>  
  int   change(int*   a,int   n)  
  {  
  char*   ch   =   (char*)malloc(sizeof(char)*(n+1));  
  for(int   i=0;   i<n;   i++)  
  {  
   
  char   cc=a[i]+48;  
  strcpy(ch+i,&cc);  
  }  
  ch[n]='\0';  
  int   temp=atoi(ch);  
  free(ch);  
  return   temp;  
  }  
  int   main(void)  
  {  
  int   a[4]={1,2,3};  
  int   b[4]={4,5,6};  
  int   c1=change(a,3);  
  int   c2=change(b,3);  
  int   c=c1+c2;  
  printf("%d\n",c);  
  return   0;  
  }Top

13 楼micty(你说世界可以被我们平分?)回复于 2004-08-01 17:36:35 得分 0

分别用两个循环算出a和b把  
  算法,用第一个元素乘100然后循环到第二个乘10然后又循环到第三个乘一,不是123了吗  
  同样算出b啊Top

14 楼KingI(我现在很热!!!)回复于 2004-08-01 18:25:23 得分 0

main()  
  {  
  int   a[3]={1,2,3};  
  int   b[3]={4,5,6};  
  int   i;  
  int   m,n;  
   
  m=a[0]*100+a[1]*10+a[2];  
  n=b[0]*100+b[1]*10+b[2];  
   
  printf   ("a*b=%ld",   m*n);  
   
  return   0;  
  }  
   
  Top

15 楼niece(薇 我有新女人了)回复于 2004-08-01 22:38:10 得分 0

楼上几位的程序   都不行啊Top

16 楼yzguoz(小虾=猪头秦王=天上的星星不说话,地上的娃娃笑哈哈)回复于 2004-08-01 22:52:25 得分 0

真的很麻烦  
  没有实际意义Top

17 楼sunjx119(睿锐)回复于 2004-08-02 00:02:06 得分 0

C当然可以实现!  
  有什么用C++实现的了,但是用C实现不了的,搞笑~  
  C++只不过的C的超集而已Top

18 楼sunjx119(睿锐)回复于 2004-08-02 00:04:15 得分 0

给楼主个思路:  
  1.想办法把数组转化为字符串。  
  2.用atoi函数将字符串转化为int。  
  3.用转化好的int去做你想做的事。Top

19 楼milozy1983(Detective)回复于 2004-08-02 00:16:00 得分 0

超长整数的算法我写过,思路主要是用第三个数组来存放结果,123*456=6*123+50*123+400*123,用循环就可以得出结果,别忘记处理下进位问题。就这么简单。Top

20 楼cthiro123(小米稀饭)回复于 2004-08-02 16:47:31 得分 0

dingTop

21 楼niece(薇 我有新女人了)回复于 2004-08-02 21:07:58 得分 0

UPTop

相关问题

  • 突发奇想!
  • 突发奇想 有兴趣的来 指纹识别
  • 突发奇想与奇思妙想!!!
  • 我的突发奇想。实在没思路,请达人指点。
  • C++ 作用域的问题.突发奇想.求高手解答
  • 有关C编译的突发奇想,请高手指教
  • 突发奇想:如果你有两个"小弟弟",你会什么办
  • 突发奇想--网络连接方面的控制,欢迎讨论指教!
  • 今天突发奇想。预备写一个为初学者的asp教程
  • 突发奇想,想投资域名,不知大家有何建议

关键词

  • c++
  • 数组
  • 实现
  • include
  • char

得分解答快速导航

  • 帖主:niece

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo