פורסם 2011 בדצמבר 1813 שנים מחבר התוכנית מציגה במקום את הערכים שיישמתי כתובות או משהו כזה, למה זה קורה?צריך לכתוב לפחות 30 תווים לבדיקה הזאת.תודה!#include <stdio.h>#include <conio.h>#define N 32char getNum (char arr1[],char arr2[],int n);char addNums(char arr1[],char arr2[],char arr3[],int n); int main (){ char arr1[32]; char arr2[32]; char arr3[33]; getNum(arr1,arr2,N); printf("\n %d %d\n",arr1[0],arr2[0]); addNums(arr1,arr2,arr3,N); getch(); return 0;}char getNum (char arr1[],char arr2[],int n){ int i,j,count; char k=0,m=0,z=0,l=0; printf("Please enter two positive numbers:\n "); printf("num 1 "); for (i=31;i>-1&&z!=1;i--){ k=scanf ("%c",&arr1[i]); if (arr1[i]=='\n') z=1;if ((arr1[i]>'9'||arr1[i]<'0')&&z!=1) { printf("wrong input! "); return 0; } } i=i++; count=i; for (count;count>-1;count--){ arr1[count]=0;} fflush(stdin); printf(" num 2 "); for (j=31,z=0;j>-1&&z!=1;j--){ m=scanf ("%c",&arr2[j]); if (arr2[j]=='\n') z=1; if ((arr2[j]>'9'||arr2[j]<'0')&&z!=1) { printf("wrong input! "); return 0; } } j=j++; for (count=j;count>-1;count--){ arr2[count]=0;} }char addNums(char arr1[],char arr2[],char arr3[],int n){ printf("%d %d %d %d %d %d %d",arr1[0],arr1[1],arr1[2],arr1[3],arr1[4],arr1[5],arr1[6]); printf("\n%d %d %d %d %d %d %d",arr2[0],arr2[1],arr2[2],arr2[3],arr2[4],arr2[5],arr2[6]);}
פורסם 2011 בדצמבר 1813 שנים אתה מדפיס את האיברים במערכים כאילו הם מספרים (int) למרות שהם תווים (char).חוץ מזה, בשביל להעלות את i ב-1 צריך לעשות ++i או i=i+1, לא ++i=i.
פורסם 2011 בדצמבר 1813 שנים מחבר אוי אתה צודק...תודה!יואב איך נמנעים מטעויות כאלה?טעויות כאלה קטנות מורידות לי שעה ולפעמים גם יותר עד שאני מבין מה קורה שם, לא תמיד אני מצליח עם הדבאגר לעלות על הטעות..
פורסם 2011 בדצמבר 1813 שנים מחבר נשארה לי בעיה אחת כל כך קטנה ואני לא מבין מה הבעיהאני מנסה לחשב את 8+3 ולא את הכתובות שלהם, אני מנסה עם פוינטרים, בלי פוינטרים, בכל מקרה הוא מחשב לי 51+56 [attachment deleted by admin]
פורסם 2011 בדצמבר 1813 שנים בבירור, כי אתה משתמש בתווים במקום מספרים. אתה יכול להמיר מתו למספר ע"י חיסור התו '0'.
פורסם 2011 בדצמבר 1813 שנים מחבר אבל עכשיו קורה בדיוק הפוך, הוא מחשב את מה שבחוץ[attachment deleted by admin]
פורסם 2011 בדצמבר 1913 שנים מחבר אני כבר לא יודע מה אני מנסה, ישבתי על זה חצי לילה, לא הלכתי ללימודים בגלל זה, ואני עדיין מנסה לפתור את זה, כרגע זה ממש תקוע ומשהו שם פשוט לא עובד.אשמח אם תוכל לבדוק מה הבעיה כאן, אני בסך הכל רוצה להכניס 2 מספרים, אם אחד המספרים גדול מהשני אז במערך הקטן יקבל אפסים איפה שאין ספרה.אחר כך יש חישוב של כל איבר במערך הראשון+איבר מקביל במערך השני וזה נותן מספר במערך 3.אני באמת מיואש יואב, אשמח אם תראה לי איפה אני טועה.תודה!מזה הסייז הזה בקוד? הוא רושם כאן בצורה לא מסודרת...[size=0.7em]#include <stdio.h>[/size][size=0.7em]#include <conio.h>[/size][size=0.7em]#define N 32[/size][size=0.7em]char getNum (char arr1[],char arr2[],int n);[/size][size=0.7em]char addNums(char arr1[],char arr2[],char arr3[],int n); [/size][size=0.7em]int main ()[/size][size=0.7em]{[/size][size=0.7em] char arr1[32];[/size][size=0.7em] char arr2[32];[/size][size=0.7em] char arr3[33];[/size][size=0.7em] getNum(arr1,arr2,N);[/size][size=0.7em] addNums(arr1,arr2,arr3,N);[/size][size=0.7em] getch();[/size][size=0.7em] return 0;[/size][size=0.7em]}[/size][size=0.7em]char getNum (char arr1[],char arr2[],int n)[/size][size=0.7em]{[/size][size=0.7em] int i,j,count;[/size][size=0.7em] char k=0,m=0,z=0,l=0;[/size][size=0.7em] printf("Please enter two positive numbers:\n ");[/size][size=0.7em] printf("num 1 ");[/size][size=0.7em] for (i=31;i>-1&&z!=1;i--){[/size][size=0.7em] k=scanf ("%c",&arr1[i]);[/i][/size][size=0.7em] if (arr1[i]=='\n')[/i][/size][size=0.7em] z=1;[/size][size=0.7em]if ((arr1[i]>'9'||arr1[i]<'0')&&z!=1) [/i][/i][/size][size=0.7em]{[/size][size=0.7em] printf("wrong input! ");[/size][size=0.7em] return 0;[/size][size=0.7em] }[/size][size=0.7em] } [/size][size=0.7em] count=i;[/size][size=0.7em] for (count;count>-1;count--){[/size][size=0.7em] arr1[count]=0;}[/size][size=0.7em] fflush(stdin);[/size][size=0.7em] printf(" num 2 ");[/size][size=0.7em] for (j=31,z=0;j>-1&&z!=1;j--){[/size][size=0.7em] m=scanf ("%c",&arr2[j]);[/size][size=0.7em] if (arr2[j]=='\n')[/size][size=0.7em] z=1;[/size][size=0.7em] if ((arr2[j]>'9'||arr2[j]<'0')&&z!=1) [/size][size=0.7em] {[/size][size=0.7em] printf("wrong input! ");[/size][size=0.7em] return 0;[/size][size=0.7em] }[/size][size=0.7em] [/size][size=0.7em] } [/size][size=0.7em] [/size][size=0.7em] for (count=j;count>-1;count--){[/size][size=0.7em] arr2[count]=0;} [/size][size=0.7em] [/size][size=0.7em]}[/size][size=0.7em]char addNums(char arr1[],char arr2[],char arr3[],int n)[/size][size=0.7em]{[/size][size=0.7em] char i,j,w,a=0,bit1,bit2;[/size][size=0.7em] int la;[/size][size=0.7em] for (j=31,i=31,la=0;la>-1;la++,j--,i--){[/size][size=0.7em] [/size][size=0.7em] arr3[31-la]=arr2[j]+arr1[i]-'0';[/i][/size][size=0.7em] }[/size][size=0.7em] for (w=31,la=0;w>-1;w--,la++)[/size][size=0.7em] printf("%c",arr3[31-la]);[/size][size=0.7em]}[/size]
פורסם 2011 בדצמבר 1913 שנים מחבר יש לי שתי בעיות קטנות כאן1)אם החיבור גדול מ-92)אני רוצה להעלים את האפסים בסוף אבל מצד שני אם יש אפס באמצע המספר זה בסדר לכן אני תקוע אם התנאי[attachment deleted by admin]
פורסם 2011 בדצמבר 1913 שנים מחבר זה הקוד[size=1] for (i=31,j=31;i>-1,j>-1;i--,j--){[/size][size=1] arr3[j]=arr2[i]+arr1[i]-'0';[/size][size=1] }[/size][size=1] i=31;[/size][size=1] for(i=31;i>-1;i--){[/size][size=1] printf("%c",arr3[i]);[/size][size=1] }[/size][size=1] }[/size]
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.