如何解决如何在for循环中使用指针?
我曾尝试为Booth的算法编写代码,但我一直在代码中遇到错误。我仍然是初学者,请帮助我。
#include<stdio.h>
#include<string.h>
char * decimalToBinary(int decimalnum);
int main(){
int n1,i,count1,n2;
long int a1;
char* a;
char* b;
printf("Enter the multiplicand: ");
scanf("%d",&n1);
a = decimalToBinary(n1);
printf("Enter the multiplier: ");
scanf("%d",&n2);
b = decimalToBinary(n2);
//code continued...
for(i=0; i<4; i++){
printf("%c",a[i]);
}
return 0;
}
在这里打印出垃圾值。谁能告诉我原因?
char * decimalToBinary(int decimalnum)
{
long binarynum = 0;
int i,rem,temp = 1;
char final[10];
while (decimalnum!=0)
{
rem = decimalnum%2;
decimalnum = decimalnum / 2;
binarynum = binarynum + rem*temp;
temp = temp * 10;
}
//here i used it as a string so i can use the string functions in the further code
for(i=0; binarynum>0; i++){
if(binarynum%10 == 1)
final[i]='1';
else
final[i]='0';
binarynum/=10;
}
final[i]='\0';
return strrev(final);
}
同样,代码编译时没有任何错误,并在DevCpp中打印出垃圾值,而在任何在线编译器中,它都会给出一条错误消息,提示:
main.c: In function ‘decimalToBinary’:
main.c:44:2: warning: implicit declaration of function ‘strrev’; did you mean ‘strsep’? [-Wimplicit-function-declaration]
strrev(final);
^~~~~~
strsep
main.c:45:12: warning: function returns address of local variable [-Wreturn-local-addr]
return final;
^~~~~
/tmp/ccVmEywL.o: In function `decimalToBinary':
main.c:(.text+0x1a9): undefined reference to `strrev'
collect2: error: ld returned 1 exit status
我仍然是初学者,请使用此代码帮助我
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。