[英]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.