新手!我这有个C的代码 算法描述和设计特点怎么写?顺便帮忙看下代码对不对

manmao67 2017-03-21 01:34:53
#include <stdio.h>
int main (void){
int a[15]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30},min=2,max=30,mid,min,n;//max为数列长度,a[2]作为第一个数组元素
printf("请输入要查找的数:\n");
fflush(stdout)
scanf("%d,&n);
while(min+1!=max)
{
mid=(min+max)/2;
if(n>a[mid])
min=mid
else
if(n<a[mid]}
max=mid
else
{printf("输入的数在数列的%d位")
}
...全文
95 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2017-03-21
  • 打赏
  • 举报
回复
#include <stdio.h>

int main (void)
{
    int a[15]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30};
    int min, max, mid, n;//max为数列长度,a[2]作为第一个数组元素

    printf("请输入要查找的数:\n");
    scanf("%d", &n);

    min = 0;
    max = sizeof(a)/sizeof(a[0]);

    while (min <=  max) {
        mid = (min + max) / 2;
        if(n > a[mid])
            min = mid + 1;
        else if(n < a[mid])
                max = mid - 1;
        else {
            printf("输入的数在数列的%d位\n", mid);
            break;
        }
    }
    if (min > max)
        printf("Not in list!\n");

    return 0;
}
上一个有点问题;用这个吧~
自信男孩 2017-03-21
  • 打赏
  • 举报
回复
#include <stdio.h>

int main (void)
{
    int a[15]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30};
    int min, max, mid, n;

    printf("请输入要查找的数:\n");
    scanf("%d", &n);

    min = 0;
    max = sizeof(a)/sizeof(a[0]);

    while (min <=  max) {
        mid = (min + max) / 2;
        if(n > a[mid])
            min = mid + 1;
        else if(n < a[mid])
                max = mid - 1;
        else
            printf("输入的数在数列的%d位", mid);
        printf("mid = %d, min = %d, max = %d\n", mid, min, max);
    }
    if (min > max)
        printf("Not in list!\n");

    return 0;
}
二分查找法,max不是30,而是sizeof(a)/sizeof(a[0]);

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