使用循环在 C# 中制作数字及其平方的列表
Posted
技术标签:
【中文标题】使用循环在 C# 中制作数字及其平方的列表【英文标题】:Making a list of numbers and their squares in C# using a loop 【发布时间】:2013-02-17 11:53:07 【问题描述】:我想在 C# 中使用 for 循环创建一个数字及其平方的列表。
现在我有:
namespace ConsoleApplication
class Program
static void Main(string[] args)
int counter;
int square = 1;
const int maxValue = 10;
Console.WriteLine("Number Square");
Console.WriteLine("-------------------");
for (counter = 1; counter <= maxValue; counter++)
square = counter ^ 2;
Console.WriteLine("0 1", counter, square);
但我的输出只有 11 和 8。
当我将“square = counter ^ 2”放在变量声明的正下方时,我最终得到一列数字 1-10 但第二行只是一堆三,如果它们设置为 0,它们就是二.如果我没有将它设置为某个值,它也会给我一个错误来声明计数器变量。
当我将方程放在现在的位置时,它要求将 square 变量声明为某物(此处为 1)。
我也是一个初学者,我还没有学习过课程,所以我希望任何更正都不要包含它们。
编辑:已修复,天哪,我上次没有犯这个错误,是的,我需要更多练习。对不起
【问题讨论】:
这就是为什么我喜欢在所有东西上都使用花括号! 你不需要做任何求幂或乘法,因为所有完美的平方都是连续奇数的和,所以你可以通过一个简单的加法来解决这个问题:Perfect square or not? 【参考方案1】:您不小心使用了简写来声明 for 循环块。
for 语句后面应该跟花括号来指示要执行的块。但是,如果您跳过大括号,它只会抓住“下一行”。在您的情况下,只有 square = counter ^ 2;
在循环中执行。但是,^ 运算符用于 xor 操作,而不是 pow。
你想要这个:
Console.WriteLine("Number Square");
Console.WriteLine("-------------------");
for (counter = 1; counter <= maxValue; counter++)
square = counter * counter;
Console.WriteLine("0 1", counter, square);
【讨论】:
【参考方案2】:大括号的位置很重要:
Console.WriteLine("Number Square");
Console.WriteLine("-------------------");
for (counter = 1; counter <= maxValue; counter++)
square = counter * counter;
Console.WriteLine("0 1", counter, square);
注意:正是出于这个原因,最好始终对for
循环和if
语句使用大括号。
另请注意,^
不是“幂”而是异或
【讨论】:
【参考方案3】:为你的计数器循环试试这个:
for (counter = 1; counter <= maxValue; counter++)
square = Math.Pow(counter, 2);
Console.WriteLine("0 1", counter, square);
【讨论】:
【参考方案4】:^ 运算符不是用于此目的。请改用 System.Math.Pow()。例子:
var square = Math.Pow(3, 2)
。这将给出 9。
【讨论】:
这解释了那部分。谢谢。【参考方案5】:您的 for 循环处于速记模式。您的 console.writeline
在 for 循环之外。
尝试用这个替换行
for (counter = 1; counter <= maxValue; counter++)
square = counter * counter;
Console.WriteLine("0 1", counter, square);
请注意,^ 不是 C# 中的幂运算符。它用于异或。
【讨论】:
【参考方案6】:square = counter ^ 2
??
这里^
是xor operation
这样做:
square = counter * counter;
并附上
square = counter * counter;
Console.WriteLine("0 1", counter, square);
在for循环内 或者更好地使用Math.pow方法
【讨论】:
【参考方案7】:我会使用:
private void sqtBtn_Click(object sender, EventArgs e)
outputList.Items.Clear();
int itemValue, sqt;
for (int i = 0; i < randomNumAmount; i++)
int.TryParse(randomList.Items[i].ToString(), out itemValue);
outputList.Items.Add(Math.Sqrt(itemValue).ToString("f"));
【讨论】:
请添加一些文本cmets。以上是关于使用循环在 C# 中制作数字及其平方的列表的主要内容,如果未能解决你的问题,请参考以下文章