| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 822 人关注过本帖
标题:C语言 输入多个数相加或相减
只看楼主 加入收藏
xxoo12345678
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-12-15
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:5 
C语言 输入多个数相加或相减
C语言 输入多个数相加或相减例如:
输入:2+4+2+10
输出结果:18
输入:11-2+9+10+27
输出结果:55
输入:33-11-3
输出结果:19
求大神帮忙一下,有人说是这样的步骤,可是我不知道怎么写:1)读入字符串(2)提取运算数(3)提取运算符(4)计算
搜索更多相关主题的帖子: C语言 字符串 网站 
2014-12-15 15:05
wyw19880809
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:178
专家分:738
注 册:2013-3-14
收藏
得分:0 
步骤清晰明了,读入字符串有函数,提取运算数和运算符就是找到字符串中的所有运算符(不要说这个不知道怎么找),其左右相应位置就是运算数(需自己字符串转换为数字)了。
2014-12-15 15:23
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
程序代码:
#include <stdio.h>

int foo( const char* s )
{
    int sum = 0;
    for( int i=0,v,j; sscanf(s+i,"%d%n",&v,&j)==1; i+=j )
        sum += v;
    return sum;
}

int main()
{
    printf( "%d\n", foo("2+4+2+10") );
    printf( "%d\n", foo("11-2+9+10+27") );
    printf( "%d\n", foo("33-11-3") );

    return 0;
}
2014-12-15 15:42
BuilderZ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:123
注 册:2014-9-22
收藏
得分:20 
#include <stdio.h>
int main()
{
   int sum = 0, times = 0, a, a1 = 0;
   printf("Please input a: (0 for add, others for subtract): \n");
   scanf("%d", &a);
   if(a == 0)
   {
      printf("Please input the NO. of the numbers: \n");
      scanf("%d", &times);
      for(int i = 0; i < times; i++)
      {
         scanf("%d", &a1);
         if(i == 0)
         {
            sum = i;
         };
         else
         {
            sum += i;
         };
      };
      printf("the result: %d\n", sum);
   };
   else
   {
      printf("Please input the NO. of the numbers: \n");
      scanf("%d", &times);
      for(int i = 0; i < times; i++)
      {
         scanf("%d", &a1);
         if(i == 0)
         {
            sum = i;
         };
         else
         {
            sum -= i;
         };
      };
      printf("the result: %d\n", sum);
   };
   return 0;
};
2014-12-17 06:20
BuilderZ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:123
注 册:2014-9-22
收藏
得分:0 
以下是引用BuilderZ在2014-12-17 06:20:36的发言:

#include <stdio.h>
int main()
{
   int sum = 0, times = 0, a, a1 = 0;
   printf("Please input a: (0 for add, others for subtract): \n");
   scanf("%d", &a);
   if(a == 0)
   {
      printf("Please input the NO. of the numbers: \n");
      scanf("%d", ×);
      for(int i = 0; i < times; i++)
      {
         scanf("%d", &a1);
         if(i == 0)
         {
            sum = i;
         };
         else
         {
            sum += i;
         };
      };
      printf("the result: %d\n", sum);
   };
   else
   {
      printf("Please input the NO. of the numbers: \n");
      scanf("%d", ×);
      for(int i = 0; i < times; i++)
      {
         scanf("%d", &a1);
         if(i == 0)
         {
            sum = i;
         };
         else
         {
            sum -= i;
         };
      };
      printf("the result: %d\n", sum);
   };
   return 0;
};

this program is so stupid after second time i seeing it. how I make it out ...
2014-12-17 06:21
我只是个学生
Rank: 3Rank: 3
来 自:中石大
等 级:论坛游侠
威 望:1
帖 子:57
专家分:190
注 册:2014-12-14
收藏
得分:0 
#include <stdio.h>

int foo( const char* s )
{
    int sum = 0;
    for( int i=0,v,j; sscanf(s+i,"%d%n",&v,&j)==1; i+=j )
        sum += v;
    return sum;
}

int main()
{
    char str[100];
    gets(str);
    printf( "%d\n", foo(str) );

    return 0;
}//3楼的源代码,我加了个读取字符串的两行。
3楼大神!!学习了!!!

我们的善良将助长一个孩子不劳而获的懒惰心理
2014-12-17 09:03
快速回复:C语言 输入多个数相加或相减
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017653 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved