C# 程序应该给单词一个特殊的数值(但是…;)
我用C写了一个程序,它运行得很好。当我试图把它翻译成C语言时,它不是在编译。问题是C#不知道C# 程序应该给单词一个特殊的数值(但是…;),c#,c,string,stdio,C#,C,String,Stdio,我用C写了一个程序,它运行得很好。当我试图把它翻译成C语言时,它不是在编译。问题是C#不知道scanf(“%19s”,string1)的含义与C类似。 我将scanf更改为: string read; do { read = Console.ReadLine(); } while (read.Length <= 19); 它工作得更好,但如果不检查语句,,因为我得到的所有“总和”都等于0 这是翻译成C的程序: 该项目的理念是: 程序给我们键入的单词的每个字母赋予数字意义,并将
scanf(“%19s”,string1)的含义代码>与C类似。
我将scanf更改为:
string read;
do
{
read = Console.ReadLine();
}
while (read.Length <= 19);
它工作得更好,但如果不检查
语句,,因为我得到的所有“总和”都等于0
这是翻译成C的程序:
该项目的理念是:
程序给我们键入的单词的每个字母赋予数字意义,并将这些数字相加
问题二:如何作出决定
if (string1[rigi-1]==i)
{
sum=sum-10; sum2=sum2-10; sum3=sum3-55;
}
工作?在C#中没有结束字符字符串,就像在C中一样。事实上,C中的字符串和C中的字符串是两个完全不同的东西,它们的使用方式不同
因此,对于字符串上的循环,最好的方法是使用foreach
循环。
改变
借
然后string1[rigi]
必须变成oneCaracter
而sbyte
必须变成char
样本校正:
char a = 'a';
int sum = 0;
int sum2 = 0;
int sum3 = 0;
string string1Input = Console.ReadLine();
foreach(char oneCaracter in string1Input)
{
if (oneCaracter == a)
{
sum3 = sum3 + 1;
sum2 = sum2 + 1;
sum = sum + 1;
}
}
if (string1Input[string1Input.Length - 1] == i)
{
sum = sum - 10; sum2 = sum2-10; sum3 = sum3-55;
}
这就是为什么您应该手工完成这项工作……您的代码基于许多对C正确但对C#不正确的假设。例如,C#中的字符串不以'\0'
字符结尾。翻译代码需要对两种语言有深入的了解;如果你还不太熟悉C语言,试着从头开始用C语言实现你的程序。为什么有这么多a、b、g、H
等变量if(oneCharacter=='a')
也可以。这是古格鲁吉亚字母表中的字母,我写了38次if语句,难道我不需要初始化c
?或者如果我将字母c初始化为charc='c'
@Gio:你说得对,将声明两个c
变量。那就改名吧。请看我编辑的答案。谢谢你的帮助。我使用了新值“M”,但我没有初始化它。现在它工作得很好这是我做的改变。但是如何在forif(string1[rigi-1]==i){sum=sum-10;sum2=sum2-10;sum3=sum3-55;}
/*如果最后一个字符是“i”,则执行此操作sum=sum-10;sum2=sum2-10;sum3=sum3-55*/@Gio:不难,看看编辑后的答案:if(string1Input[string1Input.Length-1]==i)
if (string1[rigi-1]==i)
{
sum=sum-10; sum2=sum2-10; sum3=sum3-55;
}
for (rigi = 0; string1[rigi] != '\0'; rigi++)
foreach(var oneCaracter in string1Input)
char a = 'a';
int sum = 0;
int sum2 = 0;
int sum3 = 0;
string string1Input = Console.ReadLine();
foreach(char oneCaracter in string1Input)
{
if (oneCaracter == a)
{
sum3 = sum3 + 1;
sum2 = sum2 + 1;
sum = sum + 1;
}
}
if (string1Input[string1Input.Length - 1] == i)
{
sum = sum - 10; sum2 = sum2-10; sum3 = sum3-55;
}