打印从n到m的数字

时间:2018-10-11 02:44:54

标签: c

从命令行获取两个整数,分别为'n'和'm'并打印所有数字 从n到m(含)之间的起始数字应为两者中的较小者 结束数以n或m中较大者为准。打印使用说明 "Usage: p2 <int> <int>\n",如果命令行参数不足,则退出 给出了。

示例输入/输出:

./p2 5 1
1
2
3
4
5

我的代码在这里:

int main() {

    int i, m, n;

    m = atoi (argv[1]);
    n = atoi (argv[2]);

    if (argc < 3) {
        printf("Usage: p2 <int> <int>\n");

        return 0;
    }

    for (i = 1; i<= m; i++)

        /* Not finish because not sure how */

1 个答案:

答案 0 :(得分:0)

在尝试使用参数之前,您需要检查argc 。为了使用argcargv,必须将它们放在main()参数列表中。

循环需要从较小的数字开始,而不是从1开始。这意味着您需要首先确定m是否小于n

int main(int argc, char *argv[]) {

    int i, m, n;

    if (argc < 3) {
        printf("Usage: p2 <int> <int>\n");

        return 0;
    }

    m = atoi (argv[1]);
    n = atoi (argv[2]);

    if (n < m) { // Ensure that m is the lower number
        int temp = n;
        n = m;
        m = temp;
    }

    for (i = m; i<= n; i++) {
        printf("%d\n", i);
    }

    return 0;
}