有会c语言的大佬吗?有点滴滴我。帮忙做一个题,可付费

2024-11-29 01:32:42
推荐回答(3个)
回答1:

//我不用你付费,把分给我就行。
#include "stdio.h"
#include 
int input(int *x)
{
int i=0;
do
{
scanf("%d",x+i);
x[i+1] = getchar();
i=i+1;
}while(x[i]!='\n');
return i;
}
void output(int *x,int n)
{
int i;
for(i=0;i printf("%d\t",x[i]);
printf("\n\n");
}
void sort(int *x,int n)
{
int i,j,temp;
int min;
for(i=0;i {
min=i;
for(j=i+1;j {
if(x[min]>x[j])
{
min=j;
}
}
temp=x[min];
x[min]=x[i];
x[i]=temp;
}
}
void find(int d,int *x,int t,int b)
{
while(x[int((t+b)/2)]!=d)
{
if(x[int((t+b)/2)]>d)
t=int((t+b)/2)-1;
else
b=int((t+b)/2)+1;
if(t==b)
{
if(x[t]==d)
printf("找到该数,位于第%d个。",t+1);
else
printf("没找到该数!");
break;
}

}
if(t!=b)
printf("找到该数,位于第%d个。",int((t+b)/2)+1);
return;

}
int main()
{
int x[50];
int n;
int d; 
printf("输入一组整数,最后一个数后输入回车(中间不要有空格)结束:\n"); 
n=input(x);
printf("\n");
sort(x,n);

printf("输入需要查找的整数:\n"); 
scanf("%d",&d);
find(d,x,n-1,0);
//输出该数组 
output(x,n);

}

回答2:

这个简单。哈哈,送你一个输入
void input(int s[],int n)
{
int i=0;
for(;iscanf("%d",&s[i]);
}

回答3:

我可以搞定。。。。私聊~