十进制转二进制但没有输出

img


题目如图,代码如下
但没有输出版
#include
#include
int main()
{
int num,i=0;
char c[100];
printf("Please input a integer:");
scanf("%d",&num);
while(num/2){
c[i]=(char)(num%2);
num=num/2;
i++;
}c[i]=(char)num;
printf("n=");
for(i=strlen-1;i>=0;i--){
printf("%c",c[i]);
}
return 0;
}

改动处见注释,供参考:

#include <stdio.h>
#include <string.h>
int main()
{
    unsigned int num; //int 修改
    int i=0;
    char c[100];
    printf("Please input a integer:");
    scanf("%u",&num);       //scanf("%d",&num); 修改
    while(num){             //while(num/2)      修改
        c[i] = (num%2)+'0'; //c[i]=(char)(num%2);修改
        num =  num/2;
        i++;
    }
                           //c[i]=(char)num; 修改
    printf("n=");
    for(i--;i>=0;i--){//for(i=strlen-1;i>=0;i--)修改
        printf("%c",c[i]);
    }
    return 0;
}

strlen的初始值呢?
其实
for(;i>=0;i--)即可