繁体   English   中英

如何使用linux进行多路输入运算

[英]How to take in multiple inputs using linux to do operations

我需要帮助理解为什么代码不起作用。 我不完全了解如何使用 argc 和 argv。 我需要进行可以有多个输入的加法、减法、乘法和除法运算。 加法是将它们加在一起,我能够得到那个。 对于其他人,它采用第一个输入并乘以 rest。 我正在使用 linux。 要输入数字,我会 (./.a.out 1 2 3 4) 输入整数。 谢谢


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

int main( int argc, const char * argv[])
{
    float sum=0.0;
    float sub=0.0;
    float div=0.0;
    float mult=0.0;

    char ch;

    printf("Pick a function \n");
    scanf("%c", &ch);  

    int x,y;

    switch(ch)                                                        
    {
    case ('A'):                                                           
        {
        x = argc -1;
        for(y=0;y<x;y++)
        {
        sum = sum + atoi(argv[y+1]);
        }
        printf("The result of addition is %f\n",sum);             
        break;
        }
    case ('S'):
        {
        x = argc -1;
        for(y=0;y<x;y++)
        {
        sub = sub - atoi(argv[y+1]);
        }
        printf("The result of subtraction is %f\n",sub);             
        break;
        }
    case ('M'):
        {
        x = argc -1;
        for(y=0;y<x;y++)
        {
        mult = mult * atoi(argv[y+1]);
        }
        printf("The result of multiplication is %f\n",mult);              
        break;
        }
    case ('D'):
        {
        x = argc -1;
        for(y=0;y<x;y++)
        {
        div = div / atoi(argv[y+1]);
        }
        printf("The result of division is %f\n",div);              
        break;
        }
    }
}

这是您需要修复的蓝图:

    #include <iostream>
    // etc..
    using namespace std;

    float mult = 1.0;
    float div = 1.0;

    case ('M'):
    {
            x = argc - 1;
            for (int y = 0; y < x; ++y)
            {
                mult = mult * atoi(argv[y+1]);
            }
            cout << "The result of multiplication is" << mult << endl;             
            break;
    }

对于减法和除法,只需sub = atoi(argv[1]); / div = atoi(argv[1]); 在循环之外,并将循环控制变量设置为int y = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM