עבור לתוכן

עזרה בשפת C -

Featured Replies

פורסם

איך אפשר לבדוק את המספר הזה למשל - 3060606

ולהגיד אם יש לו שלוש ספרות שהם אותו הדבר ? 666 , 000

בלי לעשות משתנה ליחידות , עשרות , מאות...

איך עושים את זה?

פורסם

מותר להשתמש במערך בגודל 10?

פורסם

צור מערך עם 10 תאים (תא 0 עד תא 9), שהערך בכל תא הוא 0.

ואז קח כל פעם את ספרת האחדות של המספר, ואם היא נגיד 9, אז תוסיף 1 לתא 9 במערך. ואז לבדוק את הספרה הבאה...

כמובן שאחרי כל פעם שאתה לוקח את הספרת אחדות מהמספר, אז תמחק אותה משם.

נגיד אם הספר היה 1337, אז אחרי הבדיקה הראשונה הוא יהיה 133, אחרי עוד בדיקה 13 וכן הלאה.

בסוף התהליך פשוט תריץ בדיקה על המערך, וכל תא שבתוכו יש "3", תדפיס את מספר התא.

פורסם

וקצת יותר טכנית - המספר מודולו 10 ייתן לך את ספרת האחדות. לאחר מכן "תקצץ" את ספרת האחדות, ע"י חלוקת המספר ב-10 (ושמירת המספר החדש במספר הישן). כך תמשיך, עד שתקבל את המספר 0. כמובן, אל תספור את הספרה 0 הזאת בתור ספרה 0, אחרת יהיו לך טעויות אפשריות.

פורסם

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


#include <stdio.h>

#define LONG 10

int main(){
char str[LONG];
int i,j;
int count[10];

for(i=0;i<10;i++)
count [i]=0;

printf("Please enter a number.\n");
scanf("%s", str);

printf("\n");

for(i=0;i<LONG;i++)
for(j=0;j<10;j++)
if(str[i]=='0'+j)
count[j]++;

for(i=0;i<10;i++)
if(count[i]>=3)
printf("The digit %d is shows 3 times or bigger.\n", i);

printf("\n");

return 0;
}

פורסם
  • מחבר

חח לא למדתי .. מערכים

ו -

#define

CHAR

אז לא ממש הבנתי מה אמרתם..אבל אמרו לנו משהו עם חילוק , לעשות X%10

וזה ייתן יחידות או משהו כזה..

פורסם

אור, לא הבנתי, למה יש לך 2 לולאות שם ? אתה יכול להניח שהכל מספרים, וגם אם לא, לעשות IF פשוט, במקום 2 לולאות, שזה בזבוז.

לפותח הדיון, קלוט את המספר לתוך משתנה INTEGER

אחרי זה כל פעם תעשה % 10 לקבל את ספרת האחדות, ואת השאר המספר אתה מקבל ע"י / 10, וככה אתה ממשיך.

אם לא למדת מערכים, אז השאלה היא בטח, האם 3 ספרות מופיעות ברצף אחד, לא ?

פורסם
  • מחבר
, אז השאלה היא בטח, האם 3 ספרות מופיעות ברצף אחד, לא ?

sdfzxc

אבקש שתסביר את המשפט הזה

פורסם

הדבר הבסיסי בגישה לתרגיל, היא להבין במדיוק מה מבקשים ממך...

למשל במספר 606060555 מה אמור להיות הפלט? (לפי מה שביקשו ממכם)

פורסם
  • מחבר

הפלט:

במספר יש שלוש ספרות זהות...(לדוגמה....)

אה והם לא חייבות להיות ברצף אחד...

פורסם

צריך להגיד את כל המספרים האלו שמופיעים 3 פעמים, ולא למדתם מערכים, אז צריך לעשות משהו בזבזני בצורה של ה PSUDO CODE הבא:

int your_number;

for (int i=0;i<10;i++)
{
int div = your_number / 10;
int mod = your_number % 10;
int cnt = 0;

while (mod != 0)
{
if (mod == i)
cnt++;
if (cnt == 3)
{
printf("%d is shown 3 times atleast\n");
break;
}
mod = div % 10;
div = div / 10;
}
}

כאשר שוב, זה קוד ב C, אבל לא בטוח שהוא ירוץ מושלם (סתם כתבתי). בגלל שאין פה שימוש במערך, שים לב שאנו עושים פה משהו די מבובז וסורקים את המספר המקורי 10 פעמים (בשביל כל ספרה).

פורסם
  • מחבר

יופי... :s07::bash:

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים