| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 498 人关注过本帖
标题:关于数组的一个问题,大神们,球指导。。。
只看楼主 加入收藏
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:9 
关于数组的一个问题,大神们,球指导。。。
题目是这样的:
已知一个a数组,数组中的数不相重复,在a数组中查找和X值相同的元素位置
,若找到,输出改值和改值的在a数组中的位置,若没找到,输出NO。
以下是我自己的一些想法。
我是想,先给数组元素的个数一个范围,然后默认在这个范围内,输入一个数,例如5
确定数组元素的个数a[5],然后输入数值,给数组元素赋值。然后再进行判断。
一下是我的程序,球大侠们帮忙看看,帮我指出一下问题。

# include <stdio.h>
int arrin(int *a,int m)
{int i,j;
for(i=0;i<m;i++)
scanf("%d",&j);
a[i]=j;
}
int fun1(int *a,int m,int x)
{int i,j;
  for(i=0;i<=m;i++)
 {if(x==a[i])
  printf("%d,%d",x,i);break;
  if(i==m&x!=a[i])
  printf("NO");
  }
}
main()
{int m,a[30],x;
scanf("%d\n",&m);
arrin(a,m);
scanf("%d",&x);
fun1(a,m,x);
}
使用的编译器是VC++6.0
搜索更多相关主题的帖子: include 元素 
2012-11-08 22:07
菜鸟7号
Rank: 2
等 级:论坛游民
帖 子:21
专家分:17
注 册:2011-8-29
收藏
得分:1 
用二分查找吧
2012-11-08 22:11
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 2楼 菜鸟7号
不明白,能帮忙看看我的代码吗?
2012-11-08 22:31
菜鸟一支
Rank: 6Rank: 6
来 自:何美杭
等 级:侠之大者
威 望:1
帖 子:121
专家分:456
注 册:2012-10-10
收藏
得分:3 
楼主你好,你的arrin函数有问题,然后程序还有些其他小问题,我将改过后的程序贴出来,你可以看看,如果有不清楚的我们再交流。

# include <stdio.h>
int arrin(int a[],int m)
{int i;
for(i=0;i<m;i++)
scanf("%d",&a[i]);

return 0;}
int fun1(int a[],int m,int x)
{int i;
  for(i=0;i<=m;i++)
{if(x==a[i])
  printf("%d,%d",x,i);
 
}
return 0;}
void main()
{int m,a[30],x;
scanf("%d\n",&m);
arrin(a,m);
scanf("%d",&x);
fun1(a,m,x);
}

小弟何美杭,所发表的都仅代表个人观点,欢迎批评指正。
2012-11-08 22:36
菜鸟一支
Rank: 6Rank: 6
来 自:何美杭
等 级:侠之大者
威 望:1
帖 子:121
专家分:456
注 册:2012-10-10
收藏
得分:0 
哦,对了,最好将  printf("%d,%d",x,i);改成  printf("%d,%d。",x,i);
因为如果输入:4 2 2 3 4 2//第一个4代表大小,2 2 3 4 代表数组,2代表被查找的数。
系统就会输出
2,02,1
如果改了后就会输出
2,0。2,1
这样好辨认些

小弟何美杭,所发表的都仅代表个人观点,欢迎批评指正。
2012-11-08 22:41
ayilimi
Rank: 1
等 级:新手上路
帖 子:1
专家分:3
注 册:2012-11-8
收藏
得分:3 
# include <stdio.h>
int arrin(int *a,int m)
{int i,j;
for(i=0;i<m;i++)
{for(j=0;j<30;j++)
scanf("%d",&j);
a[i]=j;
}
return 0;
}
int fun1(int *a,int m,int x)
{int i,j;
  for(i=0;i<=m;i++)
{if(x==a[i])
  printf("%d,%d",x,i);break;
  if(i==m&&x!=a[i])
  printf("NO");
  }
return 0;
}
main()
{int m,a[30],x;
scanf("%d\n",&m);
arrin(a,m);
scanf("%d",&x);
fun1(a,m,x);
}
我也不知道改的对不对,我试了下可以运行的
2012-11-08 22:44
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 6楼 ayilimi
好像不行啊。。。郁闷
2012-11-08 23:14
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 4楼 菜鸟一支
Hi,兄弟你好,
if(x!=a[i])呢?
那个fun函数还没完啊?你只写了等于的情况啊。。再看看?
2012-11-08 23:17
廖阳
Rank: 2
等 级:论坛游民
帖 子:1
专家分:13
注 册:2012-11-4
收藏
得分:13 
#include <stdio.h>
void arrin(int *a,int m)
 {
     int i,j;
     for(i=0;i<m;i++)
     {
         scanf("%d",&j);
         a[i]=j;
     }
 }
void fun1(int *a,int m,int x)
 {
   int i;
   for(i=0;i<m;i++)
   {
     if(x==a[i])
     {printf("%d,%d",x,i);break;}
     if(i==m&&x!=a[i])
     printf("NO");
   }
}
void main()
{
     int m,a[10],x;
     scanf("%d\n",&m);
     arrin(a,m);
     scanf("%d",&x);
     fun1(a,m,x);
}
2012-11-08 23:27
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 9楼 廖阳
哦,明白了。谢谢!
2012-11-09 00:08
快速回复:关于数组的一个问题,大神们,球指导。。。
数据加载中...
 
   



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

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