题目:以二进制的形式打印整数
我的代码:
#include //二进制打印整数//
int dg(int );
int main()
{
int c;
while(scanf("%d",&c)==1)
dg(c);
printf("that's over");
return 0;
}
int dg(int a)
{
int b ;
b=a%2;
while(b>2)
b=b%2;
printf("%d\n",b==0?0:1);
return ;
}
这个代码无法运行,求问怎么改
该回答引用GPTᴼᴾᴱᴺᴬᴵ
在代码中,函数dg()的参数类型是int,但是没有给出函数的声明。为了解决这个问题,可以在程序开始处加入函数声明或将函数定义放在main()函数前面。此外,函数dg()的返回值类型为void,所以不需要在return语句中返回值。
下面是修改后的代码:
#include <stdio.h>
void dg(int);
int main() {
int c;
while (scanf("%d", &c) == 1) {
dg(c);
}
printf("That's over");
return 0;
}
void dg(int a) {
int b;
b = a % 2;
while (b > 2) {
b = b % 2;
}
printf("%d\n", b == 0 ? 0 : 1);
}
这样就可以以二进制的形式打印整数了。
修改如下:
#include<stdio.h>//二进制打印整数//
void dg(int a);
int main()
{
int c;
while(scanf("%d",&c)==1) {
dg(c);
printf("\n");
}
printf("that's over");
return 0;
}
void dg(int a)
{
int b ;
b=a%2;
if (a >= 2)
dg(a / 2);
printf("%d",b==0?0:1);
}