| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 452 人关注过本帖
标题:一个C语言的问题,求解
只看楼主 加入收藏
quesea
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-6-5
结帖率:0
收藏
已结贴  问题点数:10 回复次数:5 
一个C语言的问题,求解
给一个以x为变量并且没有括号的一元一次方程,请你们计算出变量x的值。
例如: 3x-5-10x+301=80x+2
每一个方程的一般形式是这样的:

'='两边分别为以x为变量的表达式

每个表达式都是由'+'或'-'号的项组成

表达式中不会出现一元的'+'或'-'

每一个项,或都是一个单独的整数,或都是由一个整数和一个小写的字符x或由一个小写的字符x组成,这里,一个小写的字符x表示为1x
搜索更多相关主题的帖子: 表达式 C语言 
2011-06-05 22:35
变幻小子
Rank: 6Rank: 6
来 自:广东陆丰
等 级:侠之大者
帖 子:188
专家分:473
注 册:2011-3-4
收藏
得分:3 
学习

明天的梦
2011-06-06 00:51
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:3 
程序代码:
/*********************************

    2011-06-05 (year-month-day)

         xxc/dxc/cosdos

*********************************/



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

#define MAX 81

int readExpression(char *exp, int *pd, int *px)
{
    int i, val, x;
    int lv = 1;   // 等号左边

    for (i=0; exp[i] != '\0'; ++i) {
        if (exp[i] == '=') {
            lv = 0;
            continue;
        }

        x=val=0;

        if (1 == sscanf(exp+i, "%d", &val) ) {
            if (!lv)
                val = -(val);
            while (isdigit(exp[i+1]))
                ++i;
        }else if (exp[i] == '+') {
            val = (lv ? 1 : -1);
        }else if (exp[i] == '-') {
            val = (lv ? -1 : 1);
        }else if (exp[i] == 'x') {
            val = (lv ? 1 : -1);
            x = 1;
        }

        if (exp[i+1] == 'x') {
            x = 1;
            ++i;
        }
        if (x) {
             *px=val;
             ++px;
        }else {
            *pd=val;
            ++pd;
        }
    }
    return 0;
}


int array_sum(int *p, int n)
{
    int i, sum=0;
    for (i=0; i<n; ++i)
        sum += p[i];
    return sum;
}

int main(void)
{
    int i;
    char exp[1024] ={0};
    int d[MAX]    ={0};
    int x[MAX]    ={0};
    gets(exp);
    readExpression(exp, d, x);
    printf("%f\n", (double)(-array_sum(d, MAX)) / (double)array_sum(x, MAX) );
    
    system("pause");
    return 0;
}


[ 本帖最后由 cosdos 于 2011-6-6 20:41 编辑 ]

—>〉Sun〈<—
2011-06-06 20:21
stophin
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:227
专家分:618
注 册:2010-3-26
收藏
得分:3 
楼上牛人!!!楼上牛人!!!
2011-06-07 01:47
过河小马
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2011-4-14
收藏
得分:3 
是不是在编计算器?
2011-06-07 05:49
过河小马
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2011-4-14
收藏
得分:0 
代码不够清晰,没有解释我看不懂
2011-06-07 05:50
快速回复:一个C语言的问题,求解
数据加载中...
 
   



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

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