标题:超长正整数加法,看下哪错了?
只看楼主
蓝色色
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-4-9
结帖率:0
已结贴  问题点数:20 回复次数:2 
超长正整数加法,看下哪错了?
#include<stdio.h>
void main()
{int i,j,k,x=0,y=0,max,min;
char a[80],b[80],c[80];
printf("请输入加数:\n");
scanf("%s",a);
printf("请输入另一加数:\n");
scanf("%s",b);
  for(i=0;a[i]!='\0';i++){
        x++;
        if(a[i]>'9'||a[i]<'0'){
        printf("输入的加数错误!\n");break;}}
 if(a[i]=='\0'){
     for(j=0;a[j]!='\0';j++){
        y++;
        if(b[j]>'9'||b[j]<'0'){
        printf("输入的另一加数错误!\n");break;}}
 if(b[j]=='\0'){
         max=x>y?x:y;
         min=x>y?y:x;
    for(i=0;i<x/2;i++){
        k=a[i];
        a[i]=a[x-i-1];
        a[x-i-1]=k;}
    for(i=0;i<y/2;i++){
        k=a[i];
        b[i]=b[x-i-1];
        b[x-i-1]=k;}
        
   for(i=0;i<min;i++)
   c[i]=a[i]+b[i]-96;
   for(i=min;i<max;i++)
   {if(max==x)c[i]=a[i]-48;
     else c[i]=b[i]-48;}
  for(i=0;i<=min;i++)
    if(c[i]>9){c[i]-=10;
               c[i+1]++;}
      printf("和为:\n");
 for(i=max-1;i>=0;i--)
    printf("%d",c[i]);
    printf("\n");
      }
}}
搜索更多相关主题的帖子: 加法 整数 
2010-05-13 13:30
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:20 
printf("请输入加数:\n");
scanf("%s",a);
fflush(stdin);//清空缓冲区
printf("请输入另一加数:\n");
scanf("%s",b);

for(j=0;a[j]!='\0';j++){
        y++;
        if(b[j]>'9'||b[j]<'0'){
        printf("输入的另一加数错误!\n");break;}}

循环a数组判断 b数组

建议字符转换可以参照下
itoa()整数转换为字符
atoi()字符换整数
具体参照MSDN的其重载函数

或CString类的Format格式函数


[ 本帖最后由 hahayezhe 于 2010-5-13 14:44 编辑 ]
2010-05-13 14:43
蓝色色
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-4-9
得分:0 
fflush(stdin);//清空缓冲区
把这个加上还是得不出答案的啊,,,,,
2010-05-16 15:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-306491-1-1.html




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

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