我的函数my_putchar
#include <unistd.h>
void my_putchar(char c)
{
write(1, &c, 1);
}
我的函数my_print_comb
#include <unistd.h>
int my_putchar(char c);
void my_print_comb(void)
{
int i;
int j;
int k;
for(i = 48; i <= 57; ++i)
{
my_putchar(i);
for(j = 48; j <= 57; ++j)
{
for(k = 48; j <= 57; ++k)
{
}
}
}
}
my_putchar(',');
my_putcahr(' ');
my_putchar('\n');
}
我的主要内容是:
#include <unistd.h>
int my_print_comb(void);
int main ()
{
my_print_comb();
return (0);
}
所以我想用./ex | cat -e来编写所有的combi
the combi 012, 013, 014, ..., 789$
我试着使用这个函数,但我只写了这样的bug : A@^
发布于 2018-10-23 03:31:07
您的内部循环正在针对错误的变量进行测试。您没有打印内部循环中的三位数。我还切换到使用字符常量'0‘和'9’,以使代码更易于阅读和错误检查。(我认为拼写错误的putcahr
不在原始代码中。)
编辑后补充说:对不起,我在问题中漏掉了“不同”这个词。我将把它的具体实现留给读者作为练习,因为您没有发布任何试图检查它的代码。但是在内部代码块周围添加一个if
检查应该可以做到这一点:if(test){my_putchar(i); my_putchar(j);...}
void my_print_comb(void)
{
int i;
int j;
int k;
for(i = '0'; i <= '9'; ++i)
{
for(j = '0'; j <= '9'; ++j)
{
for(k = '0'; k <= '9'; ++k) // k, not j, is tested against '9'
{
my_putchar(i);
my_putchar(j);
my_putchar(k);
my_putchar(',');
my_putchar(' ');
}
}
}
}
https://stackoverflow.com/questions/52935546
复制相似问题