我有
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);
}
和其他许多人。但是,由于这些只会使用两次,两行分开,这似乎是浪费(并将代码与其自然位置分开,很少是一件好事)。当然有更好的方法!想法?
答案 0 :(得分:2)
提示:
do {
code block to be executed
} while (condition);
即 - 考虑更改循环,以便重复的代码不再重复..