新手作业~~求教~~

时间:2023-02-22 10:40:49
1.函数
题目:写一个函数sum(n), 返回值类型为double。对分数序列3/2,  9/4,12/8,  15/16, ……(请自行分析该序列的特点)进行求和。
例如sum(1)=3/2
     sum(2)=3/2+9/4
     sum(3)= 3/2+9/4+12/8

打印sum(20)和sum(30).

2.递归
题目:写一个递归函数printNum(n)打印:
printNum(1)
1
printNum(2)
2  2
1
printNum(3)
3   3   3
2   2
1
printNum(4)
4   4   4   4
3   3   3
2   2
1

耗了一上午了,还是一点没头绪...T T...求高手指教!!!

8 个解决方案

#1


第一题

#include<stdio.h>
#include<math.h>
double  sum(int n)
{
double num=0;
int  i;
for(i=1;i<=n;i++)
{
if(i==1)
{
num=(double)3/2;
}
else
{
num+=3*(i+1)/pow(2,i);
}
}
return  num;
}
main()
{
int i;
double  result;
scanf("%d",&i);
result=sum(i);
printf("%f",result);

}

#2


第二题

#include<stdio.h>
void printNumber(int n)
{
int i;
if(n>0)
{
for(i=0;i<n;i++)
{
printf("%d ",n);
}
printf("\n");
printNumber(n-1);
}
else
return;
}

main()
{
int i;
scanf("%d",&i);
printNumber(i);
}

#3


1.#include<math.h>
 for(i=0;i<n;i++)
   sum+=(double)(3*(i+1))/pow(2,i+1);
2.void printNum(n)
{
   if(n==0)
     return;
   for(i=0;i<n;i++)
      printf("%d ",n);
   printNum(n-1);
}

#4


2.void printNum(n)
{
   if(n==0)
     return;
   else
   {
   for(i=0;i<n;i++)
      printf("%d ",n);
   printf("\n");
   printNum(n-1);
  }
}

#5


新手作业~~求教~~好强!!!但为什么总是生成不成功???

#6


引用 5 楼 Miranda1225 的回复:
好强!!!但为什么总是生成不成功???

 for(i=1;i<=n;i++)
    {
        if(i==1)
        {
            num=(double)3/2;
        }
        else
        {
            num+=3*(i+1)/pow(2,i);
        }
    }错了
改成 for(i=0;i<n;i++)
   sum+=(double)(3*(i+1))/pow(2,i+1);

#7


好呢吧~~~谢谢大神~~~~~~ 新手作业~~求教~~

#8


引用 6 楼 zhuankeshumo 的回复:
引用 5 楼 Miranda1225 的回复:好强!!!但为什么总是生成不成功???
 for(i=1;i<=n;i++)
    {
        if(i==1)
        {
            num=(double)3/2;
        }
        else
        {
            num+=3*(i……
还想请教大神,我是大一的刚刚接触编程,上课老师讲的和书上写的都大致听得懂看得懂,但要我自己写起来还是无从下手,肿么办呢~~~

#1


第一题

#include<stdio.h>
#include<math.h>
double  sum(int n)
{
double num=0;
int  i;
for(i=1;i<=n;i++)
{
if(i==1)
{
num=(double)3/2;
}
else
{
num+=3*(i+1)/pow(2,i);
}
}
return  num;
}
main()
{
int i;
double  result;
scanf("%d",&i);
result=sum(i);
printf("%f",result);

}

#2


第二题

#include<stdio.h>
void printNumber(int n)
{
int i;
if(n>0)
{
for(i=0;i<n;i++)
{
printf("%d ",n);
}
printf("\n");
printNumber(n-1);
}
else
return;
}

main()
{
int i;
scanf("%d",&i);
printNumber(i);
}

#3


1.#include<math.h>
 for(i=0;i<n;i++)
   sum+=(double)(3*(i+1))/pow(2,i+1);
2.void printNum(n)
{
   if(n==0)
     return;
   for(i=0;i<n;i++)
      printf("%d ",n);
   printNum(n-1);
}

#4


2.void printNum(n)
{
   if(n==0)
     return;
   else
   {
   for(i=0;i<n;i++)
      printf("%d ",n);
   printf("\n");
   printNum(n-1);
  }
}

#5


新手作业~~求教~~好强!!!但为什么总是生成不成功???

#6


引用 5 楼 Miranda1225 的回复:
好强!!!但为什么总是生成不成功???

 for(i=1;i<=n;i++)
    {
        if(i==1)
        {
            num=(double)3/2;
        }
        else
        {
            num+=3*(i+1)/pow(2,i);
        }
    }错了
改成 for(i=0;i<n;i++)
   sum+=(double)(3*(i+1))/pow(2,i+1);

#7


好呢吧~~~谢谢大神~~~~~~ 新手作业~~求教~~

#8


引用 6 楼 zhuankeshumo 的回复:
引用 5 楼 Miranda1225 的回复:好强!!!但为什么总是生成不成功???
 for(i=1;i<=n;i++)
    {
        if(i==1)
        {
            num=(double)3/2;
        }
        else
        {
            num+=3*(i……
还想请教大神,我是大一的刚刚接触编程,上课老师讲的和书上写的都大致听得懂看得懂,但要我自己写起来还是无从下手,肿么办呢~~~