这是十进制小数转任意进制数程序,哪里有问题,望提出!

#include<stdio.h>
long integer(int i,int p)
{
int j,k,h=0;
char m[40],t;
while(i!=0)
{
k=i%p;
if(k>=10)
m[h++]=k-10+65;
else
m[h++]=k+48;
i/=p;
}
for(j=0;j<h/2;j++)
{
t=m[j];
m[j]=m[h-j-1];
m[h-j-1]=t;
}
m[h]='\0';
printf("%s\n",m);
}
long decimal(double x,int p)
{
double a;
int b,h=0,j;
char m[40];
while((int)a!=a)
{
a=x*p;
b=(int)a;
if(b>=10)
m[h++]=b-10+65;
else
m[h++]=b+48;
a=a-b;
}
for(j=0;j<h;j++)
printf("%d",(long)m);
}
void main()
{
double f;
int p,i;
scanf("%lf,%d",&f,&p);
i=(int)f;
integer(i);
printf(".");
decimal(f-i);
printf("\n");
}

MYYA
浏览 92回答 1
1回答

DIEA

好像没什么问题吧。下面是我根据你给的函数,补充完整编译的,可是没提示什么错误。可能是其他地方引起的吧。too&nbsp;few&nbsp;actual&nbsp;parameters&nbsp;是说实参太少,可能是你哪个函数调用的时候,参数少了。#include<stdio.h>#include<stdlib.h>#include<string.h>struct&nbsp;student{&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;stuxuehao[6];&nbsp;int&nbsp;stuno1;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;stuno2;&nbsp;&nbsp;&nbsp;int&nbsp;stuno3;&nbsp;&nbsp;&nbsp;int&nbsp;stuno4;}&nbsp;;void&nbsp;PraseStuNO(student*&nbsp;stu){char&nbsp;sz[2]={0};strncpy(sz,&nbsp;stu->stuxuehao,&nbsp;2);stu->stuno1&nbsp;=&nbsp;atoi(sz);memset(sz,0,2);strncpy(sz,&nbsp;stu->stuxuehao&nbsp;+&nbsp;2,&nbsp;1);stu->stuno2&nbsp;=&nbsp;atoi(sz);memset(sz,0,2);strncpy(sz,&nbsp;stu->stuxuehao&nbsp;+&nbsp;3,&nbsp;2);memset(sz,0,2);strncpy(sz,&nbsp;stu->stuxuehao&nbsp;+&nbsp;5,&nbsp;1);stu->stuno3&nbsp;=&nbsp;atoi(sz);
打开App,查看更多内容
随时随地看视频慕课网APP