我有
for (i = 1; i < max_i; i++) {
e[i] == 1 ? printf("%ld", p[i]) : printf("%ld^%ld", p[i], e[i]);
}
在一个循环中,但随后需要在元素之间写入乘号(但不是第一个)。我不想
e[1] == 1 ? printf("%ld", p[1]) : printf("%ld^%ld", p[1], e[1]);
for (i = 2; i < max_i; i++) {
e[i] == 1 ? printf(" * %ld", p[i]) : printf(" * %ld^%ld", p[i], e[i]);
}
所以我写了一个快速的一次性函数
void
show_pe(int p, int e)
{
if (e == 1)
printf("%ld", p);
else
printf("%ld^%ld", p, e);
}
尽管弄脏了命名空间,但它很好地删除了重复项。但是现在我看到以下函数具有我的快速函数未涵盖的类似代码。我需要
void
show_e_p(int p, int e)
{
if (e == 1)
printf("%ld", p);
else
printf("%ld*%ld", e, p);
}
和
void
show_pe_outside(int p, int e)
{
if (e == 1)
printf("a(%ld)", p);
else
printf("a(%ld)^%ld", p, e);
}
和许多其他人。但是由于这些只会使用两次,相隔两行,这似乎很浪费(并且将代码与其自然位置分开,这很少是一件好事)。肯定有更好的办法!想法?