נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: שבע בום בשפת סי בעייה קטנה

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
lirany
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 15 March 2005
משתמש: מנותק/ת
הודעות: 49
נשלח בתאריך: 11 May 2005 בשעה 23:12 | IP רשוּם
ציטוט lirany

המשחק 7 boom -c

יש לי אבל בעייה קטנה 

 כאשר מקישים מספר למשל 30 אז המספרים

 27 28 

אז אמורים להיות בום בום אחד מתחת לשני

אבל אני רוצה שלא יהיה רווחים בינהם איך אני עושה זאת?

קוד:
#include<stdio.h>
#include<conio.h>
int main()
{
 int i,t; /* definition the variables*/
 clrscr(); /*clearing the screen*/
 while(1) /* loop */
 {       printf("\n********************7-BOOOOOOM******************** ");    /* output*/
  printf("\nEnter a number between 1 and 1000 or 0 for exit \n\n");
  scanf("%d",&t); /*input the number*/
      if (t==0) /* condition for exiting the game*/
      {
      printf("exit the game have a nice day!!");
      getch(); 
      return 0; /* exit*/
      }
       if ((t>0) && (t<1000)) /* the main condition in the game range of the nums*/
       {

   for (i=1;i<=t;i++)/*loop with the counter*/
   {
    if((!(i%7)) || ((i/100)==7) || ((i%10)==7) || ((i/10%10==7)))/*condition for "boom"*/

     printf("\nBOOM\n  ");/* output boom*/
    else printf(" %d",i);/* output number*/

   }
       }
   else printf ("Error Input try again!!\n");/*output for error input*/
   }
 }


חזרה לתחילת העמוד הצג את כרטיס החבר של lirany חפש הודעות אחרות של lirany
 
ShadowBeast
אחראי פורומים
אחראי פורומים
סמל אישי

הצטרף / הצטרפה: 22 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 1073
נשלח בתאריך: 11 May 2005 בשעה 23:58 | IP רשוּם
ציטוט ShadowBeast

אוי הצילו
תשתמש בתג
קוד:

[ code ]
[ /code ]

(רק בלי הרווחים)


__________________
The highest knowledge is to know that we are surrounded by mystery - Albert Schweitzer

He who will not take the hint, must take the consequence - Glenn v. Covey (1854)

ShadowBeast
חזרה לתחילת העמוד הצג את כרטיס החבר של ShadowBeast חפש הודעות אחרות של ShadowBeast
 
SBD
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 13 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 1194
נשלח בתאריך: 12 May 2005 בשעה 06:39 | IP רשוּם
ציטוט SBD

לא הבנתי את השאלה אחי =\

__________________
~ Nobody Is Perfect, I'm Nobody ~
פורומים
חזרה לתחילת העמוד הצג את כרטיס החבר של SBD חפש הודעות אחרות של SBD בקר בדף הבית של SBD
 
lirany
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 15 March 2005
משתמש: מנותק/ת
הודעות: 49
נשלח בתאריך: 12 May 2005 בשעה 16:26 | IP רשוּם
ציטוט lirany

השאלה היא כזאת

כתבו תכנית המתבצעת בלולאה אינסופית.

על התוכנית להדפיס הודעה למשתמש ולבקש מספר בתחום [1,1000].

התוכנית קולטת את המספר - T.

אם T= =0, על התוכנית להודפיס הודעת סיום, להמתין עם getch(), ולסיים.

אם המספר אינו בתחום הנדרש - על התוכנית להדפיס הודעת טעות ולהמשיך בלולאה.

אם המספר חוקי, על התוכנית להדפיס את כל המספרים מ 1 ועד T (כולל), כאשר עבור כל

מספר בתחום: אם המספר מתחלק ב 7, או מכיל את הספרה 7 = יש להדפיס BOOM בשורה

נפרדת, אחרת יש להדפיס את המספר ולאחריו רווח.
 במקרה של הדפסת שני
BOOM רצופים - הם

יודפסו ללא שורת רווח בינהם.

חזרה לתחילת העמוד הצג את כרטיס החבר של lirany חפש הודעות אחרות של lirany
 
RPG2kiLL
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 376
נשלח בתאריך: 12 May 2005 בשעה 22:23 | IP רשוּם
ציטוט RPG2kiLL

אתה יכול ליצור לך משתנה בוליאני שישמור האם המספר האחרון היה "בום", במידה וכן שירד שורה אם קיבלת מספר
כלומר:
קוד:

if ((!(i%7)) || ((i/100)==7) || ((i%10)==7) || ((i/10%10==7)))/*condition for "boom"*/
  {
      printf("\nBOOM");/* output boom*/
      bLastOneWasBoom = true;
  }
else
  {
     if (bLastOneWasBoom)
     {
        printf("\n");
        bLastOneWasBoom = false;
     }
     printf(" %d",i);/* output number*/
  }


חזרה לתחילת העמוד הצג את כרטיס החבר של RPG2kiLL חפש הודעות אחרות של RPG2kiLL בקר בדף הבית של RPG2kiLL
 
RPG2kiLL
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 376
נשלח בתאריך: 12 May 2005 בשעה 22:26 | IP רשוּם
ציטוט RPG2kiLL

כשהסתכלתי שוב על הקוד, ראיתי שבעצם זה C ולא CPP,
במצב הזה חשוב לציין שאין BOOL בC, לכן, או שתחליף את המשתנה הבוליאני בINT פשוט עם ערך 0 במקום שקר, או שתגדיר enum לBOOL

ועוד הערה אחת קטנה.
כנראה שהתכוונת ל

if ((t>0) && (t<=1000))

קטן שווה, לפחות לפי ההודעה שאתה מדפיס
חזרה לתחילת העמוד הצג את כרטיס החבר של RPG2kiLL חפש הודעות אחרות של RPG2kiLL בקר בדף הבית של RPG2kiLL
 
lirany
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 15 March 2005
משתמש: מנותק/ת
הודעות: 49
נשלח בתאריך: 13 May 2005 בשעה 00:58 | IP רשוּם
ציטוט lirany

אוקיי תודה רבה רבה ...

חזרה לתחילת העמוד הצג את כרטיס החבר של lirany חפש הודעות אחרות של lirany
 
רצח-לילי
משתמש מתחיל
משתמש מתחיל
סמל אישי

הצטרף / הצטרפה: 18 April 2005
משתמש: מנותק/ת
הודעות: 29
נשלח בתאריך: 14 May 2005 בשעה 01:27 | IP רשוּם
ציטוט רצח-לילי

משהו לא מסתדר לי. הרצתי את התוכנית שלך והכנסתי את המספר 749 ולהפתעתי הוא זיהה את המספר. אבל בשורת הקוד חילקת את המספר במאה ובדקת אם הוא שווה ל7 מה שמבחינה מתמטית הוא לא (7.49!=7). מכאן, איך זה מתאפשר בקומפיילר? האם הוא הופך פשוט את הביטוי למספר שלם ולא מתייחס לשאר המספרים? ואם כן מה התכלית של זה?
חזרה לתחילת העמוד הצג את כרטיס החבר של רצח-לילי חפש הודעות אחרות של רצח-לילי
 
RPG2kiLL
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 376
נשלח בתאריך: 14 May 2005 בשעה 02:17 | IP רשוּם
ציטוט RPG2kiLL

שים לב ש I מוגדר כמספר שלם,
חלוקה של מספר שלם מחזירה תוצאה של מספר שלם.
חזרה לתחילת העמוד הצג את כרטיס החבר של RPG2kiLL חפש הודעות אחרות של RPG2kiLL בקר בדף הבית של RPG2kiLL
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה