用一个for循环打印矩阵
本文关键字:循环 打印 for 一个 | 更新日期: 2023-09-27 18:05:55
我是c#新手。
我有2个变量,我从用户名为"行"answers"列"。我的目标是写"*"来筛选我从用户那里得到的许多行和列。例如,用户输入5列5行:
00000
00000
00000
00000
00000
但是当我运行程序时,它看起来像:
00000
00000
00000
00000
0000
(是的,最后一个漏了)。
我的代码是:int i;
int satir, sutun;
Console.WriteLine("Kaç satır olsun?");
satir = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Kaç sütun olsun peki?");
sutun = Convert.ToInt32(Console.ReadLine());
for (i=1; i < sutun * satir; i++)
{
if (i%sutun==0)
{
Console.Write("'n");
}
else
{
Console.Write("*");
}
}
Console.ReadLine();
我该如何解决这个问题?谢谢你的建议。
i
应小于或等于sutun
for (i=1; i <= sutun * satir; i++)
如何调试我的c#代码
在循环中设置断点并按F10逐行执行。
实际上输出是这样的:
Kaç satır olsun?
5
Kaç sütun olsun peki?
5
****
****
****
****
****
。不是五列而是四列。对于前四行,这是因为你写了一个换行符而不是第五个星号,对于最后一行,这是因为你少写了一个星号。
您应该再写一个星号,这可以通过在循环中使用<=
操作符而不是<
来实现,并且您不应该在星号的之后写一个换行符而不是,而是在:
int i;
int satir, sutun;
Console.WriteLine("Kaç satır olsun?");
satir = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Kaç sütun olsun peki?");
sutun = Convert.ToInt32(Console.ReadLine());
for (i = 1; i <= sutun * satir; i++) {
Console.Write("*");
if (i % sutun == 0) {
Console.Write("'n");
}
}
Console.ReadLine();
您的for
循环不仅应该看起来像(将<
更改为<=
):
for (i=1; i <= sutun * satir; i++)
无论如何都应该打印星号。将Console.Write("*")
从if/else
块中取出,并将其放在循环的顶部,只留下if
语句来打印newline
字符
using System;
public class Program
{
public static void Main()
{
int i;
int satir, sutun;
Console.WriteLine("Kaç satır olsun?");
satir = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Kaç sütun olsun peki?");
sutun = Convert.ToInt32(Console.ReadLine());
for (i = 1; i <= sutun * satir; i++)
{
Console.Write("*");
if (i % sutun == 0)
{
Console.Write("'n");
}
}
}
}
结果:
Kaç satır olsun?
3
Kaç sütun olsun peki?
5
*****
*****
*****
小提琴演示