פורסם 2012 בנובמבר 2413 שנים שלום, לאחר כתיבת פונקציה כלשהי שמחפשת כמה פעמים מופיע מספר כלשהו במספר נתון נתקלתי בבעיה כאשר הזנתי מספר בעל ספרות רבות, יכול להיות שאני טועה בהגדרת ההזנה ויכול להיות שזה באג, אין לי מושג. מתברר שהמספר שאני מזין אפילו לא נשמר בצורה תקינה, בלי קשר לפונקציה או לקוד, אפילו בקוד הנ"ל :- #include <stdio.h>int main(){ long int n; scanf("%ld", &n); printf("%ld", n); return 0;} כאשר אני מזין קלט של n בעל ספרות קטנות מ11 אני מקבל את מה שביקשתי, למשל אם הזנתי 1111 אקבל 1111 אך במקרה ואני מזין n גדול מ11 ספרות אקבל משהו חסר משמעות כמו -1773790777 למה זה קורה?
פורסם 2012 בנובמבר 2413 שנים מה זה MVS?long int מוגדר להיות לפחות 32 ביט, כלומר מקסימום 2 בחזקת 31 (או בחזקת 32, אם זה unsigned). במערכות מסויימות זה 32 ביט בעוד שבמערכות אחרות זה 64 ביט. אתה יכול לבדוק בקלות את הגודל במערכת שלך באמצעות sizeof.בשביל להבטיח 64 ביט, תשתמש ב-long long int, אבל אז צריך לקלוט ולהדפיס באמצעות lld ולא רק ld.
פורסם 2012 בנובמבר 2413 שנים מחבר תודה רבה פתרת לי את הבעיה MVS זה קיצור של Microsoft visual studio סביר להניח שזה קיצור לא רשמי
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.