我的函数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 |顺序写所有的combi。猫-e
the combi 012, 013, 014, ..., 789$
我尝试使用此功能,但是我只写了如下错误:A @ ^
答案 0 :(得分:0)
您的内部循环正在针对错误的变量进行测试。您没有在内部循环中打印三个数字。我还改用了字符常量“ 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(' ');
}
}
}
}