| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 527 人关注过本帖
标题:[求助]关于二维数组中,数据位置的输出
只看楼主 加入收藏
small_bike
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-3-11
收藏
 问题点数:0 回复次数:6 
[求助]关于二维数组中,数据位置的输出

#include<stdio.h>
void main()
{
int a[20];
int i,max,min,x,y1,y2,p1,p2;
for(i=0;i<=20;i++)
{
printf("input data:");
scanf("%d",&a[i]);
}
max=a[0];
min=a[0];
for(x=1;x<=20;x++)
{
if(a[x]>max)
max=a[x];
else if(a[x]<min)
min=a[x];
}
for(y1=1;y1<=20;y1++)
{
if(a[y1]==max)
p1=y1+1;
break;
}
for(y2=1;y2<=20;y2++)
{
if(a[y2]==min)
p2=y2+1;
break;
}
printf("the max number is:%d,the locate is:%d\n",max,p1);
printf("the min number is:%d,the locate is:%d\n",min,p2);
}

最后出现p1,p2数据溢出且出现警告.
请高手帮忙

搜索更多相关主题的帖子: 数据 位置 输出 
2007-06-22 00:18
herbert_1987
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:1314
专家分:0
注 册:2007-5-13
收藏
得分:0 
这里错了:
for(y1=1;y1<=20;y1++)
{
if(a[y1]==max)
p1=y1+1;
break;
}
for(y2=1;y2<=20;y2++)
{
if(a[y2]==min)
p2=y2+1;
break;
}

y1 y2 (即a[] 的下标)
不是从 1 到 20 的
而是 从 0 到 19 的

人生重要的不是所站的位置,而是所朝的方向
2007-06-22 00:39
small_bike
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-3-11
收藏
得分:0 

好像不是这个问题........
按照你的方法试了
问题还是一样.


好好学习
2007-06-22 00:50
herbert_1987
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:1314
专家分:0
注 册:2007-5-13
收藏
得分:0 
你要自己学会调试,在:
for(y1=0;y1<20;y1++)
{
if(a[y1]==max)
p1=y1+1;
break;
}
for(y2=0;y2<20;y2++)
{
if(a[y2]==min)
p2=y2+1;
break;
}
里面输出 p1 p2 的值看看,有什么结果.

人生重要的不是所站的位置,而是所朝的方向
2007-06-22 00:56
small_bike
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-3-11
收藏
得分:0 

还是不对啊.....


好好学习
2007-06-22 01:07
horewen
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2007-5-21
收藏
得分:0 
应该这样

#include<stdio.h>
void main()
{
int a[20];
int i,max,min,x,y1,y2,p1,p2;
for(i=0;i<20;i++)
{
printf("input data:");
scanf("%d",&a[i]);
}
max=a[0];
min=a[0];
for(x=1;x<20;x++)
{
if(a[x]>max)
max=a[x];
else if(a[x]<min)
min=a[x];
}
for(y1=0;y1<20;y1++)
{
if(a[y1]==max)
{
p1=y1+1;
break;
}
}
for(y2=0;y2<20;y2++)
{
if(a[y2]==min)
{
p2=y2+1;
break;
}
}
printf("the max number is:%d,the locate is:%d\n",max,p1);
printf("the min number is:%d,the locate is:%d\n",min,p2);
}

出现警告是因为数组越界问题,数据溢出是因为少花括号。
2007-06-22 01:14
small_bike
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-3-11
收藏
得分:0 

看懂了

恍然大悟,谢谢啊


好好学习
2007-06-22 01:34
快速回复:[求助]关于二维数组中,数据位置的输出
数据加载中...
 
   



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

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