intçåéè£
ä¸ä¸15ä½é£ä¹å¤§çï¼æ æ³scanf("%d")è¾å
¥ï¼è¦è¡¨ç¤ºè¿ç§è¶
è¿è®¡ç®æºlong大å°çæ°æ®ï¼æç®åçå°±æ¯ä½¿ç¨
å符串ï¼ä¾å¦è¦è¡¨ç¤º1000ä½çæ´æ°ï¼å¯ä»¥å®ä¹çåé为ï¼
char big1[1000], big2[1000],big3[1000];
ç¨scanf("%s")æè
gets读å
¥æ°æ®ï¼æç
§æå³å¯¹é½è¿è¡å è¿ç®ç»æåå
¥big3ï¼æç®åçåæ³æ¯éåbig1ãbig2ç¶åæä½å ç»æä¿åå°big3ï¼æåéåbigåå°±æ¯ç»æï¼å½¢è±¡ç¹ä¸¾ä¾ï¼
å¦æè¾å
¥çbig1æ¯ï¼123456789999999999
ç¨åºéåæåºä¸ºï¼999999999987654321
对big2åæ ·çå¤çï¼ç¶åå°±å¯ä»¥æä½è®¡ç®å计åå
¥big3
æ´ä¸ªç¨åºï¼å
³é®çå°±æ¯ä¸¤ä¸ªå½æ°ï¼ç¬¬ä¸ä¸ªæ¯è®¡ç®æ±åç:
void big_sum(char a[], char b[], char c[]);
å½æ°çåè½æ¯è®¡ç®è¶
大æ´æ°çå æ³ï¼c=a+b
第äºä¸ªæ¯éåå符串çå½æ°ï¼
void str_rev(char s[]);
åè½æ¯æå符串sæ¶å°¾é¢ åï¼ä¸é¢ä»¥Cè¯è¨çè¯æ³æ述两个å½æ°ç®æ³ï¼å¦æçä¸æ就代ç å°±ç注éã
void str_rev(char s[]){
int n=0,i=0;
char t;
while(s[n]) n++;/*使å¾æé移å¨å°å符串æ«å°¾çç»æ符*/
n--;
while(i>n){t=s[i];s[i]=s[n];s[n]=t;i++;n--;}/*é¦å°¾äº¤æ¢*/
}
å æ³å½æ°çç®æ³é»è¾å¦ä¸ï¼
void big_sum(char a[], char b[], char c[]){
int ia=0,ib=0,ic=0,s=0;
str_rev(a);/*éåa*/
str_rev(b);/*éåb*/
while(a[ia] && b[ib]){
if (a[ia]) {s+=a[ia]-'0'; ia++;}/*å¦æa没æå®ï¼é£ä¹ååºä¸ä½ç´¯å å°sï¼ç§»å¨å°ä¸ä¸ä½*/
if (b[ib]) {s+=b[ib]-'0'; ib++;}/*å¦æb没æå®ï¼é£ä¹ååºä¸ä½ç´¯å å°sï¼ç§»å¨å°ä¸ä¸ä½*/
c[ic]='0' + s%10;/*ä¸ä½ç»æï¼è½¬æ¢ä¸ºå符*/
s/=10;/*ä¿çè¿ä½*/
ic++;
}
c[ic]='\0';/*ç»ç»ææ·»å ç»æ符*/
str_rev(a);/*è¿åa*/
str_rev(b);/*è¿åb*/
str_rev(c);/*è¿åc*/
}
æåå°±æ¯ä¸»ç¨åºäºï¼
main(){
char a[1000],b[1000],c[1000];
printf("a=");gets(a);
printf("b=");gets(b);
big_sum(a,b,c);
printf("c=");pets(c);
}