כותב |
|
מאיה משתמש מתחיל
הצטרף / הצטרפה: 24 May 2005
משתמש: מנותק/ת הודעות: 18
|
נשלח בתאריך: 28 May 2005 בשעה 22:58 | | IP רשוּם
|
|
|
|
כתבתי קוד ל :
לקלוט
10 מספרים למערך A , להציב ב-B מספרים שליליים ואחר כך חיוביים
מ-A ובסוף להציב במערך C את הערך הגדול מבין כל שני ערכים
מתאימים ב-A וB , במידה והערכים שווים - 0 .
מה הטעויות שלי?
|
חזרה לתחילת העמוד |
|
|
מאיה משתמש מתחיל
הצטרף / הצטרפה: 24 May 2005
משתמש: מנותק/ת הודעות: 18
|
נשלח בתאריך: 28 May 2005 בשעה 23:00 | | IP רשוּם
|
|
|
|
קוד:
#include < stdio .h>
int main ()
{
int a[10],b[10],c[10];i,j,k;
printf (“write 10 numbers”); for (i=0, i<11, i++) { for (J=0, j<11, j++) scanf (%d, &a);
a=b[j]; } for (J=0, j<11, j++ { if (b[j-1] > b[j]) SWAP(b[j-1],b[j]); } for (i=0, i<11, i++) for (J=0, j<11, j++) for (k=0,k<11,k++) { if ( a>b[j] ) c [k] = a ; else if ( a < b[j] ) c [k] = b [j]; else c [k] = 0; } }
|
|
|
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 28 May 2005 בשעה 23:07 | | IP רשוּם
|
|
|
|
1. לא סגרת את לולאת ה-for
2. השתמש בפסיק במקום בנקודה פסיק
3. השתמשת באות גדולה עבור המשתנה ובאות קטנה - אי אפשר לעשות כזה דבר
בסי. יכולים להיות לך שני משתנים שונים - אחד עם אות גדול והשני עם אותה
אות קטנה ואלו שני משתנים שונים לגמרי
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
מאיה משתמש מתחיל
הצטרף / הצטרפה: 24 May 2005
משתמש: מנותק/ת הודעות: 18
|
נשלח בתאריך: 28 May 2005 בשעה 23:15 | | IP רשוּם
|
|
|
|
ועכשיו?
קוד:
#include < stdio .h>
int main ()
{
int a[10],b[10],c[10];i,j,k;
printf (“write 10 numbers”); for (i=0;i <11; i++) { for (J=0; j<11; j++) scanf (%d, &a);
a=b[j]; } for (j=0; j<11; j++) { if (b[j-1] > b[j]) SWAP(b[j-1],b[j]); } for (i=0, i<11, i++) for (j=0; j<11; j++) for (k=0; k<11; k++) { if ( a>b[j] ) c [k] = a ; else if ( a < b[j] ) c [k] = b [j]; else c [k] = 0; } }
|
|
|
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 28 May 2005 בשעה 23:20 | | IP רשוּם
|
|
|
|
דבר ראשון תשתמשי ב/ כשאת עושה את התג הסוגר ואז זה יצא בסדר. דבר שני - תכף בודק :)
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 28 May 2005 בשעה 23:21 | | IP רשוּם
|
|
|
|
אם יש לך 10 תאים במערך - אז האיברים שלך הם מהתא ה-0 עד התא ה-9, ולא מהתא ה-0 עד התא ה-10
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
מאיה משתמש מתחיל
הצטרף / הצטרפה: 24 May 2005
משתמש: מנותק/ת הודעות: 18
|
נשלח בתאריך: 28 May 2005 בשעה 23:34 | | IP רשוּם
|
|
|
|
שיניתי ל קטן מ-10
קוד:
#include < stdio .h>
int main ()
{
int a[10],b[10],c[10];i,j,k;
printf (“write 10 numbers”); for (i=0; i<10; i++) { for (j=0; j<10; j++) scanf (%d, &a);
a=b[j]; } for (j=0; j<10; j++) { if (b[j-1] > b[j]) SWAP(b[j-1],b[j]); } for (i=0; i<10; i++) for (j=0; j<10; j++) for (k=0; k<10; k++) { if ( a>b[j] ) c [k] = a ; else if ( a < b[j] ) c [k] = b [j]; else c [k] = 0; } }
|
|
|
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 28 May 2005 בשעה 23:55 | | IP רשוּם
|
|
|
|
ניסית להריץ את הקוד? מה הסטאטוס שלך?
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 29 May 2005 בשעה 02:07 | | IP רשוּם
|
|
|
|
מממ ראיתי די הרבה טעויות על ההתחלה, אז כתבתי את התוכנית לבד, תנסי ללמוד אותה אם לא תביני משהו תגידי אני יסביר...
קוד:
#include <stdio.h>
void main() { int i, a[10],b[10],c[10],neg=0,pos=9; printf("Enter 10 numbers: "); for(i=0;i<10;i++) { scanf("%d",&a); if(a < 0) { b[neg] = a; neg++; }else{ b[pos] = a; pos--; } }
for(i=0;i<10;i++) if(a > b) printf("%d",a); else if(b > a) printf("%d",b); else printf("0"); } |
|
|
נ.ב 2 בלילה, אם עשיתי משהו לא בסדר\לא יעיל זה בסדר :)
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
מאיה משתמש מתחיל
הצטרף / הצטרפה: 24 May 2005
משתמש: מנותק/ת הודעות: 18
|
נשלח בתאריך: 29 May 2005 בשעה 08:13 | | IP רשוּם
|
|
|
|
יש לי כמה שאלות :
איך הוא יודע להציב במערך השני קודם את השליליים ואחר כך את החיוביים?
האם המונה שייך לכל המערכים? לא צריך מונה נפרד לכל מערך?
לא הזכרת את המערך השלישי בתוכנית, זה בכוונה?
תודה
מאיה
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 29 May 2005 בשעה 16:57 | | IP רשוּם
|
|
|
|
אה אני הדפסתי במקום להציב במערך
הנה התיקון:
קוד:
#include <stdio.h>
void main() { int i, a[10],b[10],c[10],neg=0,pos=9; printf("Enter 10 numbers: "); for(i=0;i<10;i++) { scanf("%d",&a); if(a < 0) { b[neg] = a; neg++; }else{ b[pos] = a; pos--; } }
for(i=0;i<10;i++) if(a > b) c = a; else if(b > a) c = b; else c = 0; } |
|
|
התוכנית בודקת אם זה מספר שלילי, במידה וכן היא מכניסה אותו באינדקס הראשון ומעלה את המונה שמחזיק את מספר המספרים השלילים עד פה ב-1, אם הוא חיובי אז היא מכניסה אותו בסוף ומוריד ממונה המספרים החיובים אחד, ככה שאם יצא מספר חיובי שוב היא תכניס אותו באחד לנפי האחרון וכו'....אני מקווה שהייתי מספיק ברור למה אני די לא בסדר בלהסביר =\
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
מאיה משתמש מתחיל
הצטרף / הצטרפה: 24 May 2005
משתמש: מנותק/ת הודעות: 18
|
נשלח בתאריך: 30 May 2005 בשעה 06:51 | | IP רשוּם
|
|
|
|
הבנתי, אתה ברור ומסביר מצויין ולמדתי עוד משהו
תודה רבה
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 30 May 2005 בשעה 08:43 | | IP רשוּם
|
|
|
|
אין בעד מה אם את צריכה עוד משהו תשאלי
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|