求一道C语言编程题!
用冒泡排序法对输入的10个数进行降序排序并存入数组中,然后输入一个数,查找该数是否在数组中存在,若存在,打印出该数在数组中对应的下标值。...
用冒泡排序法对输入的10个数进行降序排序并存入数组中,然后输入一个数,查找该数是否在数组中存在,若存在,打印出该数在数组中对应的下标值。
展开
展开全部
#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;
}
哎,你都没加分,算了我还是帮你写了个
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;
}
哎,你都没加分,算了我还是帮你写了个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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");
}
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");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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-);
}
#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-);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询