题一:查找:给定有10个元素的整数数组,输入一个数,在数组中查找是该数 【C语言】查找:给定有10个元素的整数数组,输入一个数,在数...

\u529f\u80fd\uff1a\u4e3a\u4e00\u7ef4\u6570\u7ec4\u8f93\u516510\u4e2a\u6574\u6570\uff1b\u5c06\u5176\u4e2d\u6700\u5c0f\u7684\u6570\u4e0e\u7b2c\u4e00\u4e2a\u6570 \u5bf9\u6362\uff0c\u5c06\u6700\u5927\u7684\u6570\u4e0e\u6700\u540e\u4e00\u4e2a\u6570\u5bf9\u6362\uff0c\u8f93\u51fa\u6570\u7ec4\u5143

scanf("%d",p\u2605++); \u6216 scanf("%d",arr[i]); \u6216 scanf("%d",p+i); \u6216 scanf("%d",arr+i);
2). if(*p>*max) \u6216 if(*max<*p)
3). if(\u2605max\u2605==\u2605arr\u2605)
4). for(i=0;ii;i++) \u6216 for(p=arr;p=i;i++) \u6216 for(p=arr;p=p;)

#include
#define COMMON0
#define MUL_EQU1
#define ORDER2
#define INC1
#define DEC2
int main(){
int array[10];
int i,n,type,index,found=0,order;
printf("Input 10 integers:");
for(i=0;i<10;i++){
scanf("%d",&n);
array[i]=n;
}
printf("Input array type.\n \"0\" for Common\n \"1\" for 2 or more equal numbers\n \"2\" for ordered array\n:");
scanf("%d",&type);
switch(type){
case COMMON:
printf("Input index to search:");
scanf("%d",&index);
for(i=0;i<10;i++){
if(array[i]==index){
printf("Found at array[%d].\n",i);
return 0;
}
}
printf("Index not found!\n");
return 0;
case MUL_EQU:
printf("Input index to search:");
scanf("%d",&index);
for(i=0;i<10;i++){
if(array[i]==index){
printf("Found at array[%d].\n",i);
found=1;
}
}
if(found==0) printf("Index not found!\n");
return 0;
case ORDER:
if(array[0]<array[1]){
order=INC;
}else{
order=DEC;
}
printf("Input index to search:");
scanf("%d",&index);
if(index==array[5]){
printf("Found at array[5]\n");
return 0;
}else if(index>array[5]){
for(i=6;i<10;i++){
if(array[i]==index){
printf("Found at array[%d]\n",i);
return 0;
}
}
printf("Index not found!\n");
return 0;
}else if(index<array[5]){
for(i=0;i<5;i++){
if(array[i]==index){
printf("Found at array[%d]\n",i);
return 0;
}
}
printf("Index not found!\n");
return 0;
}
}
return 0;
}
\u9700\u8981\u6ce8\u91ca\u5417\uff1f

完整C程序:

#include "stdio.h"

int count = 0;

int isOrdinal(int arr[], int n);

int binarySearch(int arr[], int low, int high, int key);

int find(int arr[], int n, int key);

void main()

