关于#c语言#的问题:要求输出格式:请输入总数 M =请输入每行列数 N =数字 1 到 M,按 N 个数一行显示如下: (数字打印结果)结论:数字 1 到 M

输入总数 M、每行个数 N。数字从 1 到 M,按 N 个数一行分行打印,要求:

  1. 每列的数字右对齐,每个数的位宽占 12 位
  2. 要求输出格式:
    请输入总数 M =
    请输入每行列数 N =
    数字 1 到 M,按 N 个数一行显示如下: (数字打印结果)
    结论:数字 1 到 M,按 N 个数一行打印,总共有 行。

C语言程序运行结果如下:

img

代码:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
    int m, n, i, row = 0;
    printf("请输入总数M=");
    scanf("%d", &m);
    printf("请输入每行列数N=");
    scanf("%d", &n);
    for (i = 1; i <= m; i++)
    {
        printf("%12d", i);
        if (i % n == 0)
            printf("\n");
    }
    if(m%n==0)
        printf("\n结论:数字1到M,按N个数一行打印,总共有%d行",m/n );
    else
        printf("\n结论:数字1到M,按N个数一行打印,总共有%d行", m / n+1);
    return 0;
}

望采纳!!点击该回答右侧的“采纳”按钮即可采纳!!

using System;

namespace PrintNumbers
{
class Program
{
static void Main(string[] args)
{
// 读取输入
Console.Write("请输入总数 M = ");
int m = int.Parse(Console.ReadLine());
Console.Write("请输入每行列数 N = ");
int n = int.Parse(console.ReadLine());


        // 计算总行数
        int rows = (m + n - 1) / n;

        Console.WriteLine("数字 1 到 M,按 N 个数一行显示如下:");

        // 遍历每一行
        for (int i = 0; i < rows; i++)
        {
            // 遍历每一列
            for (int j = 0; j < n; j++)
            {
                // 计算当前数字的值
                int num = i * n + j + 1;
                // 如果数字大于 M,退出循环
                if (num > m) break;
                // 输出数字,并使用 "D12" 格式设置数字位宽为 12 位
                Console.Write("{0, 12:D12}", num);
            }
            Console.WriteLine();
        }

        Console.WriteLine("结论:数字 1 到 M,按 N 个数一行打印,总共有 {0} 行。", rows);
    }
}
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632