| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 830 人关注过本帖
标题:学完break 和 continue 实践时,碰到一题
只看楼主 加入收藏
编译中。。
Rank: 7Rank: 7Rank: 7
来 自:中国
等 级:黑侠
帖 子:198
专家分:511
注 册:2011-7-29
结帖率:75%
收藏
已结贴  问题点数:50 回复次数:10 
学完break 和 continue 实践时,碰到一题
先发帖 求答案,散散分。 然后自己 去试一下。


题目如下:输入一批考试分数,用-1作为结束标志,
若输入大于100,则重新输入,然后计算出最高分
、最低分和平均值



网上是有答案的,你们自己编。我也自己编。  

我主要是为了 试试自己行不行,不行的话 该怎么编。
行的话,看看 和你们的有什么差别。
搜索更多相关主题的帖子: 最低 continue 平均值 网上 
2011-08-21 18:02
编译中。。
Rank: 7Rank: 7Rank: 7
来 自:中国
等 级:黑侠
帖 子:198
专家分:511
注 册:2011-7-29
收藏
得分:0 
用 break 和 continue  来写

 当我感到些许疲倦时   便想躺在阳光下,小路旁 . 可这些往往都是奢望..
2011-08-21 18:08
编译中。。
Rank: 7Rank: 7Rank: 7
来 自:中国
等 级:黑侠
帖 子:198
专家分:511
注 册:2011-7-29
收藏
得分:0 
没人??
程序代码:
/*介绍:输入一批考试分数,用-1作为结束标志,
若输入大于100,则重新输入,然后计算出最高分
、最低分和平均值

2011年8月21日17:57:33*/

#include<stdio.h>
main(void)
{
    int vol1,vol2 = 0,vol3 = 0;
    int vol4 = 0,vol6=101;
    double vol5;
   
    printf("请输入考试分数,输入完毕之后,再输入-1 标志结束:");
    

    while(vol1 != -1)
    {
        scanf("%d",&vol1);
       
        if(vol1 <= 100 && vol1 != -1)
       
        vol2 += vol1;
       
        else
        {
        continue;
        }
       
       
       
        if(vol3 <= vol1)
        {
            vol3 = vol1;
        }
        if(vol6 > vol1)
        {
             vol6 = vol1;   
        }
        vol4 += 1;
    }
    vol5 = vol2 / vol4;
    printf("最高分为:%d 最低分为:%d 平均分为%f",vol3,vol6,vol5);
   
}
自己编了一个,感觉好傻逼。  好垃圾。 自己好差。                                                   



大神    求教

 当我感到些许疲倦时   便想躺在阳光下,小路旁 . 可这些往往都是奢望..
2011-08-21 18:44
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:10 
int a[100],i=0;
while(1)
{scanf("%d",&a[i]);
if(a[i]==-1||i>=100)
break;
else if(a[i]>100||a[i]<0)
continue;
else i++;
}
2011-08-21 18:47
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
收藏
得分:10 
程序代码:
#include <stdio.h>

int main(void)
{
    int sum=0,count=0;
    int num[100]={0};
    printf("输入分数:(整数)\n");
    while(scanf("%d",&num[count]))
    {
        if(num[count]==-1)
            break;
        if(num[count]>100)
            continue;
        sum+=num[count++];
    }

    int min,max;
    min=max=num[0];
    for(int i=1;i<count;i++)
        if(num[i]>max)
            max=num[i];
        else if(num[i]<min)
            min=num[i];

    printf("最高分为%d,最低分为%d,平均分为%.2f\n",max,min,(float)sum/count);

    return 0;
}
2011-08-21 18:48
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
收藏
得分:0 
求最大最小值也可以直接在while循环中完成。
2011-08-21 18:50
QQ346957135
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:148
专家分:658
注 册:2011-8-9
收藏
得分:10 
程序代码:
/*介绍:输入一批考试分数,用-1作为结束标志,
若输入大于100,则重新输入,然后计算出最高分
、最低分和平均值

2011年8月21日17:57:33*/

