实验五 循环结构程序设计
一、实验目的
(1)掌握使用while语句,do-while语句和for语句实现循环的方法。
(2)掌握在循环结构中使用break与continue语句的方法。
(3)掌握多重循环的使用方法。
二、实验步骤、数据记录及处理
(1)编写程序输出半径为1到15的圆的面积,若面积在30到100之间则予以输出,否则,不予输出。
程序代码:#include<stdio.h>
int main()
{
    int i;
    float area;
    for(i=1;i<=15;i++)
    {
        area=3.14*i*i;
        if(area<30)  continue;
        else if(area>100)  break;
            printf("半径为%d的圆的面积为%6.2f\n",i,area);
    }
    return 0;
}
运行结果:
(2)输入一个正整数x(可以是1-9位的正整数),将其转换为逆序正整数y输出,如输入x的值为3456,则输出y的值6543。
程序代码:#include<stdio.h>
int main()
{
    int num,temp,i=0;
    printf("请输入一个数字:");
    scanf("%d",&num);
    while(num>0)
    {
      temp=num%10;
          ++i;
      printf("%d",temp);
      num=num/10;
    }
  printf("\n这个数是%d位数",i);
    return 0;
}
运行结果:
(3)编写程序,分行输出斐波那契Fibonacci数列的前20项(每行5个数)
说明:斐波那契序列:1,1,2,3,5,8,13,21,……
题目扩展(选做):求Fibonacci数列中小于t的最大的一个数,其中t由键盘输入。例如:输入t=1000时 ,则输出987。
程序代码:#include <stdio.h>
void  main()
{
    int i,a[20];
    a[0]=1;
    a[1]=1;
    for(i=2;i<20;i++)
      a[i]=a[i-1]+a[i-2];
      i=0;
    while(i<20)
    {
      printf("%d\t",a[i++]);
      if(i%5 == 0) 
          printf("\n");
    }
}
运行结果:
程序while语句流程图代码(4)编写程序,输出“九九乘法口诀表”。
题目扩展(选做):输出如下图案
程序代码:#include<stdio.h>
int main()
{
    int i,j;
    for(i=1;i<10;i++)
    {
        for(j=1;j<=i;j++)
            printf(" %d*%d=%2d",i,j,i*j);
        putchar('\n');
    }
    return 0;
}
运行结果:
(5)编写程序,分行输出100~200之间所有的素数(每行5个数)
题目扩展(选做):输入一个偶数,为此偶数寻两个素数,这两个素数之和等于该偶数。例如:24=11+13。
程序代码:#include<stdio.h>
#include<math.h>
int main()
{
  int i,j;
  int k=0;
  int f;
    for(i=100,k=0;i<=200;i++)
    {
      f=1;
      for(j=2;j<i/2;j++)
      {
        if(i%j==0)
        {f=0;break;}
      }
      if(f==1)
      {
        k++;
        printf("%d ",i);
    if(k%5==0)
    printf("\n");
      }
    }
}
运行结果:
(6)有两个红球、三个黄球、四个白球,任意取五个球,其中必须有一个黄球,编程输出所有可能的方案。
程序代码:#include<stdio.h>
#include<math.h>
int main()
{
  int red,yellow,white;
  for(red = 1;red < 3;red++)
    for(yellow = 0;yellow < 4-red;yellow++)
    {
        white = 4-red-yellow;
        printf("红球个数:%d 黄球个数:%d 白球个数:%d\n",red,yellow,white);
    }
  return 0;
}
运行结果:
(7)编写程序求解sn=a+aa+…+a…a,其中a是1-9中的一个数字。n为一正整数,a和n均从键盘输入。例如,输入n为4,a为2,则sn=2+22+222+2222。
程序代码:#include<stdio.h>
int main()
{
int a=0,n=0,i=0,num=0,sum=0;
    scanf("%d%d",&a,&n);
    1<=a&&a<=9;
    for(i=0;i<n;++i)
    {
        num=num*10+a;
        sum+=num;
    }
    printf("%d\n",sum);
    return 0;
}
运行结果:
(8)反复从键盘输入若干字符(输入换行符结束),统计其中数字字符的个数。例如,输入"ABC:z=x*50+y/24-6.125",则输出8。
程序代码:#include <stdio.h>
int main(){
    int number=0,c;
    while((c= getchar())!='\n')
    {
        if(c>='0'&&c<='9')
            number++;
    }
    printf("数字字符的个数为:%d\n",number);
    return 0 ;
}
运行结果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。