求一道C语言编程题!

用冒泡排序法对输入的10个数进行降序排序并存入数组中,然后输入一个数,查找该数是否在数组中存在,若存在,打印出该数在数组中对应的下标值。... 用冒泡排序法对输入的10个数进行降序排序并存入数组中,然后输入一个数,查找该数是否在数组中存在,若存在,打印出该数在数组中对应的下标值。 展开
 我来答
shenjun134
2010-12-29 · TA获得超过372个赞
知道小有建树答主
回答量:136
采纳率:50%
帮助的人:156万
展开全部
#include<iostream>
using namespace std;
int main()
{
int num[10];
int n;
printf("请输入10个数字\n");
for(n=0;n<10;n++)
cin>>num[n];
int i,j,temp;
for(i=0;i<10;i++)
{
for(j=0;j<10-i;j++)
if(num[j]>num[j+1])
{
temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
printf("以下是您输入的数字按照从小到大排序:\n");
for(i=0;i<10;i++)
cout<<num[i]<<endl;
int number;
char flag='n';
printf("请再次输入1个数字\n");
cin>>number;
for(n=0;n<10;n++)
{
if(number==num[n])
{
printf("您这次输入的数字是排在第%d位\n",n+1);
flag='y';
}

}
if(flag=='n')
printf("对不起,您输入的数字不在数列中\n");
return 0;
}
哎,你都没加分,算了我还是帮你写了个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Tsui1988
2010-12-30
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
sort(int *a,int num)
{
int i,j,temp;

for(j=0;j<num;j++)
{ for (i=0;i<num-j;i++)
if (a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}

}
}

void main()
{
int i,j,temp,num;
int a[10];

printf("请输入10个数: \n");

for(i=0;i<10;i++)
scanf("%d",&a[i]);

sort(a,10);

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

for(i=0;i<10;i++)
if(num==a[i])
printf("有相同的数,数组下标值为:%d\n",i);

if(i==10)
printf("没有相同的数字\n");

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heyihan1988
2010-12-29 · TA获得超过245个赞
知道小有建树答主
回答量:213
采纳率:100%
帮助的人:177万
展开全部
#include<stdio.h>
void sort(int array[], int size)
{
bool isTerm = true;
int i = 0;
int temp;
while( i + 1< size)
{
if(array[i] < array[i+1])
{
temp = array[i+1];
array[i+1] = array[i];
array[i] = temp;
isTerm = false;
}
++i ;
}
if(!isTerm)
sort(array,size-1);
}

int find(int sorted_array[], int size, int elem)
{
int begin = 0;
int end = size - 1;
int mid;
while(begin < end )
{
if (elem > sort_array[begin] || elem < sort_array[end])
return -1;
mid = (begin + end)/2;
if(elem = sort_array[mid])
return mid;
if(elem < sort_array[mid])
begin = mid + 1;
else
end = mid -1;
}
if(sort_array[begin] == sort_array[end])
return begin;
return -1;
}

int main()
{
int array[10];
int i = 0;
int elem;
printf("Input 10 integer\n");

for(int i = 0; i < 10; ++i)
scanf("%d", &array[i]);
printf("Input the element");
scanf("%d", &elem);
sort(array, 10);
i = find(array,10, elem);

if(-1 == i)
printf("None Found!\n");
else
printf("The Index:%d\n", i);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haizhen1019
2010-12-29
知道答主
回答量:17
采纳率:0%
帮助的人:8.3万
展开全部
#include<stdio.h>
#define NUM 10
void input(int value[ ]);
void output(int value[ ]);
void sort(int value[ ]);
int main(){

int value[NUM];
int result,num;
input(value);
output(value);
sort(value);
output(value);

preintf("Please enter your number:");
scanf("%d",&num);

result=search(value,num,0,NUM-1);
if(result=-1) printf("Fail to find!");
else printf("%dis found at%d",num,result);
}

void input(int value[ ]){
int i;
printf("Please enter your numbers:");
for(i=0;i<NUM;i++)
scanf("%d",&value[i[);
}
void output(int value[ ]){
int i;
printf("\n");
for(i=0;i<NUM;i++)
printf("%5d",value[i]);
}
void sort(int value[ ]){
int i,j;
int temp;
for(i=NUM-1;i>=1;i--)
for(j=0;j<i;j++)
if(value[j]>value[j+1]){
temp=value[j];
value[j]=value[j+1];
value[j+1]=temp;
}
}
int search(int value[ ],int num,int low,int high){
int mid;
for(low>high)
return -1;
mid=(low+high)/2;
if(num=value[mid]) return mid;
else if(num>value[mid])
return search(value,num,lmid+1,high);
else return search(value,num,low,mid-);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式