| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1175 人关注过本帖
标题:[求助]找最大值的问题
只看楼主 加入收藏
lucy198352
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-9-20
收藏
 问题点数:0 回复次数:9 
[求助]找最大值的问题

要求找最大值,而且程序只处理奇数。
#include<stdio.h>

int main(void)
{
int cnt = 0, n;
int max , x;


printf("The maximum value will be computed.\n");
printf("How many values do you want to enter ?\n");
scanf("%d",&n);
while(n <= 0 ){
printf("\nEEror: Positive integer reguired.\n\n");
printf("How many numbers do you wish to enter?");
scanf("%d",&n);
}
if(n == 1)
printf("\nEnter %d real number:\n",n);
else
printf("\nEnter %d real numbers:\n",n);
scanf("%d",&x);
while(x % 2 == 0){ /*integers should be odd numbers.*/
printf("please input odd numbers!\n");
printf("Input integers:\n");
scanf("%d",&x);
}
max = x;
while(++cnt < n){
scanf("%d",&x);
if(max < x)
max = x;
}
printf("\nMaximum value : %d\n",max);
getch();
return 0;
}
程序运行时,如果开始输入的第一个数字是偶数,可以显示出”please input odd numbers!“;一旦输入奇数以后,再输入偶数,就不再受x % 2 == 0的限制。
例如运行时:

The maximum value will be computed.
How many values do you want to enter ?
3
Enter 3 real numbers:
4
please input odd numbers!
Input integers:
3
6
8
Maximum value : 8

请帮忙修改程序。谢谢!

[此贴子已经被作者于2006-11-14 12:35:50编辑过]

搜索更多相关主题的帖子: 最大值 
2006-11-14 12:29
slowlybear
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-10-18
收藏
得分:0 
我手边没有C,不能试一下~呵呵,我也很菜。至于你说的 “如果开始输入的第一个数字是偶数,可以显示出”please input odd numbers!“;一旦输入奇数以后,再输入偶数,就不再受x % 2 == 0的限制” 应该是这一块:
scanf("%d",&x);
while(x % 2 == 0){ /*integers should be odd numbers.*/
printf("please input odd numbers!\n");
printf("Input integers:\n");
scanf("%d",&x);
}
max = x;
while(++cnt < n){
scanf("%d",&x);
if(max < x)
max = x;
}
printf("\nMaximum value : %d\n",max);
getch();
return 0;

看程序,你一开始输偶数,满足x%2==0,进入循环;然后输入一个奇数,不满足,循环结束,程序向下,进入蓝色部分,当然不会再出现提示了。
也就是说,你输入奇数以后,循环就不会再运行到了。

2006-11-14 13:33
lucy198352
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-9-20
收藏
得分:0 
你分析的很对,但是怎样改才能避免这个问题呢?

天下事,仰而跂之则难,俯而就之甚易。
2006-11-14 14:19
slowlybear
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-10-18
收藏
得分:0 
合2为1

while(++cnt < n){
scanf("%d",&x);
while(x % 2 == 0){
printf("please input odd numbers!\n");
printf("Input integers:\n");
scanf("%d",&x);
}

if(max < x)
max = x;
}
这样应该可以吧

2006-11-14 14:37
lucy198352
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-9-20
收藏
得分:0 
可以,谢谢!

天下事,仰而跂之则难,俯而就之甚易。
2006-11-14 14:52
slowlybear
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-10-18
收藏
得分:0 
不客气,呵呵,一起学习~一起进步~

2006-11-14 14:57
我的小程序
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-10-5
收藏
得分:0 
恳请帮我编一下这个程序
描述


输入十个整数,输出最大值的序号

输入


十个整数

输出


最大值的序号

示例输入


5 78 234 4 6 7 8 5 5 7


示例输出


3


解答
2008-10-05 17:16
小瘪三的烦恼
Rank: 1
等 级:新手上路
帖 子:86
专家分:3
注 册:2008-9-20
收藏
得分:0 
用数组就行了...应该不难吧!
2008-10-05 19:11
菜菜小
Rank: 1
等 级:禁止发言
帖 子:23
专家分:0
注 册:2008-10-7
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-10-07 14:29
快速回复:[求助]找最大值的问题
数据加载中...
 
   



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

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