一等家丁吧 关注:121,054贴子:2,724,248
  • 17回复贴,共1

高调求助C语言!

只看楼主收藏回复

大数加法,字符预算 给我解释一下主程序什么意思,最好详细点,大神们,来吧
#include <stdio.h>
#include <stdlib.h>
main()
{
int a[2000];
int b[2000];
int c[2000];
char ch;
int m,n;
int i;
int j;
int k;
int flag;
i=1;
scanf("%c",&ch);
while(ch>='0'&&ch<='9')
{
a[i]=ch-'0';
i++;
scanf("%c",&ch);
}
m=i-1;
i=1;
scanf("%c",&ch);
while(ch>='0'&&ch<='9')
{
b[i]=ch-'0';
i++;
scanf("%c",&ch);
}
n=i-1;
i=m;
j=n;
k=1;
flag=0;
while(i>=1&&j>=1)
{
c[k]=(a[i]+b[j]+flag)%10;
flag=(a[i]+b[j]+flag)/10;
k++;
i--;
j--;
}
while(i>=1)
{
c[k]=(a[i]+flag)%10;
flag=(a[i]+flag)/10;
k++;
i--;
}
while(j>=1)
{
c[k]=(b[j]+flag)%10;
flag=(b[j]+flag)/10;
k++;
j--;
}
if (flag==1)
printf("1");
for(i=k-1;i>=1;i--)
printf("%d",c[i]);
system("pause");
return 0;
}


1楼2011-11-29 20:27回复
    ...虽然我是学嵌入式的。。。虽然我大二了。。但我C不好。。很不好


    2楼2011-11-29 20:34
    收起回复
      2025-08-30 04:34:50
      广告
      不感兴趣
      开通SVIP免广告
      都学到指针了。。


      3楼2011-11-29 20:34
      收起回复
        我感觉上当了!这程序完全没有实际意义!
        简单的说就是录入2个数组 a[m] b[n]
        mn同时递减
        当nm同大于0时 C[k]=(a[m]+b[n]+flag)%10;
        当nm其中一个等于0时
        就用较大数字所在的数组+flag与10取余他的值继续录入到c[k]
        如果flag等于1就输出1
        然后按k由大到小的顺序输出C[k]


        IP属地:湖南4楼2011-11-29 20:51
        回复
          c语言不懂!java就懂点~!这代码的运算符号没搞清楚。我入门是java的!


          5楼2011-11-29 20:57
          回复
            我表示楼上几位都是没学过超过5节课的。手机有压力。回去电脑上给你解释。先简单跟你说。首先a数组和b数组输入存放两个数字。c数组是这两个数的和的存放。m和n代表他们的位数。自己先琢磨。晚会回去给你注释。


            来自手机贴吧6楼2011-11-29 21:09
            收起回复
              我会++


              7楼2011-11-30 12:32
              回复
                菜鸟就安静。不懂装懂害死人。笑摸4楼狗头


                来自手机贴吧8楼2011-11-30 12:38
                回复
                  2025-08-30 04:28:50
                  广告
                  不感兴趣
                  开通SVIP免广告
                  6楼正解


                  IP属地:湖北9楼2011-11-30 13:06
                  回复