定义一个10个整形数组输入一个数 查找此数组中有无此数 若有输出此数在数组中的位置 若没有输出无

定义一个一维整型数组,长度为十,从键盘中输入一个个数,找出该数在数组中的位置,如果没有找到,输出-1~

//参考代码#include int main(){ int i=0,n,a[10]={1,2,3,4,5,6,7,8,9,0},flg=0; scanf("%d",&n); for(i=0;i<10;i++) if(n==a[i]){ printf("%d
",i); flg=1; break; } if(!flg) printf("-1
"); return 0;}

完整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=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;
}
运行测试:

C语言程序:

#include <stdio.h>

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

for(i=0; i<n; i++)
{
if(arr[i] == key)
{
return i;
}
}

return -1;
}

void main()
{
int arr[] = {49, 38, 65, 97, 76, 13, 27, 9, 18, 30};
int n = 10;
int key;
int pos;

printf("请输入待查找数:");
scanf("%d", &key);

pos = find(arr, n, key);

if(pos < 0)
{
printf("无");
}
else
{
printf("%d", pos + 1);
}
}


运行测试:

请输入待查找数:10

请输入待查找数:13
6


#include<stdio.h>
int main(void)//这里只考虑该数在数组中至多有1个的可能
{
int aa[10]={0};//自己定义

int find,i=0;

printf("请输入想要查找的数:\n");

scanf("%d",&find);
for (i=0;i<10;i++)
{
if (find==aa[i])

{
printf("该数位于第%d位",i);

return 0;
}
}
printf("无");
return 0;
}

如果要找的数在数组中有多个呢,题目是怎么要求的?

c语言编程题:输入10个数存放在一个数组中,输入一个数存入x中,然后找出...
答:{ int y[10],x,i;printf("input 10 int data\n");for (i=0;i<10;i++) scanf("%d",&y[i]);printf("input x \n");scanf("%d",&x);printf("locations:\n");for (i=0;i<10;i++) if (y[i]==x)printf("%d ",i);return 0;} 例子:input 10 int data 1 3 5 7...

定义一个有10个元素的一维整型数组,从键盘输入给数组的每个元素赋值,并...
答:include<stdio.h> printf("请输入10个整数:\n");for(i=0;i<n;i++)scanf("%d",&a[i]);printf("\n输入的10个数是:\n");printf("输出你输入的元素:\n");for(int i=0;i<10;i++){ printf("arr[%d]=%d\n",i,arr[i]);} printf("数组总和为:%d\n",sum);} 与结构或类...

定义一个可以存放10个整数的数组a,从键盘上给数组a输入数据,并以每行...
答:include<stdio.h> int main(){int i,a[10];printf("请输入10个整数,以空格分隔:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("输入的数据是:\n");for(i=0;i<10;i++){printf("%6d",a[i]);if(i%4==3)printf("\n");} printf("\n");return 0;} ...

c语言 定义一个10个元素的int类型数组,从键盘上输入任意10个int类型的...
答:include<stdio.h> define N 10 void main() { int a[N],i,max,min,a3,a5,a7; float av;for ( i=0;i<N;i++ ) scanf("%d",&a[i]);max=min=a[0]; for ( i=1;i<N;i++ ) if ( maxa[i] ) min=a[i];a3=a5=a7=0; av=0;for ( i=0;i<N;i++ ) { av+=a...

...定义一个包括10个元素的整形数组,通过键盘输入10个数据存储在数组...
答:include<stdio.h> define N 10 //定义数组元素个数 main(){ int a[N],i,max;printf("请输入%d个数组元素:\n",N);scanf("%d",&a[0]);max=a[0];//把第一个数值暂时记录为最大值 for(i=1;i<N;i++)//把输入的数存入数组 { scanf("%d",&a[i]);if(a[i]>max)//寻找最...

编程:定义一个有10个数组元素的整型数组,并从键盘接收10个数据到数组...
答:include<stdio.h> int main(){ int i,a[10];for(i=0; i<10; i++)scanf("%d",&a[i]);for(i=0; i<10; i++)printf("%d ",a[i]);printf("\n");return 0;}

C语言:随机产生一组十个整数,再从键盘输入一个值,利用指针方式求出数...
答:include <stdlib.h> include int main(){ int i,x,n=0,a[10],*p;srand(time(0));for(i=0; i<10; i++){ a[i]=rand()%100;printf("%d ",a[i]);} printf("\n");scanf("%d",&x);for(p=a; px)n++;printf("数组中大于%d的数有%d个\n",x,n);return 0;} ...

C语言 定义一个10个元素的int类型数组,从键盘上输入任意10个int类型的...
答:include<iostream> using namespace std;int main(){ int [] arr=new int[10];int max=0,min=0,sum=0,average=0;int a3=0,a5=0,a7=0;int i,j,k;for(int i=0;i<10;i++){ cin>>arr[i];} max=arr[0];min=arr[0];for(int j=0;j<10;j++){ if(arr[j]>max)max=...

定义一个数组,用循环实现从键盘上输入10个正整数并放入数组。怎么做...
答:1、首先可以使用String[] s=new String[6],定义一个长度为6的字符串数组,定义之后,可以对字符串数组进行赋值,如下图所示。2、使用int[] i=new int[6],定义一个长度为6的整型数组,其它类型类似,如下图所示。3、也可以在定义数组的时候,直接对数组进行赋值,使用String[] str=new String[...

...实现以下功能:定义一个有10个元素的一维数组,在程序运行期间,输入...
答:int arrary[10];int i;for(i=0;i!=10;i++){ printf("输入第%d个元素:",i+1);scanf("%d",&arrary[i]);printf("第%d个元素的值是:%d.\n\n",(i+1),arrary[i]);} int _max=max(arrary,10);int _min=min(arrary,10);float _avarge=avarge(arrary,10);printf("最大数是:...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网