C语言,输入15个整数从大到小排序,然后输入一个数字,算出这个数字在这里的位置

作者&投稿:毅范 (若有异议请与网页底部的电邮联系)
c语言有15个数,将他们按从大到小进行排序然后从键盘输入一个数字利用半折法进行查找,没找到则返回~

#include #include #include #include int cmp(const void* a,const void *b){return *(int*)b-*(int*)a;}void getArr(int* p,int size){srand(time(NULL));for(int i=0;i<size;i++)p[i]=rand()%50;}int main(int argc,char *argv[]){int arr[15];int n;int *p;char ch;getArr(arr,15);printf("the init arr:");for(int i=0;i<15;i++)printf("%d ",arr[i]);qsort(arr,15,sizeof(int),cmp);printf("
the sorted arr:");for(int i=0;i<15;i++)printf("%d ",arr[i]);printf("
please input the key num:");while(scanf("%d",&n)!=EOF){p=(int*)bsearch(&n,arr,15,sizeof(int),cmp);if(p==NULL){printf("no such num
");}else{printf("find the num
");}printf("press Y to keep searching, press N to exit:");getchar();scanf("%c",&ch);if(ch=='Y' || ch=='y'){printf("please input the key num:");}else{break;}}system("PAUSE");return 0;}

#include
#include
int main()
{
int i,j,t,x;
int a[15];
srand(time(0));
for(i=0;i<15;i++)
a[i]=rand()%100;
printf("生成的数组如下:
");
for(i=0;i<15;i++)
printf("%4d",a[i]);
printf("
");
//排序(从大到小)
for(i=14;i>0;i--)
for(j=0;j<i;j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf("排序后的数组如下:
");
for(i=0;i<15;i++)
printf("%4d",a[i]);
printf("
");
printf("请输入一个数:");
scanf("%d",&x);
j=-1;
for(i=0;i<15;i++)
if(a[i]==x)
j=i+1;
if(j!=-1)
printf("该数在数组中的第%d个位置!
",j);
else printf("数组中没有这个数!
");
return 0;
}

#include<stdio.h>
int main()
{int a[15],i,n,mid,x=0,y=14,sign;
printf("输入15个整数,从大到小排序:");
for(i=0;i<15;i++)
scanf("%d",&a[i]);
printf("输入你想查找的数字:");
scanf("%d",&n);
if( (n>a[0])||(n<a[14]) )
sign=0;
if(n==a[0])
printf("此数字为第1个");
if(n==a[14])
printf("此数字为第15个");
while(n<=a[0]&&n>=a[14])
{
for(i=0;i<15;i++)
if(n!=a[i]) sign=0;break;
mid=(x+y)/2;
if(n==a[mid])
{printf("´此数字为%d个\n",mid+1);
sign=1;
break;}
else if(n>a[mid])
y=mid-1;
else
x=mid+1;}
if(sign!=1)
printf("该数不存在\n");
return 0;}
你缺少一个条件你缺少了一个如果数字在a[0]和a[14]之间但不属于a[0]到a[14]中的任何一个的条件,所以加上这个就可以了
for(i=0;i<15;i++)
if(n!=a[i]) sign=0;break;

#include<stdio.h>
int main()
{
int a[15], i, n, mid, x = 0, y = 14, sign;

printf("输入15个整数 : ");

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

printf("输入你想查找的数字 : "); scanf("%d", &n);

for(i = 0; i < 15; i++) if (n == a[i]) break;

if(i == 15) printf("该数不存在\n");
else printf("此数字为%d个\n", i + 1);

return 0;
}


用c语言编写,从15个数据组成的数组找出最大最小和平均数
int max(int *pdat,int len)\/\/pdat你的数组,len长度=15{int i;int temp = pdat[0];for(i=1;i<len;i++){if(pdat[i] > temp){temp=pdat[i];} }return temp;}int min(int *pdat,int len)\/\/pdat你的数组,len长度=15{int i;int temp = pdat[0];for(i=1;i<len;i++)...

使用冒泡排序法,编写程序,实现由键盘输入15个整数,按照由大到小的顺 ...
main(){ int i,j,n,a[20];printf("input 15 numbers:\\n");for(i=1;i<16;i++)scanf("%d",&a[i]);printf("\\n");for(j=1;j<16;j++)for(i=1;i<16-j+1;i++)if(a[i]<a[i+1]){ n=a[i];a[i]=a[i+1];a[i+1]=n;} printf("the sorted numbers:\\n");for...

对15个数进行排序,按从小到大的顺序输出。这个代码哪里错了?_百度知 ...
int arr[15];int i,n= 15;printf("请输入15个整数: ");for(i=0; i<n; i++)scanf("%d", &arr[i]);sort(arr,n);printf("排序后: \\n");for(i=0; i<n; i++)printf("%d ",arr[i]);printf("\\n");return 0;}\/*冒泡排序,升序排列*\/void sort(int arr[], int n){int i, j;...

c语言 7、求a中最大,s指向该元素 请高手指点下,谢谢
{ int a[10],*p,*s;printf("请输入10个整数");for(int i=0;i<10;i++)scanf("%d",&a[i]);s=&a[0];for(i=0;i<10;i++){ p=&a[i];if(*s<*p)s=p;} printf("最大的数是%d\\n",*s);} 第二个:include<stdio.h> main( ){ int a[15];printf("请输入15个整数"...

C语言编程题,数组a中有15个元素,键盘输入,并冒泡法有小到大排序_百度知...
include<stdio.h> void main(){ int a[15],i,j,temp;printf("Input 15 numbers:\\n");for(i=0;i<15;i++)scanf("%d",&a[i]);for(i=0;i<14;i++)\/\/冒泡排序 for(j=0;j<14-i;j++)if(a[j]>a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;} for(i=0;i<...

c++语言从键盘上任意输入15个数,找出其中的最大数及其位置?
include <iostream>using namespace std;int main(){int i,j,p,a[15];cin>>a[0];p=a[0];j=0;for(i=1;i<15;i++){cin>>a[i];if(p<a[i]) {p=a[i];j=i;}}cout<<"最大数为"<<p<<",是第"<<j+1<<"个数";return 0;}\/\/运行示例:

c语言编程题:用选择法对数组中15个整数按由小到大排序。
min = j; \/\/交换 if( min != i){ t = a[min]; a[min] = a[i]; a[i] = t; } } }int main(){ int a[15],n,i; n=15; for(i=0;i<n;i++) a[i]=rand(); select_sort(a,n); for(...

c语言怎么随机生成15个100-1000的数字?
程序代码:#include "stdio.h"include "stdlib.h"include "time.h"define N 15 void main(){ int i,a[N];time_t t;\/\/定义时间变量 srand((unsigned)time(&t));\/\/取得当前时间,并将时间转换成随机序列的最小点 for(i=0;i<N;i++){ a[i]=rand()%900+100;\/\/随机生成0~900的数字...

谁能帮找C语言基础习题
2、编一个程序,输入15个整数存入一维数组,按逆序存放后再输出(用指针完成)。#include <stdio.h>main(){ int i,a[15],*p=a,*q,temp;for(i=0;i<15;i++)scanf("%d",p+i);q=&a[14];for(i=0;i<7;i++) {temp=*p; *p=*q; *q=temp; p++; q--;}p=a;for(i=0;i<15;i++)...

用c语言编程实现请输入10个整数,请输出最大值及所在位置(位置从1数起...
更多关于c语言编程的知识 > 网友都在找: c语言编程输入10个整数输出最大值最小值 正在求助 换一换 回答问题,赢新手礼包 苦等3分钟: 为什么ps4我2013买的2018了我玩游戏都没卡... 回答 苦等8分钟: 七月与安生在车站为什么哭得那么伤心 回答 苦等10分钟: 历史上推行变法的康有为有何评价 回答 苦...

宁明县18442915943: C语言,输入15个整数从大到小排序,然后输入一个数字,算出这个数字在这里的位置 -
友晴山海: #include int main() {int a[15],i,n,mid,x=0,y=14,sign; printf("输入15个整数,从大到小排序:"); for(i=0;iscanf("%d",&a[i]); printf("输入你想查找的数字:"); scanf("%d",&n); if( (n>a[0])||(nsign=0; if(n==a[0]) printf("此数字为第1个"...

宁明县18442915943: c语言 要求由大到小排列15个数 -
友晴山海: for(i=0;i<16;i++) {for(j=0;j<16-i;j++) if(a[i]<a[i+1]) t=a[i+1]; a[i+1]=a[i];a[i]=t;} 改成 for(i=0;i<16;i++) for(j=0;j<16-i;j++) if(a[i]<a[i+1]) { t=a[i+1]; a[i+1]=a[i]; a[i]=t; }

宁明县18442915943: 求C语言高手相助,急啊..采用选择法对15个整数排序,排序完成后各整数按照从大到小的顺序排列.排序完成后输入一个数,要求用折半查找法找出该数... -
友晴山海:[答案] 我的程序只要改一下输入就行了:(希望能帮到你) #include #define NUM 100 struct stuInfo { int mark; }stu[NUM]; int BinarySearch(int a[],int x,int n); void scoreSort(stuInfo stu[],int n); int main(int argc, char* argv[]) { int n,int a[100],int index; printf("...

宁明县18442915943: 用选择法对15个学生的成绩按从大到小的顺序排序的C语言程序 -
友晴山海: #include <stdio.h> #define N 15 int main() { int array[N]; printf("请输入15个学生的成绩:\n ",N); for(int i=0; i<N; i++) scanf("%d",&array[i]); for(i=0; i<N; i++) for(int j=i+1; j<N; j++) { if(array[i]>array[j]) { int t=array[i];array[i]=array[j];array[j]=t; } } ...

宁明县18442915943: 关于C语言程序设计题排序查找(选做)用选择法对15个整数安从大到
友晴山海: #include #define N 15 void sort(int *p) { int i,j,temp; for(i=0;i*(p+mid)) high=mid-1; else low=mid+1; mid=(low+high)/2; } if(low \n"); else printf("%d是数组中第%d个元素的值.\n",key,pos); }.

宁明县18442915943: c语言编程题:用选择法对数组中15个整数按由小到大排序.
友晴山海: #include<stdio.h> void main() { int i,j,k,t,a[15]; for(i=0;i<=14;i++) scanf("%d",a[i]); for(i=0;i<15;i++) {k=i; for(j=i+1;j<15;j++) if(a[j]>a[k]) k=j; if(k!=i) {t=a[k];a[k]=a[i];a[i]=t;} } for(i=0;i<15;i++) printf("%4d",a[i]); }

宁明县18442915943: 我是c语言初学者 想向大家请教几个问题 在c语言中 键盘任意输入十五个数 由大到 -
友晴山海: #include <stdio.h> int main() { int arr[15],i; for(i=0;i<16;i++) printf("%d",&arr[i]); for(i=0;i<16;i++) for(j=i;j<15-i;j++){ while(arr[i]<arr[j]) {temp=arr[i];arr[i]=arr[j];arr[j]=temp; } for(i=0;i<16;i++) printf(%d,arr[i]); return 0; }

宁明县18442915943: c语言有15个数,将他们按从大到小进行排序然后从键盘输入一个数字利用半折法进行查找,没找到则返回 -
友晴山海: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> int cmp(const void* a,const void *b) { return *(int*)b-*(int*)a; } void getArr(int* p,int size) { srand(time(NULL)); for(int i=0;i<size;i++) p[i]=rand()%50; } int main(int argc,char *...

宁明县18442915943: 用选择法对15个学生的成绩按从大到小的顺序排序的C语言程序
友晴山海: #include &lt;stdio.h&gt; #define N 15 int main() { int array[N]; printf("请输入15个学生的成绩:\n ",N); for(int i=0; i&lt;N; i++) scanf("%d",&amp;array[i]); for(i=0; i&lt;N; i++) for(int j=i+1; j&lt;N; j++) { if(array[i]&gt;array[j]) { int t=array[i]; array[i]=...

宁明县18442915943: c语言 输入十个整数,从大到小排序,并输出来.求解题思路 -
友晴山海: 1、数组形式.解题思路: 判断比较的躺数,每趟相邻的两个数再进行比较,应用两次 for 循环 具体代码:void PrintArr(int* arr, int sz) { int i = 0; for (i = 0; i < sz; i++) { printf("%d ", *(arr + i)); } return 0; } void BubbleSort(int arr[],int sz) { int i = 0; for ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网