半字节半位数转换器

时间:2016-04-26 20:57:21

标签: c converter nibble

Hello其他程序员,

我可能想问你,

我从我的大学得到一个转换十进制数字(0-9)的任务 到半位(半字节= 0101即。)限制是我们不能使用if语句

所以我尝试了一点,到目前为止

int main()
{
    int n;

    printf("type in your digit");
    scanf("%d", &n );
    printf("%n%n%n%n", (n/8)%2, (n/4)%2, (n/2)%2, n%2);

    return 0;
}

我的问题是,如果我这样做程序崩溃,我就无法输入数字

我真的很挣扎,不知道如何继续或让它发挥作用

你能给我一些它如何运作的例子吗? 或者如何使其发挥作用的一些好建议。

我真的很感激

非常感谢您的帮助和回答!

1 个答案:

答案 0 :(得分:0)

您使用了错误的格式说明符annoncesNew WHERE id=144");

printf格式说明符需要%n并将到目前为止写入的字符数写入给定的内存地址。因为您将int *传递给期望int的参数,int *将该数字解释为内存地址并尝试写入它。这是未定义的行为,很可能会导致核心转储。

您想要使用printf,而是用于输出%d

int