【华软C语言实验报告】实验6 循环结构程序设计

一、实验目的:
1、熟悉循环结构的循环控制部分和循环体部分;
2、掌握for语句、while语句、do…while语句的使用,并能相互代替;
3、熟悉累加、分类统计等算法,能根据实际需要构建循环语句;
4、掌握多重循环的使用,能够熟悉应用穷举法、迭代法、打擂台算法等典型算法;
二、实验内容
1、(基础题)用for语句编写程序,计算1+3+5+7+…+99+101的值。程序运行结果如下图所示:

#include <stdio.h>
int main()
{
  int i;
  int sum =0;
  for(i=1;i<=101;i+=2)
  {
    sum = sum + i;
  }
  printf("1+3+5+7...+99+101=%d",sum);
  return 0;
}

【华软C语言实验报告】实验6  循环结构程序设计

2.(基础题)输入10个学生成绩,分别统计成绩在85–100分,60—85分和60分以下各分数段的人数。
(思路:用三个整型变量n0、n1、n2来存放分类统计结果,这三个变量的初值赋为0;用循环来输入成绩,并进行分类统计:使用if…else …嵌套 或 switch语句判断成绩是否属于某一区间,一旦成绩落入某一区间时,该区间的次数就要增加1)。请按照程序运行截图的输入输出样式编写程序。

#include <stdio.h>
int main()
{
    int n1=0,n2=0,n3=0,i,score;
    for(i=1;i<=10;i++)
    {
        printf("请输入第%d个学生成绩:",i);
        scanf("%d",&score); 
        if (!(0<=score && score<=100))
        {
            printf("请输入正确输入学生成绩
");
            return -1;
        }
        if(85<=score && score<=100)n1++;
        else if(60<=score && score<85)n2++;
        else n3++;           
    }
    printf("85~100的人数=%d
",n1);
    printf("60~85的人数=%d
",n2);
    printf("60以下的人数=%d
",n3);
    return 0;
}

【华软C语言实验报告】实验6  循环结构程序设计【华软C语言实验报告】实验6  循环结构程序设计
3、(基础题)已知有式子:xyz+yzz=532, 其中x、y、z为数字,编写程序输出所有满足条件的x、y和z。(提示:穷举法:可以利用三重循环去列举出所有可能组合,x、y、z的值只能在0-9之间)。程序运行效果图:

#include <stdio.h>
int main()
{
    int x,y,z;
    for(x=1;x<9;x++)
        for(y=1;y<9;y++)
            for(z=0;z<9;z++)
    if((x*100+y*10+z)+(y*100+z*10+z)==532)
    printf("x=%d,y=%d,z=%d
",x,y,z);
    return 0;
}

【华软C语言实验报告】实验6  循环结构程序设计
4.(提高题) 输入一批学生成绩,输出其中的最高分、最低分。
思路:
(1)用循环处理。
(2)循环多少次?事先并不知道。解决办法:输入负数或大于100(即成绩不合理)时结束。 即 循环条件:score>=0&&score<=100
(3)用“打擂台”算法可以得到最高分和最低分;
(4)“打擂台”算法思想:先找一个人站在台上(最初擂主),第二个人上去与之比武,获胜者留在擂台上。再上去第三个人,与台上的人(即刚才的得胜者)比武,胜者留在台上,败者*,直到所有的人都比试过后,最后留在擂台上的即是冠军!
(5)请根据运行图中的输入输出样式完善程序。程序运行效果图:

#include <stdio.h>
int main()
{
    int max,min,score;
    max=0;min=100;
    while(1)
    {
        printf("请输入成绩(0~100),其他值结束:");
        scanf("%d",&score);
        if(!(0<=score && score<=100))
            break;
        if(score>max)
            max=score;
        if(score<min)
            min=score;        
    }
    printf("最大值:%d
",max);
    printf("最小值:%d
",min);
    return 0;
}

【华软C语言实验报告】实验6  循环结构程序设计