| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 356 人关注过本帖
标题:代码实现过程中出现随机数,不知是哪里问题,下边是代码和编译截图
取消只看楼主 加入收藏
Erfeel
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-9-10
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:2 
代码实现过程中出现随机数,不知是哪里问题,下边是代码和编译截图
我的想法是通过随机输入10个数,然后放入数组通过调用函数进行排序,然后将已经排序好的数作为基底,再写一个二分法查找某数字是否在此数组中,结果在第一部数组排序就出现了问题,出现大量随机数,而且后边注释起来的代码不能正常编译,也就是二分法,主函数里进行多个功能着实不会,还请指教

#include<stdio.h>
void printarray(int a[10])
{
int i;
for(i=0;i<10;i++)
printf("%d",&a[i]);   //这个发现不能用取地址&,才可以正常调用,因为是printf语句,不能和scanf语句混淆
printf("\n");
}
void sort(int a[],int n)
{
int i,j,t;
for(i=0;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j]>a[j+1])
    {
    t=a[j];a[j]=a[j+1];a[j+1]=t;
    }

}


int main()
{
    int i,x,m,l,h,a[10];
    l=0,h=9,m=(l+h)/2;
    printf("please enter 10 num.\n");
    for(i=0;i<10;i++)

    scanf("%d",&a[10]);   //感觉出现随机数就是这里的问题,而且在输入10个数后运行结果会多出一个数,然后才出现输出结果///真是这里,感谢指出来,a[i],a[10]已经是有地址,而且是固定的一个元素,不知道理解对不对
    /*scanf("%d",&x);*/   //这行加上后需要输入11个数才会有结果显示。。。。这个放在while代码之前可以实现二分法排序了;;;;;

    /*printf("%d",a[10]);*/
    printf("\n");
   
    printf("\nThe array beforing sorted is:\n");
    printarray(a);
    sort(a,10);
    printf("\nThe array sorted is:\n");
    printarray(a);


    /*while(a[m]!=x && l<=h)       //加上这段代码也是出现随机数,这个随机数还是不会改
    {
        if(a[m]>x)
        h=m-1;
        else
        l=m+1;
        m=(l+h)/2;
    }
    if(a[m]==x)
    printf("位置:%d",m+1);
    else
    printf("找不到");

*/
}

[ 本帖最后由 Erfeel 于 2015-9-15 18:55 编辑 ]
搜索更多相关主题的帖子: include 二分法 而且 
2015-09-15 15:28
Erfeel
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-9-10
收藏
得分:0 
截图不会弄,没加上
2015-09-15 15:30
Erfeel
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-9-10
收藏
得分:0 
回复 3楼 rjsp
谢谢了,已经解决了,因为昨天代码编译时候就是把一个数组直接取地址的,而且编译成功了,多谢纠正
2015-09-15 18:53
快速回复:代码实现过程中出现随机数,不知是哪里问题,下边是代码和编译截图
数据加载中...
 
   



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

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