#include<stdio.h>
int main()
{
    float sum=0,mark,Mark[200],max,min;
    int i=0,count;
    while(1)//输入分数
    {
        scanf("%f",&mark);
        if(mark==-1)
        {
            break;
        }
        else if(mark>100)
        {
            continue;
        }
        else
        {
            Mark[i++]=mark;
        }
    }
    count=i;
    min=max=Mark[0];
    for(i=0;i<count;i++)
    {
        if(min>Mark[i])
        {
            min=Mark[i];//找最低分
        }
        if(max<Mark[i])
        {
            max=Mark[i];//找最高分
        }
        sum+=Mark[i];//求和
    }
    printf("最高分:%f\n最低分:%f\n平均分:%f\n",max,min,sum/count);
    return 0;
}

A real warrior never quits.
2011-08-21 19:36
死蜜蜂
Rank: 2
等 级:论坛游民
帖 子:16
专家分:15
注 册:2011-8-16
收藏
得分:10 
#include "stdafx.h"
#define NUM 50

int main(int argc, char* argv[])
{
   int a[NUM],i=0,j,max=0,min=0;
   long sum=0;
   float avge=0;

  do
   {
       scanf("%d",&a[i]);
          if(a[i]>100)
          {printf("Input Error!!");
               i--;
             continue;
          }
          i++;
      if(getchar()=='\n')
      {   printf("-1\n");
          break;
      }
   }while(1);
   
   max=a[0];
   min=a[0];

   for(j=0;j<i;j++)
   {
       max=max>a[j]?max:a[j];
       min=min<a[j]?min:a[j];
       sum+=a[j];
   }
   avge=(float)sum/i;
   printf("The student's maxscore=%d\n",max);
    printf("The student's minscore=%d\n",min);
     printf("The student's avgerscore=%f\n",avge);

    return 0;
}

我不是太理解-1作为结束标志的意思,只是把-1显示出来,作为结束的人机交互提示
2011-08-21 20:29
edwardflee
Rank: 4
等 级:业余侠客
帖 子:145
专家分:234
注 册:2011-7-27
收藏
得分:10 
程序代码:
/*
题目:输入一批考试分数,用-1作为结束标志,若输入大于100,则重新输入,然后计算出最高分、最低分和平均值
要求:用 break 和 continue  来写
时间:2011年8月22日12:15:29
目的:论坛回帖,尝试编程,练习break和continue用法
*/
# include <stdio.h>

int main(void)
{
    float i;
    float min;
    float max;
    float avg;
    float sum=0;
    int n=0;
   
    do
    {
        printf("输入考试成绩,直到输入-1结束\n");
        scanf("%f", &i);
       
        if (i > 100)
            continue;
        if (i == -1)
            break;
       
        sum += i;
        ++n;
       
        if (1==n)
        {
            min = i;
            max = i;
        }
        else if (min >= i)
            min = i;
        else if (max <= i)
            max = i;

    } while (1);
   
    printf("最差成绩为 %f\n",min);
    printf("最好成绩为 %f\n",max);
    avg = sum / n;
    printf("平均成绩为 %f\n",avg);
   
    return 0;
}

/*
在VC++6.0中的输出结果为:
————————————
输入考试成绩,直到输入-1结束
50
输入考试成绩,直到输入-1结束
20
输入考试成绩,直到输入-1结束
30
输入考试成绩,直到输入-1结束
60
输入考试成绩,直到输入-1结束
110
输入考试成绩,直到输入-1结束
90
输入考试成绩,直到输入-1结束
-1
最差成绩为 20.000000
最好成绩为 90.000000
平均成绩为 50.000000
Press any key to continue
————————————
*/

学C的秘诀=每天都来泡论坛
2011-08-22 12:18
xzww1216
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-3-3
收藏
得分:0 
高手 不少
2011-08-27 16:05
快速回复:学完break 和 continue 实践时,碰到一题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019743 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved