首页 > 代码库 > 附加题3

附加题3

1.求技术和。输入一批正整数(以零或负数为结束标志),求其中奇数和。

 #include<stdio.h>
 int main()
 {
     int x,n;
     printf("请输入正整数x;");
     scanf("%d",&x);
     n=0;
     while(x>0)
     {
         //if(x/2!=0)
        //if    (x%2!=0)
        //{
        //    n=n+x;
        //    printf("%d\n",x);
        //printf("请输入正整数x;");
        //scanf("%d",&x);     
          //}
          if    (x%2!=0)
             n=n+x;
              printf("请输入正整数x;");
             scanf("%d",&x);
     }
        printf("%d",n);    
     return 0;
 }

 

技术分享

 

 

2.展开式求和。驶入一个实数x,计算并输出下式的和,知道最后一项的绝对值小于0.00001,计算结果保留两位小数。要求定义和调用函数fact(n)计算n的阶乘。

s=x+x^2/2!+x^3/3!+......

#include<stdio.h>
#include<math.h> 
double fact(int n);                                        
int main()
{
    int n,i;
    double s,x;
    printf("请输入实数x:");
    scanf("%lf",&x);
    n=1; 
    s=0;
    i=1;
    while(pow(x,i)/fact(n)>=0.00001)
    {
        s=s+pow(x,i)/fact(n);
        i++;
        n++;
    }
    printf("%.2lf",s);
    return 0;
}


double fact (int n)
{
    int j;
    double product;
    product=1;
    for(j=1;j<=n;j++)
    {
        product=product*j;
    }
    return product;
}

技术分享

 

 

 

 

 

 

 

3.求序列和。输入一个正整数你,输出2/1+3/1+5/3+8/5+.....的前n向和,保留两位小数。该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

#include<stdio.h>
int main()
{
    int n,i;
    double s,x,y,z;
    s=0;
    x=2;
    y=1;
    printf("输入一个正整数n:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        s=s+x/y;
        z=x;
        x=x+y;
        y=z;
    } 
    printf("%.2lf",s);
    return 0;
} 

 

技术分享

 

 

 

4.求数列和。输入两个正整数a和n,求a+aa+aaa+aaaa......之和。

 

 

#include<stdio.h>
#include<math.h>
int main()
{
    int n,i,j;
    double a,b,s;
    printf("输入一个正整数a:");
    scanf("%lf",&a);
    printf("输入一个正整数n:");
    scanf("%d",&n);
    i=1;
    s=0;
    b=0;
    j=0;
    for(i=1;i<=n;i++)
    {
        for(j=0;j<i;j++)
        {
            
            b=b+a*pow(10,j);
            printf("中间变量%lf\n",b);
        }
        s=s+b;
        b=0;
        printf("%.0lf\n",s);
    }
    return 0;
}

技术分享

 

 

 

 

 

 

 

 

5.换硬币。将一笔零钱(大于八分,小于一元,精确到分)换成5分、2分、1分的硬币,每种至少一枚。输入金额请问有几种换法?针对每种换法,输出各种面额硬币的数量和硬币的总数量。

#include<stdio.h>
int main()
{
    int x;
    printf("请输入金额x分:");
    scanf("%d",&x);
    int f,t,w,n=0,s;
    for(f=1;f<=2;f++)
        for(t=1;t<=5;t++)
            for(w=1;w<=10;w++)
                if(5*f+2*t+w==x)
                {
                    n++;
                    s=f+t+w;
                    printf("第%d种情况为:\n",n);
                    printf("总共有%d枚\n",s);
                    printf("五分的有%d\n枚",f);
                    printf("两分的有%d\n枚",t);
                    printf("一分的有%d\n枚",w);
                    
                }
                
return 0;
} 

技术分享

 

 

 

知识点:

1.do-while无条件运算一次,县运算后判断;while先判断后运算

2.for循环的不同形式

3.·潜逃循环

遇到的问题与解决方法

1.因为基础太次所以经常会出现定义的变量没有赋值,for(   ;    ;    );这种低级错误,通过不断询问老师,老师细心地的引导,多次教材的例题、老师帮助编写的程序的对比发现并改正

心得体会

经过这几天的不断反看教材与老师的引导渐渐发现了编程时出现问题后检查的方法,并且很好的加深了我对基础知识的记忆

附加题3