首页 > 编程语言 >C语言程序设计 练习题参考答案 第三章 (3) 循环结构

C语言程序设计 练习题参考答案 第三章 (3) 循环结构

时间:2023-11-08 11:06:42浏览次数:36  
标签:练习题 600 void C语言 最大公约数 余数 main 285 参考答案

/*  3.9 求派的值*/

#include "stdio.h"

void main()

{

    int n;

    double sum=0;

    for(n=1;n<=10000;n++)

    {

     sum=sum+1.0/(4*n-3)-1.0/(4*n-1);

    }

    printf("pi的值为%lf\n",4*sum);

}/*  3.9 求派的值*/ 
#include<stdio.h>

void main()

{

 double i=1, s=1.0, t=1.0;

 do

 {

  t=t*(-1)*((2*i-1)/(2*i+1));

  s=s+t;

  i++;

 }while (i<=10000000);

 printf("pi=%.8lf\n",s*4);

}

 /*  3.10 求最大公约数和最小公倍数  辗转相除法:见下面的介绍。  gcd(m,n)=gcd(n,r)   */ #include "stdio.h"

void main()

{

    int  m,n,r,original_m,original_n;

    printf("输入m和n,示例 6 8\n");

    scanf("%d%d",&m,&n);

    original_m=m;

    original_n=n;

    r=m%n;

    while(r!=0)

    {

     m=n;

     n=r;

     r=m%n;

    }

    printf("最大公约数为%d,最小公倍数为%d\n",n,original_m*original_n/n);

}


辗转相除法求两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。
例如求1515和600的最大公约数,
第一次:用600除1515,商2余315;
第二次:用315除600,商1余285;
第三次:用285除315,商1余30;
四次:用30除285,商9余15;
第五次:用15除30,商2余0。
1515和600的最大公约数是15。

辗转相除法是求两个数的最大公约数的方法。如果求几个数的最大公约数,可以先求两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数。这样依次下去,直到最后一个数为止。最后所得的一个最大公约数,就是所求的几个数的最大公约数。

/* 3.11  Sn=a+aa+aaa+...+aaa...a  */

#include <stdio.h>void main( )

{

   int a,n,i;

   long sum=0, item;

   printf("请输入整数n(n>=1且n<=9)\n");

   scanf("%d",&n);

   printf("请输入一位数字a(1-9)\n");

   scanf("%d",&a);

   item=a;

   sum=a;

   for(i=1;i<n;i++ )

   {

     item=item*10+a;

     sum=sum+item;

   }

   printf("sum=%ld\n",sum);

} 
/* 3.12  分数序列求和,前20项。 2/1+3/2+5/3+8/5+......  */

#include <stdio.h>void main( )

{

   int i;

   float sum=0, item,fenzi=2,fenmu=1,jiufenmu;   

   for(i=1;i<=20;i++ )

   { 

     item=fenzi/fenmu; 

     jiufenmu=fenmu;

     printf("%f/%f ;\n",fenzi,fenmu);

     sum=sum+item;

     fenmu=fenzi; 

     fenzi=fenzi+jiufenmu; 

   }

   printf("sum=%f\n",sum);

} /*   3.13  2-999之间所有同构数 例.... 5×5=25 */
#include "stdio.h"

void main()

{

   int i;

   printf("2-999之间所有同构数:");

   for(i=2;i<=999;i++)

   {

    if(i>=2 && i<=9)

     if(i*i%10 == i)

       printf("%4d",i);

    if(i>=10 && i<=99)

     if(i*i%100 == i)

       printf("%4d",i);

    if(i>=100 && i<=999)

     if(i*i%1000 == i)

       printf("%4d",i);

   }}
 /*   3.14  输入10个数字,输出所有负数,及负数的和(要求不用数组)   */
#include "stdio.h"

#include "math.h"

void main()

{

   int i;

   float x,sum=0;

   printf("\n请输入十个数字,并按回车键\n");

   for(i=0;i<=9;i++)

   {

     scanf("%f",&x);

     if(x<0)

      {

       printf("%f",x);

       sum=sum+x;

      }   }

   printf("\n所有负数之和为:%f",sum);}
 /*  例 3.15  任意输入n个数,输出其中最大数和最小数,并输出他们在序列中的位置*/
#include "stdio.h"

