我正在阅读一本编程基础知识,但偶然发现了该练习
编写一个程序,该程序将打印序列的前100个成员
2, -3, 4, -5, 6, -7, 8
在练习的解决方案中,它说“检查循环”一章
在将数字存储在数组中时,我尝试使用for循环来解决它,但是编译器表示无法将类型int[]
转换为int
int[] numbers = {1, -2, 3, -4, 5, 6, -7};
for (int i = numbers; i < 100; i++)
{
Console.WriteLine(numbers[i]);
}
答案 0 :(得分:1)
这里的想法不是要有一个数组,而是要生成此序列的前100个数字。每个项目都将绝对值加1,并更改符号:
int num = 100;
int start = 2;
int end = start + num;
int sign = 1;
for (int i = start; i < (start + num); i++)
{
int result = i * sign;
sign *= -1;
Console.WriteLine(result);
}
答案 1 :(得分:0)
`var number = [1,2,..... 100];
使用foreach(整数形式的数字){
Console.WriteLine(number);
}`
答案 2 :(得分:0)
当然,编译器是正确的。您正在将numbers
的{{1}}分配给int[]
的{{1}}。这些是不同的类型。
但是,除非您认为计算机将猜测从8到100的序列中的下一个项目,否则您似乎根本没想到这个问题。
答案 3 :(得分:0)
您收到错误,是因为您尝试使用数组作为for循环的起点,该循环仅需要一个整数。
如果您希望起点是数组中的第一项,则应编写 index :
for (int i = numbers[0]; i < 100; i++)
要进一步阅读,请查看以下内容:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/for
答案 4 :(得分:0)
您正在尝试将RelativeLayout.LayoutParams params = bubbleTextView.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_END);
bubbleTextView.setLayoutParams(params);
数组转换为不兼容的原始int类型,这就是为什么会出现编译器错误的原因。而不是使用int
循环。另外,您打印前100个数字的逻辑也不正确。
答案 5 :(得分:-3)
for (int i = 1; i <= 100; i++)
{
Console.WriteLine(i * Math.Pow(-1, i+1));
}
尝试此代码,应提供您正在寻找的输出