acm1473,不知道错哪了,请大家帮小弟我看看小弟我的程序哪里不对

acm1473,不知道哪里错了,请大家帮我看看我的程序哪里不对
题目描述:
  大家都知道,数据在计算机里中存储是以二进制的形式存储的。
  有一天,小明学了C语言之后,他想知道一个类型为unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的。
  你能帮帮小明吗?并且,小明不想要二进制串中前面的没有意义的0串,即要去掉前导0。
输入:
第一行,一个数字T(T<=1000),表示下面要求的数字的个数。
接下来有T行,每行有一个数字n(0<=n<=10^8),表示要求的二进制串。
输出:
输出共T行。每行输出求得的二进制串。
样例输入:
5
23
535
2624
56275
989835
样例输出:
10111
1000010111
101001000000
1101101111010011
11110001101010001011

我的程序:#include "stdafx.h"
#include "StdAfx.h"
#include <algorithm>
#include<time.h>
#include <cmath>
#include <math.h> 
#include <iomanip> 
#include "string"
#include "iostream"
using namespace std;
int num[1000];
int main(){
long long int m,temp;
int n;
int i,j,k;
while(cin>>n){
for(i=0;i<n;i++){
cin>>m;
temp=m;
for(j=0;temp;j++){
num[j]=temp%2;
temp=temp/2;
}
for(k=j-1;k>=0;k--)
cout<<num[k];
cout<<endl;
}
}
return 1;
}
------解决方案--------------------
引用:
Quote: 引用:

0你是不是没输出?

什么意思?题目所给的事例我的程序是成功的

m=0你输出啥