הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה בהמרת STRING לINT בסי-שארפ. (https://hosts.co.il/forums/showthread.php?t=56381)

Jigsaw45 12-11-07 08:37

בעיה בהמרת STRING לINT בסי-שארפ.
 
היי, יש לי בעיה מסוימת. קיבלתי שאלה בה אני מתבקש לעשות את הדבר הבא:
"פתח ויישם אלגוריתם שמקבל כקלט שתי ספרות שונות (1-9). פלט האלגוריתם יהיה -
א. שני המספרים הדו-ספרתיים האפשריים מהרכבת הספרות הבודדות למספר.
ב. הצגת סכום המספרים שהתקבלו"


עכשיו בעיקרון זה מה שעשיתי:

int num,num1,total;
string dnum, dnum1;
Console.WriteLine("Enter two numbers:");
num = int.Parse(Console.ReadLine());
num1 = int.Parse(Console.ReadLine());
dnum=(num+""+num1);
dnum1=(num1+""+num);
Console.WriteLine(dnum + " " + dnum1);

שזה בעצם עונה על סעיף א', אין לי בעיה.. ואז ניגשתי לסעיף ב'. הרעיון הכי טוב שלי היה לקחת את המשתנים dnum ו-dnum1 ופשוט לחבר את שניהם, ואת התוצאה לשים בtotal. אז עשיתי ככה:

total=(int)dnum+dnum1.

אבל ה#C מודעיה לי את הדבר הבא:

"Cannot convert type 'string' to 'int'"

מה עושים? |דמעות|

Nivi 12-11-07 09:14

תעשה המרה עם int.Parse

Ofir|Execute.co.il 12-11-07 10:27

בבקשה
קוד:

            int num, num1;
            Console.WriteLine("Enter two numbers:");
            num = int.Parse(Console.ReadLine());
            num1 = int.Parse(Console.ReadLine());
            Console.WriteLine("{0}{1}", num, num1);
            Console.WriteLine("{0}{1}", num1, num);
            Console.WriteLine(num + num1);


Rom 12-11-07 10:51

באיזה שורה זה אומר לך את השגיאה?

Jigsaw45 12-11-07 11:35

לNIVI - אתה יכול להדגים לי איך עושים את ההמרה?
לOfir - לא פתרת לי את סעיף ב'.. בסעיף ב' מבקשים את סכום שני המספרים, ולא הספרות.. נניח אם יצא לך בפלט של סעיף א' 32 ו23, אז בסעיף ב' צריך להיות כאילו 23+32..
לRom - השגיאה היא בשורת ניסיון ההמרה total=(int)dnum+dnum1.

מקווה לעזרה ופיתרון..

JSC 12-11-07 12:48

לסכום הספרות:

HTML קוד:

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1, num2;
            Console.WriteLine("enter a number between 1-9: ");
            num1 = int.Parse(Console.ReadLine());
            Console.WriteLine("enter a number between 1-9: ");
            num2 = int.Parse(Console.ReadLine());
            Console.WriteLine("the first possible number is: {0}{1}",num1,num2);
            Console.WriteLine("the second possible number is: {0}{1}", num2, num1);
            Console.WriteLine("the sum is: {0}",num1+num2);
        }
    }
}

לסכום המספרים:

HTML קוד:

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1, num2,sum1,sum2;
            Console.WriteLine("enter a number between 1-9: ");
            num1 = int.Parse(Console.ReadLine());
            Console.WriteLine("enter a number between 1-9: ");
            num2 = int.Parse(Console.ReadLine());
            sum1 = num1 * 10 + num2;
            sum2 = num2 * 10 + num1;
            Console.WriteLine("the first possible number is: {0}",sum1);
            Console.WriteLine("the second possible number is: {0}",sum2);
            Console.WriteLine("the sum is: {0}",sum1+sum2);
        }
    }
}


Jigsaw45 12-11-07 17:09

גבאי12,תודה! עזרת לי מאוד :)

שאלה נוספת לגבי התרגיל -- למה לא הצלחתי להמיר את המשתנה מSTRING לINT? האם יש המרה מיוחדת, ואם כן מה היא?

Nivi 12-11-07 17:28

ציטוט:

נכתב במקור על ידי Jigsaw45 (פרסם 578089)
גבאי12,תודה! עזרת לי מאוד :)

שאלה נוספת לגבי התרגיל -- למה לא הצלחתי להמיר את המשתנה מSTRING לINT? האם יש המרה מיוחדת, ואם כן מה היא?

קוד:

int num,num1,total;
string dnum, dnum1;
Console.WriteLine("Enter two numbers:");
num = int.Parse(Console.ReadLine());
num1 = int.Parse(Console.ReadLine());
dnum=(num+""+num1);
dnum1=(num1+""+num);
Console.WriteLine(dnum + " " + dnum1);
total=int.Parse(dmum)+int.Parse(dnum1);
Console.WriteLine(total);


Rom 12-11-07 19:37

הבעיה שלך היתה שבשורה הזאת:
total=(int)dnum+dnum1
המרת רק את dnum לINT ואת dnum1 לא המרת לINT
היית צריך להוסיף (int) גם לפני הdnum1 ואז זה היה נראה ככה:
קוד:

total=(int)dnum+(int)dnum1

Nivi 12-11-07 19:57

ציטוט:

נכתב במקור על ידי Rom (פרסם 578137)
הבעיה שלך היתה שבשורה הזאת:
total=(int)dnum+dnum1
המרת רק את dnum לINT ואת dnum1 לא המרת לINT
היית צריך להוסיף (int) גם לפני הdnum1 ואז זה היה נראה ככה:
קוד:

total=(int)dnum+(int)dnum1

זה לא נכון,אי אפשר להמיר ככה במקרה הזה, אתה מוזמן לנסות להריץ את השורה שכתבת ותראה שזה לא מתקבל.


כל הזמנים הם GMT +2. הזמן כעת הוא 15:31.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