C语言 如何声明一个教育使用数组不重复它?(我是一个乞丐.)



我是一个初学者,我试图制作一个程序,打印出两个polinomions(一个2级和一个3级)我想用数组这样做,所以我可以很容易地使用它进行其他步骤,但是我的polinomions在运行我的程序时重复了4次

#include <stdio.h>
#include <stlib.h>
int main(){
int a[4];
int b[3];
int i, j;
printf("type 4 numbers:");
for(i=0; i<4; ++i){
scanf("%d", &a[i]);
}
for(i=0; i<4; ++i){
printf("%dx^3+%dx^2+%dx+%dn", a[0],a[1],a[2],a[3]);
}


printf("Type 3 numbers:");
for(j=0; j<3; ++j){
scanf("%d", &b[j]);
}
for(j=0; j<3; ++j){
printf("%dx^2+%dx+%dn", b[0],b[1],b[2]);
}
return 0;
}

当我打印出我的教育,教育重复了4次,我猜这是因为循环…我如何改进我的代码,使这种情况不会发生。很抱歉我的英语不好,谢谢你的时间!

这是因为在for循环中,您重复输出相同的字符串,例如

for(i=0; i<4; ++i){
printf("%dx^3+%dx^2+%dx+%dn", a[0],a[1],a[2],a[3]);
}

您需要删除for语句。或者最好编写一个单独的函数,例如

void display_polynome( const int a[], size_t n )
{
for ( size_t i = 0; i < n; i++ )
{
if ( i != 0 ) putchar( '+' );

if ( i == n - 1 ) 
{
printf( "%dxn", a[i] );
}
else
{
printf( "%dx^%zu", a[i], n - i - 1 );
}
}
}

函数可以像

那样调用
display_polynome( a, 4 );
display_polynome( b, 3 );

最新更新