二分查找,大一几个小问题

By admin in 茶社 on 2020年1月5日

//:二分查找
#include <stdio.h>

大一几个小问题,100币
谢谢解答
请给这段筛选100以内素数的代码加上注释
#include
#include
int main()
{int i,j,n,a[101];
for (i=1;i<=100;i++)
a[i]=i;
a[1]=0;
for (i=2;i<sqrt
for (j=i+1;j<=100;j++)
{if(a[i]!=0 && a[j]!=0)
if (a[j]%a[i]==0)
a[j]=0;
}
printf;
for (i=2,n=0;i<=100;i++)
{ if
{printf(“%5d”,a[i]);
n++;
}
if
{printf;
n=0;
}
}
printf;
return 0;
}

int main(){
    typedef struct{
        char name[20];
        int no;
    }employee;    

为什么输出的最后一个数很奇怪
#include
int main()
{
int a[11],i,j,min=0;
for(i=0;i {printf(“a[%d]”,i);
scanf(“%d”,&a[i]);
}
for(j=0;j {
for(i=j+1;i {
if(a[i]>a[j])
{a[min]=a[j];
a[j]=a[i];
a[i]=a[min];}//实现取最小
}
}
printf(“nThe sorted numbers:n”);
for (i=1;i<=10;i++)
printf(“%d “,a[i]);
printf;
return 0;
}

    employee array[10];
    int i, j, temp, findNo, min,
max, middle;

请给这段代码加上注释
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
#include
int main()
{ int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number,end,i,j;
printf(“array a:n”);
for (i=0;i printf(“%5d”,a[i]);
printf;
printf(“insert data:”);
scanf(“%d”,&number);
end=a[9];
if (number>end)
a[10]=number;
else
{for (i=0;i {if (a[i]>number)
{temp1=a[i];
a[i]=number;
for (j=i+1;j<11;j++)
{temp2=a[j];
a[j]=temp1;//把a[i]放到了后面
temp1=temp2;
}
break;
}
}
}
printf(“Now array a:n”);
for (i=0;i<11;i++)
printf(“%5d”,a[i]);
printf;
return 0;
}

    for(i=0; i<10; i++){
        printf(“输入工号:”);
        scanf(“%d”,
&array[i].no);
        printf(“输入姓名:”);
        scanf(“%s”,
array[i].name);        
    }
    /*选择排序*/
    for(i=0; i<9; i++){
        for(j=i+1; j<10; j++){
            if(array[i].no>array[j].no){
                temp = array[i].no;
                array[i].no = array[j].no;
                array[j].no = temp;
            }
        }
    }//for

这段代码有两个错误,请更正
代码目的是输入两个整数,输出其中值较大者
#include
int main()
{
int a,b,c;
scanf(“%d,%d”,&a,&b);
c=max;
printf(“max is %d”,c);
return 0;
}
int max(int x,int y)
{
int z;
z=x>y?x:y;
return;
}

    for(i=0; i<10; i++){
        printf(“no = %d, name = %sn”, array[i].no, array[i].name);    
    }
    min = 0;
    max = 9;

    printf(“输入要查找工人的工号:”);
    scanf(“%d”,
&findNo);

    while(array[min].no <
array[max].no){
        middle = (min+max)/2;
        if(findNo >
array[middle].no){
            min = middle;
        }else if(findNo < array[middle].no){
            max = middle;
        }else{
            break;
        }
    }
    if(max>min){
        printf(“%sn”, array[middle].name);
    }else{
        printf(“没有找到n”);
    }

    return 0;
}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2020 大奖888网页版登陆 版权所有