| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2533 人关注过本帖
标题:输入10个数,用两个指针指向最大值和最小值,还是内存提示出错啊。
只看楼主 加入收藏
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
结帖率:84.38%
收藏
已结贴  问题点数:10 回复次数:19 
输入10个数,用两个指针指向最大值和最小值,还是内存提示出错啊。
#include"stdio.h"
int main(){
    int a[10],*max,*min,i;
    printf("imput 10 number:\n");
    for( i=0;i<10;i++)
    scanf("%d",&a[i]);
    *min=*max=a[0];
   for(i=1;i<10;i++)
   if(*max<a[i])*max=a[i];
   if(*min>a[i])*min=a[i];
   
     printf("%d %d",*max,*min);
}

 /*除了内存提示出错以外,另外就是输入数字的时候,用什么方法输入一串数字,如 1 2 3 4 5....10这样输入数组,不用输入1回车,2回车,3回车....10回车。-------------------------------------------
经过楼下几位指点,明白了2点,1:指针变量要经过初始化 2此程序中,应该传递的是地址给指针变量,而不是具体的数字 */


我最大大的问题还有就是用什么方法输入一串数字,如 1 2 3 4 5....10回车这样输入数组,不用输入1回车,2回车,3回车....10回车,是用gets还是什么???

[ 本帖最后由 a271885843 于 2012-1-7 22:25 编辑 ]
搜索更多相关主题的帖子: max 内存 include number 最大值 
2012-01-07 21:50
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
什么问题啊

认为事物非黑即白是缺智慧的表现……
2012-01-07 21:51
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
没人回答啊?高人指点一二了

认为事物非黑即白是缺智慧的表现……
2012-01-07 22:00
宝宝7大人
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2011-10-11
收藏
得分:3 
if(*max<a[i])*max=&a[i];(注意有取地址)
这是因为地址问题
2012-01-07 22:03
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:3 
如代码
程序代码:
#include <stdio.h>
int main()
{
    int a[10],*max, *min,i;
    printf ("input 10 number: \n");
    for (i=0;i<10;i++)
        scanf("%d",&a[i]);
    max = min = a;
    for(i=0; i<10;i++)
    {
        max = *max>a[i]?max:&a[i];
        min = *min<a[i]?min:&a[i];
    }
    printf("%d %d",*max,*min);
    return 0;
}
楼主程序中的代码
  *min=*max=a[0]; 是给指针所指单元赋值,而不是初始化指针的指向。
我们这里只需要用 max = min = a; 即可把max和min指针同时指向数组a[]的首地址。


[ 本帖最后由 lonmaor 于 2012-1-7 22:11 编辑 ]

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-01-07 22:08
宝宝7大人
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2011-10-11
收藏
得分:0 
还有注意数组的应用
加标问题是新手最爱犯的错
a[0]到a[9]
2012-01-07 22:08
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
回复 4楼 宝宝7大人
if(*max<a[i])*max=&a[i];(注意有取地址)
这是因为地址问题
不是地址问题吧,定义的是整型指针变量max和min,max可以保存地址,如max=&a[i],如果使用*max的话,表示max里保存地址的值,即a[i],应该是这样吧。

认为事物非黑即白是缺智慧的表现……
2012-01-07 22:10
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用lonmaor在2012-1-7 22:08:00的发言:

如代码
#include  
int main()
{
    int a[10],*max, *min,i;
    printf ("input 10 number: \n");
    for (i=0;i<10;i++)
        scanf("%d",&a);
    max = min = a;
    for(i=0; i<10;i++)
    {
        max = *max>a?max:&a;
        min = *min
明白了,是指针初始化。还有就是我的程序中,应该把地址赋给指针,而不是把数组的值赋给指针

[ 本帖最后由 a271885843 于 2012-1-7 22:18 编辑 ]

认为事物非黑即白是缺智慧的表现……
2012-01-07 22:14
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
回复 5楼 lonmaor
我最大大的问题还有就是用什么方法输入一串数字,如 1 2 3 4 5....10回车这样输入数组,不用输入1回车,2回车,3回车....10回车,是用gets还是什么???就按此题来讲,有无具体的方法

认为事物非黑即白是缺智慧的表现……
2012-01-07 22:26
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
你的输入部分没有错,可以运行一下我修改后的代码。可以一次读取多个数据的

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-01-07 22:27
快速回复:输入10个数,用两个指针指向最大值和最小值,还是内存提示出错啊。
数据加载中...
 
   



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

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