תוכנית בc שלא עובדת

dedtheded

New member
תוכנית בc שלא עובדת

כחלק מתרגיל הגעתי למצב בו המשתמש בוחר ערך כלשהו לx , ואני רוצה להציג כל y עבורו הביטוי:
9*x*x*y*y-4*(x*x+y*y)​
הוא ריבוע שלם. ניסיתי להשתמש בlongint אבל מתקבלים מספרים גדולים מדי , ואחרי שלב מסויים מתקבלות תוצאות לא נכונות. החלטתי לעשות תוכנית בעצמי למספרים גדולים , אבל היא פשוט רצה ולא מפסיקה, עד שהזכרון הוירטואלי של המחשב נגמר (או ככה לפחות הוא מודיע (XP)). השיטה שבה עובדת התוכנית: כל מערך מ0 עד n מייצג מספר בן n ספרות כאשר במקום ה0 מאוחסנת כמות הספרות של המספר , ובשאר המקומות מאוחסנות הספרות , כך שהספרה במקום הראשון היא בעלת ערך 1 , הספרה במקום השני בעלת ערך 10 וכן הלאה , כפי שמוגדרת השיטה העשרונית. ניסיתי הרבה זמן למצוא היכן התקלה , אבל לא הצלחתי. הקובץ מצורף , ולצערי די ארוך. אודה מאוד למי שיוכל לעזור. בר.
 

the new L

New member
אם אתה עובד עם

מספרים ממש גדולים עד כדי כך שאין לך מקום, אתה יכול לעבור להשתמש בבסיס אחר ולא בבסיס 10 (שכנראה מבזבז לך די הרבה מקום). למשל, אתה יכול לעשות משהו כזה:
char longNumber[N];​
ואז, בהנחה שבמערכת שלך char הוא 8 byte, אז תוכל להתייחס לזה כתור מספר בבסיס 256, ואז באמת כל מספר מייצג ספרה
 
למעלה