שאלה ב-C# - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שאלה ב-C#


gshhar

Recommended Posts

אחלה הרבה תודה יש רק בעיה שאם אני מכניס טקסט למשל test ty, ttt

אז התוצאה מתקבלת בסדר אבל יש רווח בין שורה לשורה:

test

ty

ttt

אבל אני רוצה כבר לנסות ולהתגבר על זה לבד.

הרבה תודה !

קישור לתוכן
שתף באתרים אחרים

לא ממש הבנתי מה הבעיה שלי, אם אני מוסים IF ELSE הוא לא מדפיס לי כלום



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace PrintWordWordFromText
{
class Program
{
static void Main(string[] args)
{
//read text from user
Console.Write("Enter Text: ");
string line = Console.ReadLine();


//define array
string[] Words = new string[100];


//define temp
string temp = "";


int WordIndex = 0;


line = line + " ";


while (line.Length != 0)
{
for (int i = 0; i < line.Length; i++)
{
//we have a regular character - part of a word
if (line[i] != ' ' & line[i] != ' ' & line[i] != ',' & line[i] != '.' & line[i] != '$')
{
temp += line[i];
}
//special characters
else if (line[i] == ' ' || line[i] == ' ' || line[i] == ',' || line[i] == '.' || line[i] == '$')
{

}
else
{
Words[WordIndex] = temp;
WordIndex++;
temp = "";
}
}


line = Console.ReadLine();
}


for (int i = 0; i < WordIndex; i++)
{
Console.WriteLine(Words[i]);
}


Console.ReadLine();
}
}
}

קישור לתוכן
שתף באתרים אחרים

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

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

אז האלגוריתם יכנס פעמים רצופות אל משפט ה - ELSE בפעם הראשונה זה יהיה עם תוכן במשתנה TEMP ובפעם השניה הוא יהיה מאופס ולכן תיכנס שורה ריקה אל תוך המערך ולאחר מכן גם תודפס כשורה ריקה. אותו הדבר יקרה גם אם הקלט יתחיל באחד מהתווים המיוחדים.

עם נסתכל על הדוגמא שרשמת: test ty, ttt

זה קרה בגלל הרווח הכפול לאחר test ובגלל הפסיק רווח לאחר ה- ty.

עכשיו, בתקווה שהבעיה יותר ברורה, נסה שנית לפתור אותה.

קישור לתוכן
שתף באתרים אחרים

ניסיתי לשים ב-if else פקודת break ככה שאם יבוא לי תו מיוחד הוא ישר יקפוץ למעלה ויבדוק את התו הבא אבל זה לא קורה ואני לא מבין למה, אולי בגלל ה-else שיש בהמשך ?

קישור לתוכן
שתף באתרים אחרים

לא מבין מה?? את התשובה??

הלוגיקה שאתה מנסה לפתור בה את הבעיה היא לא נכונה. אז למה אתה לא מסתכל בפתרון ומנסה להבין משם מה קורה :facepalm: .

בשביל מה כתבתי אותו עם אתה אפילו לא טורח להסתכל בו :nixweiss: .

קישור לתוכן
שתף באתרים אחרים

או בוי...

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace PrintWordWordFromText
{
class Program
{
static void Main(string[] args)
{
do
{
//read text from user
String line = "", eof ="", temp = "";
Console.Write("Enter Text: ");
while (true)
if ((eof = Console.ReadLine()) != "")
line += eof + " ";
else
break;


string[] Words = new string[100];
int wordsIndex = 0;

for (int i = 0; i < line.Length; i++)
{
//We have a regular Character - part of a word


if (line[i] != ' ' & line[i] != ',' & line[i] != '.' & line[i] != '$')
temp += line[i];
else if (temp != "")
{
Words[wordsIndex] = temp;
wordsIndex++;
temp = "";
}
}

Console.WriteLine("You have enterd the following words:");
for (int i = 0; i < wordsIndex; i++)
Console.WriteLine(Words[i]);

} while (true);

}
}
}

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...