| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 451 人关注过本帖
标题:程序结果有问题,哪位帮我看下???
只看楼主 加入收藏
其实、不想说
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:156
注 册:2011-3-3
结帖率:92.31%
收藏
已结贴  问题点数:15 回复次数:7 
程序结果有问题,哪位帮我看下???
#include "stdio.h"

void input(int a[10]);
void sort(int a[10]);
void find(int a[10]);

main()
{
    int a[10];

    input(a);
    sort(a);
    find(a);
    getch();
}
void input(int a[10])
{
    int *p;

    printf("Enter ten number:\n");
    for (p = a; p <= a+9; p++)
    {
        scanf("%d", p);
    }
}
void sort(int a[10])
{
    int i, j,temp,*p;

    for (i = 0; i < 9; i++)
    {
        for (p = a,j = 0; j <= 9-i; j++)
        {
            if (*(p+j) > *(p+j+1))
                {
                    temp = *(p+j);
                    *(p+j) = *(p+j+1);
                    *(p+j+1) = temp;
                }
        }
    }
    for (p = a; p <= a+9; p++)
    {
        printf("%5d", *p);
    }
    printf("\n");
}
void find(int a[10])
{
    int *p, *q, min, max, mid, num;

    min = 0;
    max = 9;
    p = &num;
    q = a;
    printf("Enter you want to find number:\n");
    scanf("%d", p);

    while (min <= max)
    {
        mid = (min + max)/2;
        if (*p == *(q+mid))
            {
                printf("Find!\n");
                break;
            }
        else if (*p > *(p+mid))
                {
                    min = mid + 1;
                }
         else
            {
                max = mid - 1;
            }
    }
    if (min > max)
        {
            printf("No find!\n");
        }
}
搜索更多相关主题的帖子: void include number Enter 
2011-05-12 21:48
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:5 
这样的程序如果说在编译的时候没有什么提示错误信息,而是在运行的时候结果不对或者是运行崩溃的话,很可能是你的逻辑问题,或者是指针问题,我建立这样的问题,你完全可以自己去调试,在指针的地方(应为我感觉问题可能出现在指针上)设置一个断点看看!

愿用余生致力编程
2011-05-12 22:23
其实、不想说
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:156
注 册:2011-3-3
收藏
得分:0 
2011-05-12 22:48
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
编译器不会检查逻辑错误! 这也就是为什么很多人说, 编译没问题,但结果总不是自己需要的。建议楼主把各个函数单独调试测试先

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-12 22:53
其实、不想说
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:156
注 册:2011-3-3
收藏
得分:0 
我感觉没错
2011-05-12 22:59
其实、不想说
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:156
注 册:2011-3-3
收藏
得分:0 
回复 4楼 ansic
逻辑好像没问题
2011-05-12 23:00
没有注册过的
Rank: 2
来 自:广西
等 级:论坛游民
帖 子:22
专家分:42
注 册:2011-4-16
收藏
得分:10 
#include "stdafx.h"


#include "stdio.h"
int a[10];
void input(int a[10]);
void sort(int a[10]);
void find(int a[10]);

void main()
{
    int a[10];

    input(a);
    sort(a);
    find(a);
    getchar();
}
void input(int a[10])
{
    int *p;

    printf("Enter ten number:\n");
    for (p = a; p <= a+9; p++)
    {
        scanf("%d", p);
    }
}
void sort(int a[10])
{
    int i, j,temp;
    int *p,m,n;

    for (i = 0; i < 9; i++)
    {
        for (p = a,j =0;j<9-i;j++)
        {
            if (*(p+j) > *(p+j+1))
                {
                    temp = *(p+j);
                    *(p+j) = *(p+j+1);
                    *(p+j+1) =temp;
                }
            else
                ;
        }
    }
    for (p = a; p <= a+9; p++)
    {
        printf("%5d", *p);
    }
    printf("\n");
}
void find(int a[10])
{
    int *p, *q, min, max, mid, num;

    min = 0;
    max = 9;
    p = &num;
    q = a;
    printf("Enter you want to find number:\n");
    scanf("%d", p);

    while (min <= max)
    {
        mid = (min + max)/2;
        if (*p == *(q+mid))
            {
                printf("Find!a[%d]\n",mid);
                break;
            }
        else if (*p > *(p+mid))
                {
                    min = mid + 1;
                }
         else
            {
                max = mid - 1;
            }
    }
    if (min > max)
        {
            printf("No find!\n");
        }
}
貌似不是逻辑问题,只是定义出错~!改一点点就行了~!试试~!
定义整型指针变量的时候,不要和定义整型变量一起定义~!方便看,也不容易出错~!

就是想学~!
2011-05-12 23:00
其实、不想说
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:156
注 册:2011-3-3
收藏
得分:0 
我自己已经解决了,就是那for (j = 0, p = a; j < 9-i; j++);我那是j <= 9-i所以结果有错,指针越界了!!郁闷
2011-05-13 09:11
快速回复:程序结果有问题,哪位帮我看下???
数据加载中...
 
   



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

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