man with no name פורסם 2012 בדצמבר 25 מחבר Share פורסם 2012 בדצמבר 25 לא כתבתי כלום שניצל...בגלל זה אני פה,לקבל עזרה בכתיבת הקוד קישור לתוכן שתף באתרים אחרים More sharing options...
מנחם פורסם 2012 בדצמבר 25 Share פורסם 2012 בדצמבר 25 תחשוב איך עושים חיבור ארוך, צעד אחרי צעד.תרשום את הצעדים אחד אחד (איפה מתחילים? מתי מפסיקים?, מה חוזר על עצמו? מה לא?), על דף, עד שאתה סגור לגמרי שכיסית את כל המקרים.ותרגם את זה לקוד.זהו, סיימת קישור לתוכן שתף באתרים אחרים More sharing options...
man with no name פורסם 2012 בדצמבר 26 מחבר Share פורסם 2012 בדצמבר 26 char * add_str (char *num1, char *num2){ int l1= strlen(num1); int l2= strlen(num2); int newsize=0; int i=0,j=0; int carry=0,x=0; char temp,temp2; char *newstr; if(l1 >= l2) newsize=l1+2; else newsize = l2+2; newstr=(char*)calloc(newsize , sizeof(char)); for(i = newsize-2 ; i>=0 ; i--) { x = num1[i]-'0' + num2[i]-'0' + carry ; if(x>9){ carry = 1 ; newstr[i+1] = x%10 + '0' ; } else{ carry=0 ; newstr[i] = x+'0' ; } } if(carry){ for(i=0; i < strlen(newstr) ; i++){ temp = newstr[i+1] ; newstr[i+1] = newstr[i] ; newstr[i]=temp; } newstr[0] = '1'; } //newstr[0]= carry + '0' ; newstr[newsize+1] = '\0' ; return newstr;חבר'ה יש למישהו משהו יותר אלגנטי? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בדצמבר 26 Share פורסם 2012 בדצמבר 26 הרעיון מוצלח, אבל יש לך כמה באגים פה ושם.אני מבין שאתה צריך לרוץ על המספרים מהסוף להתחלה, אבל הלולאה שלך עובדת כאילו שניהם באותו אורך. שים לב שהתא הראשון שאתה ניגש אליו הוא newsize-2, כשזה לא בהכרח התא שמכיל את ספרת האחדות בשני המספרים. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.