c - 使用函数重写程序
问题描述
有谁知道你将如何重写我为多项式乘法编写的程序,但这次使用一个函数来乘以这些多项式,打印结果和一个函数来加载两个多项式的系数?这是我的原始代码 -
#include<stdio.h>
main ()
{
int i, j, sizePoly1, sizePoly2;
printf ("Enter number of terms in Polynomial 1\n");
scanf ("%d", &sizePoly1);
printf ("Enter number of terms in Polynomial 2\n");
scanf ("%d", &sizePoly2);
int a[sizePoly1], b[sizePoly2], prod[sizePoly1 + sizePoly2];
printf ("Enter Elements of Polynomial 1\n");
for (i = 0; i < sizePoly1; i++)
{
printf ("Enter x^%d Co-Efficient of Polynomial 1\n", i);
scanf ("%d", &a[i]);
}
printf ("Enter Elements of Polynomial 2\n");
for (i = 0; i < sizePoly2; i++)
{
printf ("Enter x^%d Co-Efficient of Polynomial 2\n", i);
scanf ("%d", &b[i]);
}
for (i = 0; i < sizePoly1 + sizePoly2; i++)
{
prod[i] = 0;
}
for (i = 0; i < sizePoly1; i++)
{
for (j = 0; j < sizePoly2; j++)
{
if (a[i] != 0 && b[j] != 0)
prod[i + j] += a[i] * b[j];
}
}
for (i = sizePoly1 + sizePoly2 - 1; i >= 0; i--)
{
if (prod[i] != 0)
{
if (i != 0)
{
printf ("%d x^%d + ", prod[i], i);
}
else
{
printf ("%d x^%d\n", prod[i], i);
}
}
}
}
这就是我想出的。我几乎不了解函数,所以这就是为什么它不能真正工作 -
#include<stdio.h>
int Coef (int i, int j , int a[sizePoly1], int b[sizePoly2],){
printf ("Enter Elements of Polynomial 1\n");
for (i = 0; i < sizePoly1; i++)
{
printf ("Enter x^%d Co-Efficient of Polynomial 1\n", i);
scanf ("%d", &a[i]);
}
printf ("Enter Elements of Polynomial 2\n");
for (i = 0; i < sizePoly2; i++)
{
printf ("Enter x^%d Co-Efficient of Polynomial 2\n", i);
scanf ("%d", &b[i]);
}
}
int Polyproduct (int i, int j, int sizePoly1, int size Poly2, int a[sizePoly1, int b[sizePoly2], int prod[sizePoly1 + sizePoly2] ){
for (i = 0; i < sizePoly1 + sizePoly2; i++)
{
prod[i] = 0;
}
for (i = 0; i < sizePoly1; i++)
{
for (j = 0; j < sizePoly2; j++)
{
if (a[i] != 0 && b[j] != 0)
prod[i + j] += a[i] * b[j];
}
}
}
int PolyPrint (int i, int sizePoly1, int sizePoly2, int prod[sizePoly1 + sizePoly2]) {
for (i = sizePoly1 + sizePoly2 - 1; i >= 0; i--)
{
if (prod[i] != 0)
{
if (i != 0)
{
printf ("%d x^%d + ", prod[i], i);
}
else
{
printf ("%d x^%d\n", prod[i], i);
}
}
}
}
int main ()
{
int i, j, sizePoly1, sizePoly2;
printf ("Enter number of terms in Polynomial 1\n");
scanf ("%d", &sizePoly1);
printf ("Enter number of terms in Polynomial 2\n");
scanf ("%d", &sizePoly2);
Coef();
Polyproduct();
PolyPrint();
}
解决方案
看我的评论。我详细说明一下。
你的主要可能看起来像:
int main ()
{
int sizePoly1, sizePoly2;
printf ("Enter number of terms in Polynomial 1\n");
scanf ("%d", &sizePoly1);
printf ("Enter number of terms in Polynomial 2\n");
scanf ("%d", &sizePoly2);
int poly1[sizePoly1];
int poly2[sizePoly2];
int prod[sizePoly1 + sizePoly2];
Coef(sizePoly1, sizePoly2, poly1, poly2);
Polyproduct(sizePoly1, sizePoly2, poly1, poly2, prod);
PolyPrint(sizePoly1, sizePoly2, prod);
return 0;
}
函数Coef
应声明为:
int Coef (int sizePoly1, int sizePoly2 , int a[sizePoly1], int b[sizePoly2])
{
int i, j;
// ...
打开警告后,您将收到一些额外的警告。祝你好运!
推荐阅读
- r - 如何独立于 bookdown 中的正文控制代码块的字体大小和线拉伸?
- python - 通过访问可在常规浏览器上运行的页面,在 selenium 上禁止 403
- r - 根据另一个 data.frame 中的值创建新的 data.frame
- javascript - 从查询中检索工作项后访问 tfs 工作项的字段
- php - 如何使用深层变量创建多维数组
- dart - 在 Flutter 中将 Widget 放在 ListView 之上
- c++ - Visual Studio 2017 - 为依赖项禁用 CMake
- swift - 在类中创建自定义操作以在 Interface Builder 中使用
- c# - C#获取长字符串中所有出现的单词的所有内容
- c# - ASP.NET Core:标签助手“选择”为空