| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2577 人关注过本帖
标题:新人有个题不会做 想求好心的大神帮忙写个代码
只看楼主 加入收藏
R847107643
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:15 
新人有个题不会做 想求好心的大神帮忙写个代码
题:编写一个程序实现两个一元多项式相加的运算。
从标准输入中读入两行以空格分隔的整数,每一行代表一个多项式,且该多项式中各项的系数均为0或正整数,最高幂次不超过50。对于多项式 anxn +  an-1xn-1+ … + a1x1 + a0x0  (n≤50)的表示方法如下: an n an-1 n-1 … a1 1 a0 0
即相邻两个整数分别表示表达式中一项的系数和指数。在输入中只出现系数不为0的项。
将运算结果输出到屏幕。将系数不为0的项按指数从高到低的顺序输出,每次输出其系数和指数,均以一个空格分隔。在行的末尾也输出一个空格符,并且最后要求换行。
比如:输入10
54 8 2 6 7 3 25 1 78 0
6
43 7 4 2 8 1  
输出:54 8 43 7 2 6 7 3 4 2 33 1 78 0    (数字之间用一个空格分隔,末尾也有空格符)



小的先谢谢各位大哥了 有空的能不能帮忙写一下 能力才初学偏上 不会搞啊
搜索更多相关主题的帖子: hellip 表达式 多项式 正整数 
2017-03-27 00:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:15 
贴了题目后,自己有没有看一眼?比如“(n≤50)”这是啥

程序代码:
#include <stdio.h>

int main( void )
{
    unsigned as[51] = { 0 };

    for( unsigned cnt=0; cnt!=2; ++cnt )
    {
        unsigned num;
        scanf( "%u", &num );
        for( unsigned i=0; i!=num/2; ++i )
        {
            unsigned a, n;
            scanf( "%u%u", &a, &n );
            as[n] += a;
        }
    }

    for( unsigned i=0; i!=50; ++i )
    {
        if( as[50-i] != 0 )
            printf( "%u %u ", as[50-i], 50-i );
    }
    putchar( '\n' );
}
2017-03-27 08:57
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10539
专家分:42927
注 册:2014-5-20
收藏
得分:5 
图片附件: 游客没有浏览图片的权限,请 登录注册

#include <stdio.h>
main()
{
    int pol[2][50]= {0};
    int i, j, k, m, n;
    for (i=0; i<2; i++)
    {
        printf("输入第%d个多项式的项数:\n", i+1);
        fflush(stdin);
        scanf("%d", &k);
        printf("\n输入各项的系数和指数(系数 指数):\n");
        fflush(stdin);
        for (j=0; j<k; j++)
        {
            if (scanf("%d %d", &m,&n) == 2)
            {
                if (n > 49)
                {
                    printf("指数:%d 超出范围,最高幂次不超过50", n);
                    return;
                }
                if (pol[i][n] == 0)
                    pol[i][n] = m;
                else
                {
                    printf("指数:%d 重复,多项式各项指数不相同", n);
                    return;
                }
            }
        }
        printf("\n第%d个多项式:\n\n", i+1);
        for (j=49; j>=0; j--)
            if (pol[i][j] != 0)
                printf("%dx^%d + ", pol[i][j], j);
        printf("\b\b \n\n");
    }
    printf("\n2个多项式相加结果:\n\n");
    for (j=49; j>=0; j--)
    {
        pol[0][j] += pol[1][j];
        if (pol[0][j] != 0)
            printf("%dx^%d + ", pol[0][j], j);
    }
    printf("\b\b \n\n");
}
2017-03-27 11:02
R847107643
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-27
收藏
得分:0 
回复 2楼 rjsp
不好意思太仓促了所以没看题目……
2017-03-27 12:46
R847107643
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-27
收藏
得分:0 
回复 3楼 吹水佬
感谢大佬 但是我不想让我的两个式子先输出 想直接要结果怎么破?
2017-03-27 12:46
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10539
专家分:42927
注 册:2014-5-20
收藏
得分:0 
以下是引用R847107643在2017-3-27 12:46:54的发言:

感谢大佬 但是我不想让我的两个式子先输出 想直接要结果怎么破?

那就不让两个式子输出 //printf
2017-03-27 14:55
R847107643
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-27
收藏
得分:0 
回复 6楼 吹水佬
为什么我输入完第一个式子 末尾也有空格的情况下回车会这样。。?
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-03-27 18:05
R847107643
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-27
收藏
得分:0 
upup..
2017-03-27 21:44
R847107643
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-27
收藏
得分:0 
回复 2楼 rjsp
不是啊 原题就这样 刚才看的时候对比了一下。。
2017-03-27 23:00
R847107643
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-27
收藏
得分:0 
回复 3楼 吹水佬
我怕我没说明白 我再说一遍吧 就是我按回车不能输出第一个式子 也不能输第二个……
2017-03-27 23:06
快速回复:新人有个题不会做 想求好心的大神帮忙写个代码
数据加载中...
 
   



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

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