首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找sum,其中用户必须输入参数为“sum(par1,par2,.)”的命令

查找sum,其中用户必须输入参数为“sum(par1,par2,.)”的命令
EN

Stack Overflow用户
提问于 2015-10-30 06:29:04
回答 1查看 56关注 0票数 2

用户使用parameters.There输入命令没有错误,但是我在奇怪的输出方面有问题。我将输入作为字符串,标识输入是否与命令' sum‘匹配,如果它在sum[]之间提取参数,将它们存储在数组中,并将它们作为参数发送给sum函数。

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int sumOfArray(int arr[])
{
int sum=0;
for(int i=0;i++;i<sizeof(arr))
    {
        sum = sum + arr[i];
    }
printf("%d\n",sum);
return sum;
}

int main()
{
char input[256];
int j=0,temp=0;
int arraySum[6]={0};
printf("user_account $> ");
fgets(input, sizeof(input), stdin);            
if (input[0]=='s' && input[1]=='u' && input[2]=='m')
{
    if (input[3]!='(')
    {
        printf("Please enter proper parameters : sum(num1, num2, ..)\n");
    }
    else
    {
        for (int i = 4; i++; input[i] < ']')
        {
            if (input[i] !=',')
            {
                if (!isdigit(input[i]))
                {
                    printf("Please enter only digits\n");
                    break;
                }
                else
                {
                    temp = int(input[i]);
                    printf("%d\n",temp);
                    arraySum[j] = arraySum[j]*10 + temp;

                }
            }
            else j++;
        }

    }
    sumOfArray(arraySum);
}
return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-30 09:52:28

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int sumOfPara(void){
    int v, sum = 0;
    char ch;

    while(1){
        if(2 == fscanf(stdin, "%d %c", &v, &ch) && (ch == ',' || ch == ')')){
            sum += v;
            if(ch == ')')
                break;
        } else {
            fprintf(stderr, "Parameter is invalid.\n");
            exit(EXIT_FAILURE);
        }
    }
    return sum;
}

int main(void){
    char command[32];
    char left_paren;

    printf("user_account $> ");
    if(2 != fscanf(stdin, "%31[a-z] %c", command, &left_paren) || strcmp(command, "sum") != 0 || left_paren != '('){
        fprintf(stderr, "Please enter proper parameters : sum(num1, num2, ..)\n");
        exit(EXIT_FAILURE);
    } else { //rest
        printf("%d\n", sumOfPara());
    }
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33429986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档