#include "math.h"

void main()

{

   int i,n,max_location=1,min_location=1;

   float x,max=0,min=0;

   printf("你想输入几个数字(输入一个整数后按回车)");

   scanf("%d",&n);

   printf("\n请输入%d个数字,并按回车键\n",n);

   scanf("%f",&x);

   max=x;

   min=x;

   for(i=2;i<=n;i++)

   {

     scanf("%f",&x);

     if(x>max)

      {

       max=x;

       max_location=i;

      }

     if(x<min)

      {

       min=x;

       min_location=i;

      }   }

   printf("\n最大数为%f,位置为:%d\n",max,max_location);

   printf("\n最小数为%f,位置为:%d\n",min,min_location);

}


标签:练习题,600,void,C语言,最大公约数,余数,main,285,参考答案
From: https://blog.51cto.com/emanlee/8246552

相关文章

  • C语言程序设计 练习题参考答案 第六章 (1) 结构体 综合练习
    /*6.910个学生,每个学生3门课程成绩,求平均分及前五名*/#include"stdio.h"#include"conio.h"#defineN6structstudent/*定义结构体数据类型*/{intnum;charname[10];intscore[3];/*不能使用float*/floataverage;};voidsort(structstudentstu......
  • C语言程序设计 要求掌握的例题和习题
    以下的例题和习题要求掌握。 第1章  概述              2学时 第2章基本数据类型、运算符及表达式        2学时习题:2.7, 2.8, 2.11, 2.12, 2.13, 2.14, 2.15第3章 基本结构程序设计                       8学时例题: ......
  • C语言程序设计 随机函数的使用-随机点名做习题
    /*---------------------------------------随机点名做习题Author:emanleeDate:2008-04-24---------------------------------------*/#include"stdio.h"#include"conio.h"#include"time.h"voidmain(){intcount=4......
  • C语言程序设计 选择排序简介
    选择排序选择排序是通过每一趟排序过程中从待排序记录中选择出关键字最小(大)的记录,将其依次放在数据表的最前或最后端的方法来实现整个数据表的有序排列。本节将介绍选择排序方法中最简单且最常用的简单选择排序。选择排序基本思想 第一趟排序在所有待排序的n个记录中选出关键字最......
  • C语言程序设计 冒泡排序简介
    冒泡排序基本思想将n个记录看作按纵向排列,每趟排序时自下至上对每对相邻记录进行比较,若次序不符合要求(逆序)就交换。每趟排序结束时都能使排序范围内关键字最小的记录象一个气泡一样升到表上端的对应位置,整个排序过程共进行n-1趟,依次将关键字最小、次小、第三小…的各个记录“冒到......
  • C语言程序设计 练习题参考答案 第三章 (2) 选择结构
    /*3.6求3个数中最大值。类似于例1.2*/#include<stdio.h>voidmain(){inta,b,c,max;printf("\n请输入3个整数,整数以空格分隔:\n");scanf("%d%d%d",&a,&b,&c);if(a>b)max=a;elsemax=b;if(max......
  • C语言程序设计 求阶乘递归函数调用示例
    ......
  • C语言程序设计 试卷试题结构
    每套试卷结构如下:、填空(10题,2分/题)20分、阅读程序写运行结果(7小题,5分/题)35分、补充程序题(8空,2分/空,补充函数或主程序1题,4分)20分、程序改错题(错误点5个)10分、编程题(2小题)15分(5+10)每套试卷要求覆盖的知识点(三大基本程序结构、函数、数组、指针、文件、结构体)......
  • C语言程序设计 练习题参考答案 第七章 (1) 指针与变量 指针与数组
    /*7.13输入三个整数,从小到大排序,(指针,函数实现交换)*/#include"stdio.h"#include"conio.h"voidswap(int*a,int*b,int*c);voidmain(){intx,y,z;printf("请输入三个整数,示例123\n");scanf("%d%d%d",&x,&y,&am......
  • C语言程序设计 第七章 指针与结构体 指针数组 例题
    /*---------------------------------------例7.19输入N个学生学号,姓名,成绩,并按成绩降序排列,并输出p指向结构体变量s1,则s1.成员名,(*p).成员名,p->成员名等价。本题采用自定义函数较为合适Author:emanleeDate:2008-05-12----------------......