當前位置:編程學習大全網 - 編程軟體 - 兩個20位數相加的C語言程序,麻煩幫忙看壹下哪裏有錯~~~

兩個20位數相加的C語言程序,麻煩幫忙看壹下哪裏有錯~~~

我寫了壹個壹百位以內的 兩個長正整數相加的程序 供參考

#include <stdio.h>

int main(int argc,char **argv)

{

char n1[100];

char n2[100];

char add[101];

int length1;

int length2;

int length3;

int temp1;

int temp2;

int temp;

int flag=0;

int i;

printf("num 1:\n");

i=0;

while((n1[i]=getchar()) != '\n') {

if(n1[i]<'0' || n1[i]>'9')

{

printf("input is not number\n");

return 1;

}

i++;

}

length1=i;

n1[i]='\0';

// printf("%s\n",n1);

printf("num 2:\n");

i=0;

while((n2[i] = getchar()) != '\n') {

if( n2[i] < '0' || n2[i] > '9')

{

printf("input is not number\n");

return 1;

}

i++;

}

length2=i;

n2[i]='\0';

// printf("%s\n",n2);

length3=length1;

if(length2 > length3)

length3 = length2;

for(i=1;i<=length3;i++)

{

if((length1-i) < 0)

temp1 = 0;

else

temp1 = n1[length1-i] - '0';

if((length2-i) < 0)

temp2 = 0;

else

temp2 = n2[length2-i] - '0';

temp= temp1 +temp2 +flag;

if(temp >9)

{

temp -= 10;

add[length3+1-i] =temp+'0';

flag=1;

}

else

{

add[length3+1-i] = temp + '0';

flag=0;

}

}

add[length3+1]='\0';

add[0]='0'+flag;

printf("%s \n",add);

return 0;

}

  • 上一篇:VB編程,輸入壹個八進制數,轉換成為十進制數的子過程。
  • 下一篇:有計算機編程底子,能學PLC嗎?還有觸摸屏
  • copyright 2024編程學習大全網