פורסם 2009 במאי 1116 שנים זקוק לעזרה בתרגיל, אני מצליח להבין את הלוגיקה ובניתי את הקוד אבל נירא לי התנאי(if(arr1==0&&prev==1 לא עובד והוא פשוט לא נכנס אליו, אשמח לכל עזרה, זה דיי דחוף למחר #include <stdio.h>#include <conio.h>#include <stdlib.h>#define N 20void main (void){ int arr1[N]={0},arr2[N]={0},count=0,prev; float result; clrscr(); randomize(); for(int i=0;i<N;i++) { arr1[i]=random(2); printf("%d",arr1[i]); if(i!=0) prev=arr1[i]; if(prev==1) count++; if(arr1[i]==0&&prev==1) { arr2[count]++; count=0; } } for(i=1;i<N;i++) if(arr2[i]) printf("\nesh %d sdarot shel %d ahadot\n",arr2[i],i);} הפקודה printf("%d",arr1); היא בשבילי על מנת לראות אם יוצא נכון וכמובן שכחתי לצרף את התרגיל [br]פורסם בתאריך: 12 מאי 2009, 00:51:42שכחתי להוסיף את התרגיל סורי ככה זה כשיושבים על זה כבר שעה וחצי [attachment deleted by admin]
פורסם 2009 במאי 1116 שנים התנאי הזה לא יתקיים אף פעם, כי prev שווה לערך שמאוכסן במקום ה-i במערך שלך, במקום במקום ה-i-1.
פורסם 2009 במאי 1116 שנים מחבר השאלה היא איך אני מרכיב תנאי נכון שיקיים את הקוד בצורה טובה, אולי זאת השעה והעייפות אבל הראש לא עובד כבר וזה מחר להגשה
פורסם 2009 במאי 1216 שנים מחבר הצלחתי לתקן חלק אבל אני לא מצליח לגרום שהסיפרה האחרונה תקלט #include <stdio.h>#include <conio.h>#include <stdlib.h>#define N 20void main (void){ int arr1[N]={0},arr2[N]={0},count=0,prev,last; float result; clrscr(); randomize(); for(int i=0;i<N;i++) { arr1[i]=random(2); printf("%d",arr1[i]); if(i!=0) { last=prev; prev=arr1[i]; } if(prev==1) count++; if(i==0&&arr1[i]==1) { count++; prev=arr1[i]; } if(i==19&&arr1[i]==1) count++; if(arr1[i]==0&&last==1) { arr2[count]++; count=0; } } for(i=1;i<N;i++) if(arr2[i]) printf("\nesh %d sdarot shel %d ahadot\n",arr2[i],i);}
פורסם 2009 במאי 1216 שנים #include <iostream.h>#include <stdlib.h>#include <time.h>#define N 20void main (){ int arr1[N]={0},arr2[N]={0}; int i; srand(time(NULL)); //klita for(i=0;i<N;i++) { arr1[i]=rand()%2; cout << arr1[i] <<" "; } cout <<"\n"; for(i=0;i<N;i++) { int cnt=0; while(i<N && arr1[i]==1) //found a serie of 1 { cnt++; //count them i++; } if(cnt!=0) arr2[cnt]++; } int sdarot=0; for(i=0;i<N;i++) if(arr2[i]!=0) cout << "sidra sheyesh " << i << "achadot " << arr2[i] <<"\n"; }זה בסי פלוס פלוס אבל ההבדלים לא כאלו גדולים הלולאה הראשונה היא הקליטה הלולאה השנייה רצה על איברי המערך שנקלטן עליו הנתונים ואז אני רץ בעוד לולאה אם מצאתי עוד 1 במערך וסוכם את האחדות שיש לי ברגע שהתנאי של הלולאה מופר כלומר או שהגעתי לאפס או שהגעתי לסוף המערך שנקלט לאחר שאני יוצא מהלולאה אני מעלה מונה של הסדרות שזה בעצם המערך השני שהגדרתי ואז יש עוד לולאה אחת שמדפיסה את כל הסדרות אם יש סדרה של אחדות אזי המונה שלה חייב להיות שונה מאפס
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.