C语言的小题目

2024-12-22 17:16:57
推荐回答(5个)
回答1:

这个程序很简单,用递归是把问题复杂化了,不过实现的方法有很多种,只要能实现就行。以下是我的一种方法,已经过编译调试,可运行
算法核心如下:
while
(
i
<
loop
)
{
sum
+=
a
*
pow(
10
,
i
)
+
temp;
temp
+=
a
*
pow(
10
,
i
);
i
++;
}
我想你应该能看懂,就不具体解释了哈
程序源代码如下:
#include
"stdio.h"
#include
"math.h"
int
main()
{
int
a;
/*进行计算的数*/
int
loop;
/*循环次数*/
int
i
=
0;
/*循环起始值*/
double
temp
=
0;
/*过程变量,存储上一次的值*/
double
sum
=
0;
/*总和*/
printf(
"Please
input
two
numbers
form
as:
numerA
numberLOOP\n"
);
scanf(
"%d
%d",
&a
,
&loop
);
while
(
i
<
loop
)
{
sum
+=
a
*
pow(
10
,
i
)
+
temp;
temp
+=
a
*
pow(
10
,
i
);
i
++;
}
printf(
"\nResult
is:
%.0f\n"
,
sum
);
return
0;
}

回答2:

#include

#include

double
digiu(double
a,double
*b)//这题个人觉得用递归比较方便
{
double
i,sum;
i=0;sum=0;
while(i<*b)
{
sum=sum+a*pow(10,
i);//pow原形double
pow(低数,指数
);,pow10()在vc里没有,在TC里就不知道了
i++;
}
*b=*b-1;
if(*b!=0)
return
sum+digiu(a,b);
else
return
sum;
}
void
main()
{
double
a,b,i=1,sum=0;
scanf("%lf,%lf",&a,&b);//a为相同的数,b为多少个数相加,输入时ab间最好有,号,像这样a,b
if(b==0)
printf("Error!!\n");
else
printf("%lf\n",digiu(a,&b));
}

回答3:

#include
#define N 4
#define n 6
void main()
{
int i,j;int Avg=0,sum=0;
int a[N][n];
for(i=0;i{
printf("请输入第%d个生的三科成绩\n",i+1);
for(j=1;j{
scanf("%d",&a[i][j]);
sum=sum+a[i][j];
}
}
Avg=sum/((n-3)*N);
printf("%d",Avg);
for(i=0;ia[i][0]=i+1;
sum=0;
for(i=0;i{
for(j=1;j sum=sum+a[i][j];
a[i][n-2]=sum/(n-3);
sum=0;
if(a[i][n-2]>Avg)
a[i][n-1]='y';
else
a[i][n-1]='n';
}

printf("no mat phy chm avg y/n\n");
for(i=0;i{
for(j=0;j if(j==n-1)
printf("%c",a[i][j]);
else
printf("%-3d ",a[i][j]);
printf("\n");
}
}

回答4:

#include
"stdio.h"
#include
"math.h"
void
main()
{
long
int
a,b,i,n=0;
int
sum=0;
printf("Input
the
number:");
scanf("%ld",&a);
for(i=0;i<6;i++){
if(a/pow(10,i)>=1){
n++;
}
}
for(i=n-1;i>=0;i--){
b=a/pow(10,i);
a=a-b*pow(10,i);
sum+=b;
}
printf("%d\n",sum);
getch();
}
这样就实现了
,试试吧。以前我也用过这个方法。

回答5:

pow是用错了
但是整个程序运行也有问题把,pow(a,b),a是底数,b是指数