| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3292 人关注过本帖
标题:从键盘输入一组整数,找出最大的整数,当输入的整数为0时结束。例如,输入1 ...
只看楼主 加入收藏
固执的香菇
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-9-23
结帖率:0
收藏
已结贴  问题点数:10 回复次数:7 
从键盘输入一组整数,找出最大的整数,当输入的整数为0时结束。例如,输入1 2 3 4 5 0时,最大的数为5。
各位大神帮我看看哪有问题。
#include<stdio.h>
void main()
{
 int a[10],max,i=0,j;
while(a[i])
{ scanf("%d\n",&a[i]);
   i++;
}
max=a[0];
for(j=0;j<i;j++)
 if(a[j]>max)
max=a[j];
printf("The max is:%d\n",max);
}



搜索更多相关主题的帖子: 最大的 键盘 
2016-10-14 16:22
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:3 
写代码要规规矩矩,干干净净

程序代码:
#include <stdio.h>
#include <limits.h>

int main( void )
{
    int mv = INT_MIN;
    for( int v; scanf("%d",&v)==1 && v!=0; )
    {
        if( v > mv )
            mv = v;
    }
    printf( "The max value is: %d\n", mv );

    return 0;
}

我怀疑题目要求是输入整数,如果这样的话,int mv = INT_MIN; 就改为 int mv = 0;
2016-10-14 16:30
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:3 
#include<stdio.h>
 void main()
 {
  int a[10],max,i=0,j;
 while(a[i])  //在这一步之前a[i]没有值所以在运行这句代码时 a[i]会被随机分配一个值 ,而while下面的代码最后i++ a[i]又没有值
 { scanf("%d\n",&a[i]);
    i++;
 }
 max=a[0];
 for(j=0;j<i;j++){ //我想你的本意是输出一次 The max is .., 要加大括号
  if(a[j]>max)
 max=a[j];}
 printf("The max is:%d\n",max);
 }

改了你的代码
#include<stdio.h>
main()
{
  int a[10],max,i=0,j;
  for(i=0;i<10;i++)  //逐一输入十个数
  {
  scanf("%d",&a[i]);
  }
   
   max=a[0];      
   for(j=0;j<i;j++)
   {
   if(a[j]>max)  //循环比较 大的数赋给max
   max=a[j];
   }
 
 printf("The max is:%d\n",max);
}

早知做人那么辛苦!  当初不应该下凡
2016-10-14 17:24
固执的香菇
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-9-23
收藏
得分:0 
回复 3楼 炎天
好的,谢谢,但是这个改过程序的没有体现输入的整数为0时结束啊?
2016-10-14 18:37
固执的香菇
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-9-23
收藏
得分:0 
回复 2楼 rjsp
好的,谢谢,就是没太看懂
2016-10-14 18:38
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:3 
#include <stdio.h>
#include <limits.h>

int main( void )
 {
     int mv = INT_MIN;  //INT_MIN表示int类的最小值
     for( int v; scanf("%d",&v)==1 && v!=0; )//scanf("%d",&v)==1表示输入的数为整型
     {
         if( v > mv )
             mv = v;
     }
     printf( "The max value is: %d\n", mv );

     return 0;
 }
用一个循环处理,代码显得比较简洁。
2016-10-14 18:45
夕雾恂
Rank: 2
等 级:论坛游民
帖 子:22
专家分:16
注 册:2016-6-18
收藏
得分:0 
回复 6楼 ehszt
for( int v; scanf("%d",&v)==1 && v!=0; )//scanf("%d",&v)==1表示输入的数为整型
可以麻烦大神解释一下这句吗?
2016-10-14 20:35
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
回复 7楼 夕雾恂
以下是引用夕雾恂在2016-10-14 20:35:32的发言:

for( int v; scanf("%d",&v)==1 && v!=0; )//scanf("%d",&v)==1表示输入的数为整型
可以麻烦大神解释一下这句吗?

这句的意思是说:定义一个整型变量v并输入v的值,如果输入的数为整型并且不等于0就继续循环。
2016-10-14 21:12
快速回复:从键盘输入一组整数,找出最大的整数,当输入的整数为0时结束。例如, ...
数据加载中...
 
   



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

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