efod26 פורסם 2008 בנובמבר 5 Share פורסם 2008 בנובמבר 5 שלום חברים, יש לי בעיה קלה, אני צריך לכתוב תכנה דיי בנאלית שאמורה לקלוט מהמשתמש שני תווים char והיא צריכה לחשב את סכומם האסקי, עד כאן לא בעיה גדולה ממש, העניין הוא שצריך להכניס בדיקת קלט: קלט תקין יחשב רק כאשר הוכנס תו בוצע רווח אחד ואז תו שני. ניסיתי לשבור את הראש ולא הגעתי לפתרון מי יוכל לעזור בדחיפות תודה רבה קישור לתוכן שתף באתרים אחרים More sharing options...
levyshay פורסם 2008 בנובמבר 5 Share פורסם 2008 בנובמבר 5 תריץ על הקלט LOOP שבודק שבכל המקומות האי זוגיים יש תוו ובכל המקומות הזוגיים יש רווח (אסקי מס' 32) קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2008 בנובמבר 5 Share פורסם 2008 בנובמבר 5 ערוך בבקשה את הכותרת כך שתכיל את תמצית השאלה. קישור לתוכן שתף באתרים אחרים More sharing options...
efod26 פורסם 2008 בנובמבר 5 מחבר Share פורסם 2008 בנובמבר 5 תודה על התגובה המהירה,אבל איך אני בודק את אותם מקומות?ז"א איך תראה השורה שבודקת? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2008 בנובמבר 5 Share פורסם 2008 בנובמבר 5 במקום לקלוט שני תווים, קלוט שלושה תווים.בדוק אם השני שנקלט הוא רווח, בצע את החישוב על הראשון והשלישי. קישור לתוכן שתף באתרים אחרים More sharing options...
efod26 פורסם 2008 בנובמבר 5 מחבר Share פורסם 2008 בנובמבר 5 ניסיתי, לא ממש הלך אתה יכול לכתוב פה רק את השורת קוד הספיציפית? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2008 בנובמבר 5 Share פורסם 2008 בנובמבר 5 מה זאת אומרת לא הלך?מה ניסית לעשות? קישור לתוכן שתף באתרים אחרים More sharing options...
efod26 פורסם 2008 בנובמבר 5 מחבר Share פורסם 2008 בנובמבר 5 תראה איך נראה מה שכתבתי:#include<stdio.h>int main(){ int hefresh=0; char tav1,tav2,space; printf("Enter Two Chars:\n"); scanf("%c%c%c",&tav1,&space,&tav2); if (space!='32') printf("sorry wrong char");else { hefresh=tav1-tav2; if (hefresh<0) hefresh=hefresh * (-1); printf("The result is:%d\n",hefresh); }} קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2008 בנובמבר 5 Share פורסם 2008 בנובמבר 5 ערוך את ההודעה ותעטוף את הקוד שלך בטג קוד (כפתור # למעלה) כדי שיהיה קריא.בכל מקרה, הביטוי '32' לא תקין. או שתתייחס לרווח כתו (כלומר ' ') או שתתייחס אליו כמספר (32, ללא גרשיים). קישור לתוכן שתף באתרים אחרים More sharing options...
efod26 פורסם 2008 בנובמבר 5 מחבר Share פורסם 2008 בנובמבר 5 תוקן,בסדר ככה? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2008 בנובמבר 5 Share פורסם 2008 בנובמבר 5 יותר טוב. בכל מקרה, שים לב להערה בפוסט הקודם שלי.חוץ מזה, אם התכנית לא מתקמפלת לך, תאמר גם מהי הודעת השגיאה. אנחנו לא צריכים לנחש. קישור לתוכן שתף באתרים אחרים More sharing options...
efod26 פורסם 2008 בנובמבר 5 מחבר Share פורסם 2008 בנובמבר 5 ממש תודה זה עבד עם (' ') קישור לתוכן שתף באתרים אחרים More sharing options...
efod26 פורסם 2008 בנובמבר 6 מחבר Share פורסם 2008 בנובמבר 6 שלום שוב,תודה על העזרה מאתמול אך כבר שסיימתי לכתוב ובדקתי שעובד התעוררה בעיה אחרת,רק לתזכורת התכנית צריכה לקבל שני תווי char מהמשתמש ולחשב את הפרש האסקי.הבעיה היתה בבדיקת הקלט, התכנית שעזרת לי איתה אתמול היתה נכונה חלקית משום שהיא לא יכלה לשלול מצב שבו המשתמש מקיש הרבה תווי רווח ואז רקאת התו הנכון:עכשיו אמרו לי שאפשר לפתור זאת אם מחליפים את פקודת הסקאן אפ לגטצ'אר אבל עדיין לא תקין בבקשה עזרה#include<stdio.h>int main(){ int hefresh=0; char tav1,tav2,space; /*הצהרה על משתנים*/ printf("Enter Two Chars:\n"); /* בקשת קלט מהמשתמש*/ getchar("%c",&tav1); /*קריאת שני התווים ותו הרווח*/ getchar("%c",&space); getchar("%c",&tav2); if(space!=' ') /* בדיקת קלט ותגובת קלט שגוי*/ printf("Error! Wrong Typing\nPlease Try Again\n"); else { hefresh=tav2-tav1; /* חישוב ההפרש*/ if (hefresh<0) /*תנאי אם ההפרש שלילי הצג ערך מוחלט*/ hefresh=hefresh * (-1); printf("The result is:%d\n",hefresh); /* הצגת התוצאה */ }} קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2008 בנובמבר 6 Share פורסם 2008 בנובמבר 6 כמה דברים:א. כבר אמרתי לך קודם - אל תגיד סתם "לא תקין", אלא תרשום מה השגיאה שהקומפיילר מציג לך.ב. חפש בגוגל איך משתמשים ב-getchar. קוראים לה באופן שונה מאיך שקוראים ל-scanf.ג. scanf (בקריאת תו בודד) עושה בדיוק אותו דבר כמו getchar. מבחינת התוצאה, זה לא משנה באיזו מהן תשתמש. מומלץ להשתמש ב-getchar, אבל מסיבות אחרות. מי שאמר לך שאפשר לפתור אם תחליף את הפקודה טעה.ד. כל מה שאתה רוצה לבדוק הוא שהתו השני הוא רווח, והתווים הראשון והשלישי אינם רווח. זה אמור להיות די פשוט. קישור לתוכן שתף באתרים אחרים More sharing options...
efod26 פורסם 2008 בנובמבר 6 מחבר Share פורסם 2008 בנובמבר 6 הלו,תדוה על התגובה, שאלא עובד אני מתכוון שלא מתקבלת התוצאה לא מבחינת קופילציה אלא מבחינת הפלט,בכל אופן ככה זה כן עובד:#include <stdio.h>int main(){ char ch1,ch2,ch3; int diff; printf("Please enter 2 chars seperated by one space [char1<space>char2]: "); ch1 = getchar(); ch2 = getchar(); ch3 = getchar(); if ( ch2 == 32 ) { if ( getchar() == 10 ) { diff = ch3 - ch1; if ( diff < 0 ) diff = diff * -1; printf("The difference in ASCII values of the chars is: %d\n",diff); return 0; } } printf("Invalid input, Try again.\n"); return 0;} קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.