㈠ c语言 指针搜索数组里的数
intmy_max=-INT_MAX;以上未经调试,仅示意,供参考.
intrnd=0;
//第一步取得数组里最大数
for(i=0;i<sizeof(arr),++i){
if(arr[i]>my_max)my_max=arr[i];
}
//第二步生成随机数
srand(time());
rnd=(int)(my_max*((double)rand()/RAND_MAX));
for(i=0;i<sizeof(arr);++i){
if(arr[i]>rnd)printf("%d ",arr[i]);
}
㈡ C语言指针查找最大最小值
#include<stdio.h>
intmain()
{
inta[10],i,n,j;
int*q;
q=&a[0];
for(i=0;i<10;i++)
{
printf("请输出1个整数:");
scanf("%d",&a[i]);
}
for(j=0;j<9;j++)//这两个for循环的作用是将10个数从大到小排序
{
for(i=j+1;i<10;i++)
{
if(*(q+j)<*(q+i))
{
n=*(q+j);
*(q+j)=*(q+i);
*(q+i)=n;
}
}
}
printf("Themax=%d,Themin=%d ",*q,*(q+9));//输出第一个和最后一个数
}
㈢ C语言中怎样用指针找出一维数组中的最大值和最小值并输出它们的下标
1、新建一个工程和.c文件,并且输入主函数和头文件。
㈣ C语言中用指针设计,在一个数组中查找一个数,然后输出这个数在数组中第几位数
#include <stdio.h>
#include<stdlib.h>
int searchPos(int arr[], int len, int e) {
for (int i = 0; i < len; i++) {
if (arr[i] == e)
return i + 1;
}
return -1;
}
int main() {
int len, e, pos;
printf("请输入数组长度:\n");
scanf("%d", &len);
int* arr = (int*)malloc(sizeof(int) * len);
printf("请输入%d个数组元素:\n",len);
for (int i = 0; i < len; i++) {
scanf("%d", &arr[i]);
}
printf("请输入要查找的数:\n");
scanf("%d", &e);
pos = searchPos(arr, len, e);
printf("要查找的数在第%d位。\n", pos);
return 0;
}
㈤ c语言能否查询指针指向的数据
#include<stdio.h>
voidmain()
{
inti,temp;
inta[]={4,5,6,2,1,3,8,7};
int*min; //保存最小值
intpos; //记录最小值的位置
min=&a[0];
pos=0;
/*查找最小数*/
for(i=0;i<9;i++)
{
if(a[i]<*min)
{
*min=a[i];
pos=i;
}
}
/*交换两个数*/
if(pos==1)
{
temp=a[pos];
a[pos]=a[i];
a[i]=temp;
pos=1;
}
}
㈥ C语言用指针在数组中查找特定值
#include<stdio.h>
int find(int *p,int n,int b)
{
int i=0;
while(i<n)
{
if(*p++==b)
return i;
i++;
}
return -1;
}
int main()
{
int k;
int a[]={1,2,3,4,5};
int b;
printf("输入要查找的数:");
scanf("%d",&b);
k=find(a,sizeof(a),b);
if(k==-1){
printf("数组中没有这样的值\n");
}else{
printf("下标=%d\n",k);
}
return 0;
}
㈦ 在数组中查找指定元素指针与数组C语言
调试程序的时候我输入了一些输出语句,后面跟有/* */的,你用的时候删掉就可以了。
记得采纳最佳答案!
#include "stdafx.h"
#include <stdio.h>
int main(void)
{
int i, index, n, res, x;
int repeat, ri;
int a[10];
int search(int list[], int n, int x);
printf("输入重复次数:\n"); /* */
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){ //repeat是重复程序次数
printf("重复次数为%d,输入数组元素个数:",repeat); /* */
scanf("%d", &n); //n是数组元素个数
printf("数组元素个数为:%d\n请顺序输入数组元素\n",n); /* */
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("请输入要查找的数\n"); /* */
scanf("%d", &x); //x是要查找的数
printf("要查找的数为:%d\n",x); /* */
/*---------*/
res=search(a,n,x);
if(res != -1) //res的值就是search函数的返回值
printf("index = %d\n", res);
else
printf("Not found\n");
}
return 1; /* */
}
int search(int list[], int n, int x){
int q=-1;
for(int i=0;i<n;i++)
if(list[i]==x) {q=i;break;}
return q;
}
㈧ C语言 编写程序,在一个整型数组中查找某个数并将其删除。(要求用指针)
写了个,全都用指针。
#include<stdio.h>
intmain()
{
inta[10],n;
int*p1,*p2;
printf("Input10numbers:");
for(p1=a;p1<a+10;p1++)
scanf("%d",p1);
printf("Inputnumber:");
scanf("%d",&n);
for(p1=a;p1<a+10;p1++)
{
if(*p1==n)
{
for(p2=p1+1;p2<a+10;p2++)
*(p2-1)=*p2;
break;
}
}
if(p1==a+10)
{
printf("Notfound! ");
}
else
{
printf("Found! Thenewarray:");
for(p1=a;p1<a+9;p1++)
printf("%d",*p1);
}
return0;
}
㈨ C语言:用指针的方法查找数组中某个数在数组的位置
对于函数:int* find(int a[], int value),其中a为整型数组首地址,value是被检验值。我们可以利用指针a间接引用数组第一个元素的值,并将其与value比较,比较完后,将指针向后移动,再通过间接引用的方式比较下一个元素值,依次下去,直到在整型数组中找到被检验值或者整型数组所有元素比较结束为止。
那么这里有个问题,我们如何通过指针知到整型数组什么时候结束呢?对于整型数组而言,没有办法,所以我们必须先知道整型数组的长度,可以在参数中给出,也可以在主函数定义中知晓。
程序如下:
int* find(int a[], int value)
{
int i=0,*p=a;
for(i=0;i<=9;i++)
{
if(*p==value)
return p;
else
p++;
}
if(i>=10)
return 0;
}
main()
{
int c[10]={1,2,3,4,5,6,7,8,9,0};
int n;
scanf("%d",&n);
printf("%x %d",find(c,n),*(find(c,n)));/*第一个为函数返回地址,第二个为函数返回地址里的值*/
getch();
}
另外,我们测试一个程序或者函数是否正确不在于其能否正确运行,而在于其运行的结果是否符合我们的预期。针对上述程序,测试方法如下:
输入任意一个数,如果这个数在数组C内,看是否能够打印出16进制的地址数和与输入值相同的数;如果不在数组C内,看是否返回值为0的地址。