主函数参数--命令行输入数据排序

题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
   提示:需要排数的数字通过参数传递进来,
   例如:输入:./a.out  -1  2.1  -3  5  7 输出: -3 -1 2.1 5 7

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int i, j;
    char *tmp;

    printf("argc = %d\n",argc);
    printf("the command is %s\n",argv[0]);

    for (i = 1; i < argc - 1; i++)
    {
        for (j = argc - 1; j > i; j--)
        {
            if (atof(argv[j-1]) > atof(argv[j]))
            {
                tmp = argv[j-1];//改变地址指向
                argv[j-1] = argv[j];
                argv[j] = tmp;
            }
        }
    }

    for (i = 1; i < argc; i++)
    {
        printf("%s ",argv[i]);
    }

    printf("\n");

    return 0;
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码实现: ```python import sys def sum_numbers(numbers): """ 对输入的整数列表进求和运算 """ result = 0 for num in numbers: result += int(num) return result if __name__ == '__main__': # 获取命令参数列表 args = sys.argv[1:] # 对参数列表进求和运算 total = sum_numbers(args) # 输出结果 print('输入的整数之和为:', total) ``` 使用方法: 在命令输入以下命令: ``` python sum_numbers.py 1 2 3 4 5 ``` 其中,`sum_numbers.py` 是 Python 脚本文件的名称,后面的数字是要求和的整数。运后,输出结果为: ``` 输入的整数之和为: 15 ``` ### 回答2: 在C语言中,可以使用带参数函数来获取命令输入参数并进相应的操作。针对求和运算,需要将输入的若干整数都加起来并输出结果。 首先,需要在main函数参数列表中添加两个参数argc和argv,分别表示命令输入参数个数以及参数的字符串数组。 int main(int argc, char *argv[]) { 接着,在函数中可以使用循环将输入的整数进遍历,并将它们转换为整型数值并累加起来。 int sum = 0; for (int i = 1; i < argc; i++) { sum += atoi(argv[i]); } 最后,输出结果即可。 printf("The sum is: %d\n", sum); 完整的代码如下: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int sum = 0; for (int i = 1; i < argc; i++) { sum += atoi(argv[i]); } printf("The sum is: %d\n", sum); return 0; } 使用该程序,可以在命令输入多个整数并进求和运算,例如: $ ./sum 1 2 3 4 5 The sum is: 15 需要注意的是,在程序中没有做输入参数的检查,因此输入参数必须为整数才能得到正确的结果。如果输入参数不是数字,则会引起类型转换错误,程序将无法正常运。因此,在实际开发中,需要对输入参数严格的检查并进异常处理。 ### 回答3: 带参数函数是指在main函数中定义参数,让程序可以在运时接收外部的命令输入。在本题中,我们需要实现对输入的若干整数进求和运算并输出结果。具体步骤如下: 1.在main函数中定义参数argc和*argv[]。其中,argc为命令参数个数,*argv[]为命令参数数组,即用空格隔开的多个字符串。 int main(int argc, char *argv[]) 2.由于我们需要对输入的若干整数进求和运算,因此需要先定义一个变量sum,并初始化为0。 int sum = 0; 3.接下来使用循环结构for对命令参数数组进遍历,将字符串类型的参数转换为整型,并累加到sum变量中。 for(int i=1; i < argc; i++){ sum += atoi(argv[i]); } 4.最后输出求和结果,并结束程序。 printf("Sum: %d\n", sum); return 0; 完整代码如下: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ int sum = 0; for(int i=1; i < argc; i++){ sum += atoi(argv[i]); } printf("Sum: %d\n", sum); return 0; } 使用该程序时,可以在命令输入多个整数,例如: ./sum 1 2 3 4 程序的输出结果为: Sum: 10 这表示输入的4个整数1、2、3、4的求和结果为10。因此,我们成功地通过带参数函数实现了对命令输入的若干整数进求和运算并输出的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值