| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 615 人关注过本帖
标题:关于文件运行的问题
只看楼主 加入收藏
george_2006
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-22
收藏
 问题点数:0 回复次数:7 
关于文件运行的问题

eScuPieZ.txt (3.49 KB) 关于文件运行的问题


关于本文件的运行的问题
这个程序是求多位数相加然后显示的算法,
我是想问一下
第一次运行add时,输出这个
input x=4654654
input y=5646546
the result x+y=10301200


第二次运行,却输出了这样
input x=654564564654
input y=65465456465
the result x+y=720030021119

‼▐  ▲ä▲±UF

后面是一些乱码,
每多运行一次,乱码就会多一些相同的乱码,不知道为什么,可没有可能是
编译器的问题??
我弄了半天也不知道是什么原因
谢谢 高手 了啊

搜索更多相关主题的帖子: 文件 运行 
2007-05-23 13:00
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
我没看程序 不过有乱码 就是输出的时候
后面你没加$
因为你两个数相加一定是定义的字符串
你在定义放最后输出的数是时候 在最后加一个$看看


   好好活着,因为我们会死很久!!!
2007-05-23 13:35
george_2006
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-22
收藏
得分:0 

我不是输出字符串,我是先把字符压入栈底,然后一个一个的弹出栈,显示的.呵呵,检查了几天都不知道为何会出错啊

2007-05-24 14:24
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
哦 用的栈 我没看哈
明天看看 下下来

   好好活着,因为我们会死很久!!!
2007-05-24 23:07
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 

你可以做一哈解释吗
不好看 呵呵
其实我觉得两个大数相加可以用字符串来做 应该还好做点


   好好活着,因为我们会死很久!!!
2007-05-25 16:41
george_2006
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-22
收藏
得分:0 

字符串怎么做??
不等长的数相加怎么做??
还要涉及到进位~~~
呵呵,能给我一个你的程序吗?
我暂时还没有想到怎么办?

2007-05-25 21:22
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
可以呀
我先给你说一个思路哈
先输入数到字符串里嘛
因为低位在字符串的后面 你输入的时候记下这个数
在判断输入的两个数哪个长些
在用短的那个来循环 两个相加 当有进位 加起来的数就大于9
这样你用一个判断是不是大于9 是大于 就减10 在后面加一
循环完拉 在判断最后一位是不是大于9 是的就在长的那个数的加完后的低位加一
在输出 就这样
我语文不怎么好 也不晓得说清楚没有

   好好活着,因为我们会死很久!!!
2007-05-25 22:16
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 

刚写了个C的,LZ可以看下算法
[CODE]/* 标准文档模板 */
#include "Stdio.h"
#include "Conio.h"
int main(void)
{
char a[]={'1','9','9','9','9','9','9','9','9','9','9'}; //数19999999999
char b[]={'1','9','9','9','9','9','9','9','9','9','9'}; //数19999999999
int result[12]={0}; //存放结果数组
int i = 0, k = 0;
int lena = sizeof(a)-1, lenb = sizeof(b)-1;
int len = ((lena>lenb)?lena:lenb); //最大循环次数
int temp = 0;
for (i=len;i>=0;i--)
{
temp = (a[i]-0x30)+(b[i]-0x30);
if (temp/10 > 0)
{
if (k == len+1) //进位最多为1,设置最高位
{
result[k] = 1;
break;
}
result[k] = result[k]+temp%10;
result[k+1] = result[k+1]+temp/10;
}
else
{
if (k == len+1) //进位最多为1,设置最高位
{
result[k] = 0;
break;
}
result[k] = result[k]+temp%10;
}
k++;
}
printf("Number one is: "); //输出
for (i = 0;i < lena; i++)
printf("%c",a[i]);
printf("\nNumber two is: ");
for (i = 0;i < lenb; i++)
printf("%c",b[i]);
printf("\nThe result is: ");
for (i = len+1;i >= 0; i--)
printf("%d",result[i]);
getch();
return 0;
}[/CODE]


2007-05-25 22:59
快速回复:关于文件运行的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018422 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved