【发布时间】:2015-10-10 03:27:30
【问题描述】:
#include <stdio.h>
void pp(int);
int main()
{
int a[5]={4,5,7,1,9};
int i;
for(i=0;i<5;++i)
pp(a[i]);
return 0;
}
void pp(int n)
{
char a[6]={'0','0','0','0','0','\0'};
int x,i;
int l=4;
while(n)
{
x=n%2;
a[l--]=x+'0';
n=n/2;
}
for(i=0;i<6;++i)
printf("%c",a[i]);
printf(" ");
}
a 是一个 int 数组,其中包含 5 个十进制值。
pp 是将十进制数转换为无返回类型的 5 位二进制的函数。
但是当代码正在执行时,它只打印 a[0] 的结果,即 a 中第一个数据的值,然后它就停止了!
我不明白为什么:3 请帮帮我!
我的代码 o/p 是:00100
但应该是:00100 00101 00111 00001 01001
【问题讨论】:
-
按预期打印(VS 2013)。
-
在 Linux / gcc 4.1.2 上也适用于我。你到底是怎么编译这个的?
-
ideone.com/sOqC2n 在这里也可以正常工作!
-
试试
printf(" ");fflush(stdout); -
@Moinak Debnath 更改此 for 循环 for(i=0;i
标签: c arrays function char return