ABA


"בעיה במערכים בשפת C"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #13468 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13468
Limp Bizkit
חבר מתאריך 2.9.02
3436 הודעות
   03:07   25.07.06   
אל הפורום  
  בעיה במערכים בשפת C  
 
   ערכתי לאחרונה בתאריך 25.07.06 בשעה 03:09 בברכה, Limp Bizkit
 
ביקשו ממני לכתוב תוכנית פשוטה שתגדיר מערך בן 10 איברים בו האיבר הראשון הוא 1 וכל איבר עוקב הוא סכום כל האיברים הקודמים, שבסופה לכתוב את המערך

הקוד שלי :


#include <stdio.h>

void main()
{
int i,j;
int digits(10);

digits(0) = 1;
digits(1) = digits(0) + 1;
digits(2) = digits(0) + digits(1);

for(j=0; j<3; j++)
printf("%d\n", digits(j));

for(i=3; i<10; i++)
{
digits(i) = digits(i-1)*2;
printf("%d\n", digits(i));
}
}

למי שלא הבין למה כפול 2 - מהמס' 3 ומעלה המספרים כופלים את עצמם
1
2
3
6
12
24

וכו'....

רציתי לדעת אם יש תוכנית יותר פשוטה לתרגיל כזה, כי זה הכי פשוט שהגעתי אליו

* הערה - במערכים רשמתי סוגריים מעוגלות ולא מרובעות כי זה לא מביא לי לכתוב סוגריים מרובעים

תודה לעוזרים

Ask any racer, any real racer. It doesn't matter if you win by an inch or a mile; winning's
winning.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  חשבתי על משהו קצת דפוק, ziv_ru 25.07.06 04:22 1
     נחמד דווקא :) Limp Bizkit 25.07.06 04:32 2
  מה שעשיתם נכון חוץ מהמספרים : DOWI 25.07.06 09:47 3
     אז הייתי יכול לעשות את הרעיון שלי יותר פשוט .. ziv_ru 25.07.06 15:56 4
  הנה תוכנית אלגנטית Net_Boy  26.07.06 01:45 5

       
ziv_ru
חבר מתאריך 31.3.02
19217 הודעות
   04:22   25.07.06   
אל הפורום  
  1. חשבתי על משהו קצת דפוק,  
בתגובה להודעה מספר 0
 
ערכתי לאחרונה בתאריך 25.07.06 בשעה 04:23 בברכה, ziv_ru
 
שזה בערך מה שאתה עשית, רק אולי אפילו קצת יותר מסובך |:


#include <stdio.h>
void main()
{
int i=0, num=0, digits(10)={0};
while(num!=10)
{
if(i<3)
{
digits(i)=num;
digits(i)++;
num++;
}
else
{
digits(i)=digits(i-1)*2;
num++;
}
i++;
}
for(i=0;i<10;i++)
printf("%d\n", digits(i));
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Limp Bizkit
חבר מתאריך 2.9.02
3436 הודעות
   04:32   25.07.06   
אל הפורום  
  2. נחמד דווקא :)  
בתגובה להודעה מספר 1
 
   תודה

Ask any racer, any real racer. It doesn't matter if you win by an inch or a mile; winning's
winning.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DOWI

   09:47   25.07.06   
אל הפורום  
  3. מה שעשיתם נכון חוץ מהמספרים :  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 25.07.06 בשעה 09:48 בברכה, DOWI
 
זה לא
1
2
3
6
..

אלא
1
1
2
4
8
..
כי המספר הראשון הוא אחד והשני הוא סכום של אלו שלפניו = 1
וכו


#include <stdio.h>

int main()
{
int array(10);
int i, sumUntillNow = 1;


array(0) = sumUntillNow;
printf("%d \n", array(0));


for(i = 0; i < 10; i ++)
{
array(i) = sumUntillNow;
sumUntillNow += array(i);

printf("%d \n", array(i));
}
return 0;

}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ziv_ru
חבר מתאריך 31.3.02
19217 הודעות
   15:56   25.07.06   
אל הפורום  
  4. אז הייתי יכול לעשות את הרעיון שלי יותר פשוט ..  
בתגובה להודעה מספר 3
 
יצא לי את זה נדמה לי ואמרתי שזה לא נכון כי התוצאות לא היו מקבילות לתוצאות של לימפ ביזקיט .. |: בע, תודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   01:45   26.07.06   
אל הפורום  
  5. הנה תוכנית אלגנטית  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 26.07.06 בשעה 01:52 בברכה, Net_Boy
 
http://rafb.net/paste/results/GdQ8A972.html

הרקורסיה לא הכי יעילה
במקרה הזה ללא ספק כדאי להשתמש בלולאת for
אבל רק לצורך החיסכון בשורות וההבנה הבסיסית.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net