两个C语言的简单问题?求教!

2025-04-04 05:06:09
推荐回答(4个)
回答1:

第一个程序是因为你忘记在函数里面写上返回语句了
double fun(int m)
{double t=1.0;
int i;
for(i=2;i<=m;i++)
t+=1.0/i;

return t;//加上这一句就可以啦……
}

第二个程序是因为你把结果存数组里,下标是从0开始的,到i-1,而你从i开始输出结果,所以出错了.
应该把for语句改成:for(i--;i>=0;i--)

回答2:

1
#include
#include
double fun(int m)
{double t=1.0;
int i;
for(i=1;i<=m;i++)/*从1开始,要不少加1*/
t+=1.0/i;
return t;/*需要返回值*/
}
main()
{int m;
clrscr();
printf("enter 1 integer number:");
scanf("%d",&m);
printf("result is %lf",fun(m));
}
2

#include
#include
void fun(int m,int k)
{int aa[20],i;
for(i=0;m;i++)
{ aa[i]=m%k;
m/=k; }
i--;/*先减去1*/
for(;i>=0;i--)/*条件改下*/
printf("%d",aa[i]); }
main()
{int b,n;
clrscr();
printf("enter a number and a brae");
scanf("%d %d",&n, &b);
fun(n,b);}

回答3:

在第一个程序中的fun(m) 函数里,最后少了一个return(t);
改为:
#include
#include
double fun(int m)
{double t=1.0;
int i;
for(i=2;i<=m;i++)
t+=1.0/i;
return(t);
}
main()
{int m;
clrscr();
printf("enter 1 integer number:");
scanf("%d",&m);
printf("result is %lf",fun(m));
}
第二个程序改为:
#include
#include
void fun(int m,int k)
{
int aa[20],i;
for(i=0;m;i++)
{aa[i]=m%k;
m/=k;
}
for(i-=1;i>=0;i--)
printf("%d",aa[i]);
}
main()
{
int b,n;
clrscr();
printf("enter a number and a brae:");
scanf("%d,%d",&n, &b);
fun(n,b);
}

回答4:

一:i<=m是不是要改成i第二个问题回家再看