rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » C/C++

c编程67

P106 6 循环控制参考答案

编程题

1. 参考程序:

#include <stdio.h>

main( )

      float  max, min, score, average;

      int    i,j;

    printf("Please input score:");

    scanf("%f", &score);

      while(score<0)

      {

           printf("Please input score:");

        scanf("%f", &score);

      }

      max = min = average = score;

      for ( i=1,j=1; ; i++)

     {

           printf("Please input score:");

         scanf("%f", &score);

           if(score>=0)

           {

                 if (score < min ) min =score;

                 if (score > max ) max =score;

                 average+=score;

                 j++;

           }

           else break;

      }

      average /= j;

      printf("max=%g,min=%g,average=%g\n", max, min, average);

}   

2.最大公约数和最小公倍数参考程序:

/* 此程序的功能是通过辗转相除法求两数的最大公约数,然后再求最小公倍数。 */

#include<stdio.h>

main()

      int number1,number2, m,n,w;

      printf("请输入两个正整数:");

      scanf("%d,%d",&number1,&number2);

      if(number1<number2)

      {

           w=number1;

        number1=number2;

        number2=w;

      }

      m=number1;

      n=number2;

      while(n)

      {

           w=m%n;

           m=n;

           n=w;

      }

      printf("最大公约数为:%d\n",m);

      printf("最小公倍数为:%d\n",number1*number2/m);

3.韩信点兵参考程序:

#include<stdio.h>

main()

      int m;

      for(m=1;;m++)

      {

           if(m%3==1&&m%5==2&&m%7==4&&m%13==6)

                 break;

      }

      printf("韩信士兵数最少为:%d\n",m);

4.投掷硬币参考程序:

#include<stdio.h>

#include<math.h>

main()

      int m=0,n=0,i;

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

      {

           if(rand()%2==0)   /*rand()函数返回随机整数*/

                 m++;        /*m统计0面出现的次数,n统计1面出现的次数*/

           else n++;

      }

      printf("%f,%f\n",m/1000.0,n/1000.0);   /*m和n分别除以投掷的次数即为概率*/

P115 7 数组参考答案

编程题

1. 参考程序:

#include<stdio.h>

main()

    float a[30],sum=0,ave;

    int n=0,i,k=0;

    printf("please input score:");

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

    {

        scanf("%f",&a[i]);

        if(a[i]<0)

         break;

        n++;

    }

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

        sum=sum+a[i];              

    ave=sum/n;

    printf("pinjunfenwei:%f\n",ave);

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

        if(a[i]>ave)

          k++;

    printf("renshuwei:%d\n",k);

2.数组逆序排列参考程序:

#include <stdio.h>

#define N  10

main( )

{

      int  a[N], temp, i;

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

      {    printf(“Please input NO %d:”, i+1);

           scanf(“%d”, &a[i]);

      }

      for (i = 0 ; i <= N/2 -1; i++)

{  

temp = a[i];

a[i]=a[N-i-1];

a[N-i-1]=temp;

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

      printf(“%3d”, a[i]);    

3.打印杨辉三角前十行参考程序:

#include <stdio.h>

#define N  10

main( )

      int  a[N][N];

      int  i, j;

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

      {

           a[i][i] = 1;

           a[i][0] = 1;

      }

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

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

           a[i][j]=a[i-1][j-1]+a[i-1][j];

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

      {

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

            printf("%5d", a[i][j]);

              printf("\n");

     }

顶一下
(0)
踩一下
(0)