| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 717 人关注过本帖
标题:新手求教?请问while放置的位置对吗?为什么输入负数程序不停止?
只看楼主 加入收藏
wu2782641803
Rank: 2
等 级:论坛游民
帖 子:65
专家分:46
注 册:2013-10-28
结帖率:88.24%
收藏
已结贴  问题点数:20 回复次数:7 
新手求教?请问while放置的位置对吗?为什么输入负数程序不停止?
编程实现:从键盘输入若干个学生的成绩,以负数作为结束标志,比较学生成绩求出最高分和最低分,并且输出最高分和最低分。
提示:
①定义一个相对而言足够大的数组来存放学生成绩。例如,可以定义数组长度为100。
②建议使用while循环语句。
#include <stdio.h>
int main()
{
   int i,a[100],t,max,min;
   printf("请输入一百个数:");
       for(i=0;;i++)
           scanf("%d",&a[i]);
       while(a[i]<0)
         break;
       max=a[0];
       min=a[0];
      t=i;
       for(i=0;i<t;i++)
       {if(max<a[i])
               max=a[i];
        if(min>a[i])
               min=a[i];
       }
    printf("%d,%d",max,min);
 return 0;
}
搜索更多相关主题的帖子: include 键盘 
2013-11-21 22:08
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:2 
放错了,所以不停止

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-11-22 06:50
wu2782641803
Rank: 2
等 级:论坛游民
帖 子:65
专家分:46
注 册:2013-10-28
收藏
得分:0 
我问过老师了   她说是对的啊 !  请问我该放在那里?
2013-11-22 17:56
积木10086
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2013-11-22
收藏
得分:0 
while应该放在for循环里边,菜鸟一枚,仅代表个人观点,
2013-11-22 20:54
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
以下是引用wu2782641803在2013-11-22 17:56:29的发言:

我问过老师了   她说是对的啊 !  请问我该放在那里?

那你们老师还真是粗心啊...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-11-23 07:41
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
收藏
得分:0 
你的第一个for循环是个死循环;;
你可以把while循环用大括号括起来,比如
for(int i=0;;i++)
{
   scanf("%d",&a[i]);
   while(a[i]<0)//把while改成if就行
   break;
}
这样修改当输入负数也不能跳出for循环,,,你把while改成if就行了,,,break语句只能跳出当前的循环;
不能同时跳出两个循环,,你自己好好看看break语句方面的知识,你可能对它了解还不够

低调的卓越.........
2013-11-23 14:01
kevin_01
Rank: 2
等 级:论坛游民
帖 子:36
专家分:83
注 册:2013-11-23
收藏
得分:18 
这样改,当输入负数后,再回车就好:
#include <stdio.h>
int main()
{
   int i,a[100],t,max,min;
   int k=1;
   printf("请输入一百个数:");

    while(k>0)
    {
        for(i=0;;i++)
        {
            scanf("%d",&a[i]);
            if(a[i]<0)
                break;
        }
        k=a[i];

    }

    max=a[0];
    min=a[0];
    t=i;

    for(i=0;i<t;i++)
    {
        if(max<a[i])
               max=a[i];
        if(min>a[i])
               min=a[i];
     }

    printf("%d,%d",max,min);

    return 0;
}

Hello  World !
2013-11-23 16:30
bigstupidboy
Rank: 2
等 级:论坛游民
帖 子:10
专家分:18
注 册:2013-11-18
收藏
得分:0 
#include <stdio.h>
int main()
{
   int i,t,max,min;
int a[100]= { 0 };
   printf("请输入一百个数:");
       for(i=0;i<100;i++)
         scanf("%d",a[i]);
              
       while(a[i]<0)
         break;
       max=a[0];
       min=a[0];
      t=i;
       for(i=0;i<t;i++)
       {if(max<a[i])
               max=a[i];
        if(min>a[i])
               min=a[i];
       }
    printf("%d,%d",max,min);
return 0;
}   


我试了一下  在我的vc6.0上没报错    你是一下吧  加油
2013-11-23 17:04
快速回复:新手求教?请问while放置的位置对吗?为什么输入负数程序不停止?
数据加载中...
 
   



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

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