{

int arr[] = {1, 2, 3, 4, 4, 4, 5, 5, 6, 7};

int n = 10;

int key = 4;

int pos = -1;

pos = find(arr, n, key);

printf("first find %d at position %d
", key, pos);

printf("number of same data : %d
", count);

}

/* 判断数组arr是否是排序的,若是返回1,否则返回0 */

int isOrdinal(int arr[], int n)

{

int i;

for(i=0; i<n-1 && arr[i]<=arr[i+1]; i++);

if(i >= n-1)

return 1;

if(i > 0)

return 0;

for(i=0; i<n-1 && arr[i]>=arr[i+1]; i++);

if(i >= n-1)

return 1;

return 0;

}

/* 折半查找,若找到返回索引,否则返回-1 */

int binarySearch(int arr[], int low, int high, int key)

{

int mid;

while(low <= high)

{

mid = (low + high) / 2;

if(arr[mid] == key)

{

count++;

binarySearch(arr, low, mid-1, key);

binarySearch(arr, mid+1, high, key);

return mid;

}

else if(arr[mid] < key)

low = mid + 1;

else

high = mid - 1;

}

return -1;

}

/* 查找,若找到返回索引,否则返回-1 */

int find(int arr[], int n, int key)

{

int i, pos = -1;

if(isOrdinal(arr, n) == 1)

return binarySearch(arr, 0, n-1, key);

for(i=0; i<n; i++)

if(arr[i] == key)

{

count++;

if(pos == -1)

pos = i;

}

return pos;

}

运行测试:



给你写了个普通数组的查询,对于多个等于关键字的又稍微的处理,没有折半查找
#include"stdio.h"
void main()
{
int a[10]={1,3,5,7,3,9,8,2,4,10};
int n,count=0,c[10];
for(int i=0;i<10;i++)printf("%d ",a[i]);
printf("\n请输入要查找的数:");
scanf("%d",&n);
for(i=0;i<10;i++){
if(a[i]==n){c[count]=i;count++;}
}
if(count==0){printf("未找到符合的数");}
else {
printf("共找到%d个符合的数\n",count);
for(i=0;i<count;i++)
printf("第%d个符合的数为数组的%d号位置\n",i+1,c[i]+1);
}
}

算了,送佛送到西好了,再给你弄个折半查找
#include<stdio.h>
#include<stdlib.h>
void main(){
int a[10]={1,3,12,15,22,45,93,501,1023,12345};
int mid;
int low=0;
int high=9;
int x,i;
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n请输入你要查找的数:");
scanf("%d",&x);
while(low<=high)
{
mid=(low+high)/2;
if(x==a[mid]){
printf("符合的数为数组的%d号位置\n ",mid+1);break;}
else{
if(x<a[mid])
high=mid-1;
else low=mid+1;
}
}
}//将升序排列的数组 进行折半查找

已发

同学不会也是为了湖大期中考试吧?
他们写的都太高级了,记不住哎~
第一个的第二种还好理解些~

  • 棰樹竴:鏌ユ壘:缁欏畾鏈10涓厓绱犵殑鏁存暟鏁扮粍,杈撳叆涓涓暟,鍦ㄦ暟缁勪腑鏌ユ壘鏄...
    绛旓細int isOrdinal(int arr[], int n);int binarySearch(int arr[], int low, int high, int key);int find(int arr[], int n, int key);void main(){ int arr[] = {1, 2, 3, 4, 4, 4, 5, 5, 6, 7};int n = 10;int key = 4;int pos = -1;pos = find(arr, n,...
  • c璇█缂栫▼棰:浠鍏锋湁10涓厓绱犵殑鏁扮粍涓鏌ユ壘鎸囧畾鍊糼(k浠庨敭鐩樿緭鍏)鐨勪笅鏍...
    绛旓細include <stdio.h>int main(void){int a[10]={1,2,3,4,5,6,7,8,9,10};int i,k;scanf("%d",&k);for(i=0;i<10;i++){if(a[i]==k){printf("鎸囧畾鍊糼鐨勪笅鏍囨槸:%d\n",i);break;}}if(i==10){printf("娌℃湁涓涓厓绱犵殑鍊肩瓑浜庢寚瀹氬糼!\n");} return 0;} ...
  • 涓閬撻珮涓暟瀛﹂浠庡惈鏈10涓厓绱犵殑闆嗗悎鐨勫叏閮ㄥ瓙闆嗕腑浠诲彇涓涓,鎵鍙栫殑瀛 ...
    绛旓細C10锛3鎰忔濇槸浠10涓腑娌℃湁椤哄簭鐨勯3涓紝灏辨槸10*9*8/锛1*2*3锛=120锛2^10鎰忔濇槸2鐨10娆℃柟锛屽洜涓轰粠10涓厓绱閫夊瓙闆嗭紝鏈塁10,0+~~~+C10,10=2鐨10娆℃柟锛堜綘鍙互绠椾竴涓嬶紝鍒憡璇夋垜涓嶇煡閬揅鏄粈涔堟剰鎬濓級锛屾墍浠ョ患涓婂嵆寰楃瓟妗
  • ...棰樼洰:鍦ㄥ寘鍚10涓鏁扮殑涓缁存暣鏁版暟缁刟涓鏌ユ壘鏈澶鍏冪礌max 鍜屾渶灏忓厓绱爉in...
    绛旓細include<stdio.h> void main(){ int i,j,k,f[10],max,min;for(i=0;i<10;i++)scanf("%d",&f[i]);max=min=f[0];for(j=1;j<10;j++){if(f[j]>max)max=f[j];if(f[j]<min) //鏂板姞鐨勶紒鏂板姞鐨勶紒min=f[j];} printf("max=%d min=%d\n",max,min);} ...
  • 缂栫▼棰:1:瀹氫箟鍚湁10涓厓绱犵殑鏁扮粍,骞跺皢鏁扮粍涓殑鍏冪礌鎸夐嗗簭浠庢柊瀛樻斁鍚庤緭...
    绛旓細void main(){ int i, j, a[10],temp;for (i = 0; i < 10; i++)scanf("%d",&a[i]);printf("\n");for (i = 0; i < 9; i++)for (j = i+1; j < 10; j++)if (a[j]<a[i]){ temp = a[i];a[i] = a[j];a[j] = temp;} for (i = 0; i < 10;...
  • 缂栫▼棰:1:瀹氫箟鍚湁10涓厓绱犵殑鏁扮粍,骞跺皢鏁扮粍涓殑鍏冪礌鎸夐嗗簭浠庢柊瀛樻斁鍚庤緭...
    绛旓細int i, j, a[10],temp;for (i = 0; i < 10; i++)scanf("%d",&a[i]);printf("\n");for (i = 0,j=9; i< =9&&j>=0; i++,j--)//浜ゆ崲棣栧熬鐨勬暟,瀹炵幇閫嗗簭瀛樻斁 { temp = a[i];a[i] = a[j];a[j] = temp;} for (i = 0; i < 10; i++)printf("%3d"...
  • C璇█涔犻 瀹氫箟涓涓鍖呭惈10涓厓绱犵殑鏁村瀷鏁扮粍.杈撳叆10涓暣鏁板苟姹傛暟缁勫厓绱犵殑...
    绛旓細妤间富浣犲ソ锛佹牴鎹綘鐨勮姹備唬鐮佸疄鐜板涓嬶紒include<stdio.h> int main(){ int a[10]={},i,sum=0;printf("璇疯緭鍏10涓暣鏁帮細\n");for(i=0;i<10;i++){ scanf("%d",&a[i]);sum+=a[i];} printf("10涓厓绱鍜屼负锛%d",sum);return 0;} 甯屾湜鎴戠殑鍥炵瓟瀵逛綘鏈夊府鍔╋紒
  • C璇█,瀹氫箟涓涓10涓厓绱犵殑涓缁存暟缁,瑕佹眰閿洏杈撳叆,杈撳嚭鏁扮粍,缁熻鏁扮粍...
    绛旓細stdio.h"int main(){int i,n=0,a[10];printf("璇疯緭鍏10涓鏁存暟锛歕n");for(i=0;i<10;i++){scanf("%d",&a[i]);if(a[i]>10)n++;} printf("杈撳叆鐨10涓暟鏄細\n");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\n鍏朵腑澶т簬10鐨勬暟鏈%d涓猏n",n);return 0;} ...
  • 甯釜蹇,瀹炲湪娌″垎浜,鏈夌┖甯仛鍑犻亾鏁版嵁缁撴瀯棰
    绛旓細甯姪浜虹殑鏃朵唬鏉ヤ复锛屾墍閽熸儏銆傚嵈涓嶈兘鐪嬪埌缁撴灉 澶氫箞缇庡锛岃繖姊︿竴鏍风殑鍦烘櫙锛佸湪濂ヨ尐缁磋緵涔嬪悗锛屾病鏈夌瀛︼細浠栦滑搴旇鐗㈣杩囦腑鍝堝搱
  • 璁炬湁涓涓10涓厓绱犵殑鏁扮粍,缂栫▼杈撳嚭璇ユ暟缁勭殑鏈澶у煎拰鏈灏忓笺俢璇█绋嬪簭璁...
    绛旓細int i, t, s;printf("璇疯緭鍏鍗佷釜鏁!\n");for (i = 0; i < 10; i++){ scanf("%d", &p[i]);} for (i = 0; i < 10; i++){ for(t = i + 1; t < 10; t++){ if (p[i] > p[t]){ s = p[i];p[i] = p[t];p[t] = s;} } } printf("max=%d\...
  • 扩展阅读:扫一扫数学题目出答案 ... 扫题出答案不用下载 ... 扫一扫一秒出答案 ... 搜题拍照秒出答案 ... 免费扫一扫搜答案 ... 免费查试卷答案网站2024 ... 学法减分从哪里找答案 ... 一扫卷子全出答案网站 ... 免费拍照答题一秒出答案 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网