有一個我在C寫的程序,它完美的作品。當我試圖將它翻譯成C#語言時,它並沒有編譯。問題是,C#不知道scanf ("%19s" , string1);
含義類似於C
我改變scanf
到:程序應該給一個字的特殊數值(但...)
string read;
do
{
read = Console.ReadLine();
}
while (read.Length <= 19);
它不能正常工作。然後我想:它換成:
string string1Input = Console.ReadLine();
這是工作好,但並沒有檢查if
陳述,因爲我得到的一切「和」 -S等於0
這是寫在程式編譯到C#:
public static class GlobalMembersAnbanisRicxvitiMnishvneloba
{
static int Main()
{
string string1 = new string(new char[20]);
sbyte a = (sbyte)'a';
sbyte b = (sbyte)'b';
sbyte g = (sbyte)'g';
sbyte X = (sbyte)'X';
sbyte i = (sbyte)'i';
sbyte H = (sbyte)'H';
sbyte V = (sbyte)'V';
etc..
int rigi;
int sum = 0;
int sum2 = 0;
int sum3 = 0;
Console.Write(" my word is:\n");
string string1Input = Console.ReadLine();
for (rigi = 0; string1[rigi] != '\0'; rigi++)
{
if (string1[rigi] == a)
{
sum3 = sum3 + 1;
sum2 = sum2 + 1;
sum = sum + 1;
}
else
if (string1[rigi] == b)
{
sum3 = sum3 + 3;
sum2 = sum2 + 2;
sum = sum + 2;
}
etc...
} /* end for*/
if (string1[rigi-1]==i)
{
sum=sum-10; sum2=sum2-10; sum3=sum3-55;
}
Console.Write("sum is:");
Console.Write("{0:D}\n", sum);
Console.Write("sum2 is:");
Console.Write("{0:D}\n", sum2);
Console.Write("sum");
Console.Write("{0:D}\n", sum3);
return 0;
}
}
的前衛的想法是:
計劃給出了一個數值的含義每次我們輸入一個字的信,並將此號碼給對方。
問題二:如何讓
if (string1[rigi-1]==i)
{
sum=sum-10; sum2=sum2-10; sum3=sum3-55;
}
工作?
這就是爲什麼你應該這樣做的手... – Arran 2013-04-24 10:03:07
你的代碼是基於很多假設,對於C而言是正確的,但不是C#。例如,C#中的字符串不會由「\ 0」字符終止。翻譯代碼需要深入瞭解這兩種語言;嘗試在C#中從頭開始實現您的程序,如果您還不熟悉C#。 – dtb 2013-04-24 10:04:05
爲什麼有這麼多'a,b,g,H'等變量? 'if(oneCharacter =='a')'同樣適用。 – 2013-04-24 10:57:03