您的位置:首页 > 其它

PAT甲级习题(1002)

2016-11-29 16:36 281 查看
这题求两个多项式和,开始看半天题目没看懂,还是需要多学习英语。。。

#include <stdio.h>

int main(void)
{
double arrdBuf[1001]={0};                       // 存储多项式内容
unsigned int K1,K2;
int iExponent;
double dCoefficient;
unsigned int i,uiCounter;

printf("Please Input K1 & Polynomial_1.\r\n\t");
scanf("%d", &K1);
for(i=0; i<K1; i++)
{
scanf("%d %lf", &iExponent, &dCoefficient);
arrdBuf[iExponent] = dCoefficient;          /*> 将多项式各项的系数存放在其指数对应的位置 */
if(arrdBuf[iExponent] != 0)                 /*> 记录非0项数量 */
uiCounter++;
}

printf("Please Input K2 & Polynomial_2.\r\n\t");
scanf("%d", &K2);
for(i=0; i<K2; i++)
{
scanf("%d %lf", &iExponent, &dCoefficient);
arrdBuf[iExponent] += dCoefficient;         /*> 将多项式各项的系数存放在其指数对应的
位置,与已存放的系数相加 */
if( (arrdBuf[iExponent] == dCoefficient) \
&& (dCoefficient != 0) )             /*> 如果求和后系数没有变化,并且输入系数不为0,表示为新增项 */
uiCounter++;

if(arrdBuf[iExponent] == 0)                 /*> 减去求和后和输入为0的项 */
uiCounter--;
}

printf("Result is: \r\n\t");
printf("%d", uiCounter);
for(i=1001; i>0; i--)
{
if(arrdBuf[i-1] != 0)
printf(" %d %0.1lf", i-1, arrdBuf[i-1]);
}

printf("\r\n");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: