c语言,编写函数int* find(),找出一维整型数组中的最大数,返回其指针。

作者&投稿:殷秒 (若有异议请与网页底部的电邮联系)
C语言定义一个函数,找出一维数组中的某个数的个数后返回。初学者,暂时未学到指针。请大家帮帮忙/~

#include int find(int *a,int n,int f){ int sum=0; for(int i=0;i<n;i++) { if(a[i]==f) sum++; } if(sum==0) return -1; else return sum;}int main(){ int a[1000]; int n;int f; printf("请输入字符组的大小:
"); scanf("%d",&n); printf("请输入%d个数字:
",n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } printf("请输入要查找的数字:
"); scanf("%d",&f); printf("%d出现的次数是:%d
",f,find(a,n,f)); //scanf("%d",&f);}不懂可以追问。

1、新建一个工程和.c文件,并且输入主函数和头文件。

2、定义全局变量。

3、定义变量类型。

4、用两个for语句给数组元素赋值。

5、调用求最小值的函数。

6、函数的总体流程如下图。

7、在主函数中输出结果,编译、运行,得到最后结果。

#include <stdio.h>
int* find(int *a,int n)
{int *p,*p1;
 for(p=p1=a;p<a+n;p++)
   if(*p>*p1)p1=p;
 return p1;
}
int main()
{int a[10]={12,34,23,5,34,31,32,33,45,15},*p;
 p=find(a,10);
 printf("Max=a[%d]=%d
",p-a,*p);
 return 0;
}


/********************************
 *该函数有所欠缺,不完全符合要求,
 *仅支持返回第一个最大的数的指针
 *很久没写c了
 *******************************/
int* find(int[] a)
{
    int* p = null,big=null;
    p=a;
    big=a;
    int length = sizeof(a)/sizeof(int);
    length--;
    while(length--){
        big = *p>*big?p:big;
        p++;
    }
    return big;
}


对像我一样的初学者而言,指针数组、数组指针,听名字就很容易傻傻分不清。对于数组与指针的不同,笔者已经在上一篇文章里面已经做出了相对简单的解释。那么,“指针数组”和“数组指针”这俩货,又是个啥奇怪的东西呢?

为了防止混淆,我们先从命名上给一个分辨它们的“真实身份”的小技巧。这个技巧就是:看名字的最后两个字。比如“数组指针”,它就是指针;而“指针数组”,是一个数组。在不了解它们有啥用的情况下,先分清楚两种相似概念的不同是一件有必要的事情。

在“验明正身”之后,我们首先来谈谈指针数组的详细概念以及基础用法。

前面已经有两位高手做出了回答,我运行了一下,《怺逺恒暒》有时候得不到正确的结果;《kaixingui2012》的不能运行,提示类型不对。不知道什么原因,也许是我的版本有问题?
我也做了一个,感觉运行还是不错的。请比较吧!
#include "stdio.h"
double fun(double a[],int n,int *max,int *min);/*函数原型声明:其中a为数组,
n为数组元素个数,max指向最大数,min指向最小数,函数返回值为平均值*/
int main()
{
double b[10],aver;
int x,y=10,max=0,*ma=&max,min=0,*mi=&min;
for(x=0;x<y;x++){b[x]=x*(x-8.25)*0.1;printf("数%d=%f\n",x,b[x]);}
aver=fun(b,y,ma,mi);
printf("最大的数为第%d个数(%f),最小的数为第%d个数(%f),平均值为%f",*ma,b[*ma],*mi,b[*mi],aver);
return 0;
}
double fun(double a[],int n,int*max,int*min)
{
int i;
double sum=0;
double max1=a[0],min1=a[0];
*max=0;
*min=0;
for(i=0;i<n;i++)
{
if(a[i]>max1){*max=i;max1=a[i];}
if(a[i]<min1){*min=i;min1=a[i];}
sum=sum+a[i];
}
printf("sum=%f,n=%d\n",sum,n);
return sum/n;


C语言:写一函数,用“冒泡法”对输入的10个字符按由小到大顺序排列_百度...
冒泡排序需要用到两层循环,第一层循环遍历数组中的元素,第二层则进行两两比较,如果顺序不对就要对其进行换位,直到排序完成:4、最后执行程序观察结果,按下crtl+F5弹出程序,随意输入10个数,按下回车键执行结果,此时就可以看到排序后的结果了。以上就是c语言冒泡排序程序的演示:...

编写函数isprime(int a),用来判断自变量a是否为素数.若是素数,函数返回...
using namespace std; bool isprime(int a){ if(!a||a==1) return 0; for(int i=2;i<=sqrt(a);i++) if(!(a%i)) return 0; return 1;} int main(){ int n; cin>>n; for(int i=1,m;i<=n&&cin>>m;i++) if(isprime(m)) cout<<m<<...

2. 编写函数,查找并返回数组array中前n个数的最大值下标 函数原型:int...
include <iostream> using namespace std;int maxinarray(int array[], int n){ int t,k;k = 0;for(int j = 1;j < n;j++){ if(array[j] > array[k])k = j;} return array[k];} int main(){ \/\/int y = 3;int x[3];for(int i = 0;i < 3;i++)cin >> x...

c语言中如何用子函数调用结构体中的变量实现数据的输入与输出。_百度...
用子函数实现结构体数据的输入与输出:对于多数子函数的输入与输出,有一定规律性可言。方法1:void型不传值传址调用与声明。main中声明void date_in(),void date_pout()。函数定义前一定在main()前先定义结构体变量(全局变量),然后定义输入或输出程序段。此时再main()调用即可。如下:struct ...

写一个C语言函数?
以下是一个使用栈和队列的函数,用于提取字符串数组中的阿拉伯数字并将其倒序添加到原字符串的剩余部分末尾:使用示例:from collections import deque def extract_and_reverse_strings(strings):stack = []queue = deque()result = ""遍历字符串数组 for string in strings:for char in string:判断...

编写函数把华氏温度转为摄氏温度,公式为C=(F-32)*5\/9,在主函数中输入和...
按照你的要求编写的华氏温度转为摄氏温度的C语言程序如下 include<stdio.h> float FtoC(float F){ return (F-32)*5\/9.0;} int main(){ float F,C;printf("请输入华氏度:\\n");scanf("%f",&F);\/\/输入华氏度 C=FtoC(F);\/\/调用FtoC函数实现华氏度转摄氏度 printf("摄氏度为%.2f",C...

数据结构中In(ch,字母集)是什么函数
类似于线性表里的按值检索函数,一个for循环就搞定了,要自己实现的,函数库没有这个函数的。

用C语言编写一个输入身高(cm)输出身高英寸
include <stdio.h> int main(){ float height = 0;printf("请输入身高单位是厘米: \\n");scanf("%f", &height);printf("身高为 %f英寸 ", height\/2.54);return 0;}

C语言中的标准函数有哪些
数据块读写函数 fread (buffer,size,count,fp);fwrite(buffer,size,count,fp);参数说明:buffer:是一个指针。对fread 来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址(均指起始地址)。size: 要读写的字节数。count: 要进行读写多少个size字节的数据项。fp: 文件型指针...

c语言一个函数返回多个值
编写返回多个值的C语言函数,可以考虑采用结构体的方式去实现。如果返回的数个数值的数据类型不一致,可以通过定义全局变量实现有多个返回值的C语言函数,也可以考虑把要求返回的数个值定义成一个结构体,然后同样以传递结构体指针方式把结构体的指针传递给形参结构体指针,那么函数中对形参结构体的修改即是...

台湾省15344624684: c语言编写函数int find()在指针p所指的数组中查找整型数x,如果x在数组中,则该函数返回1.n为数组的大 -
肥婷信达: int find(int *p,int n,int x);请问一下,你这是函数声明吗?如果是!就错在这了,声明函 数应该在main函数外!在main函数外声明好啦,在主函数里调用就可以啦!还有先调用后使用调用函数的返回值!在调用之前先传参!改如下! # ...

台湾省15344624684: C语言 用指针编写在数组中查找指定值指针的函数 -
肥婷信达: 对于函数:int* find(int a[], int value),其中a为整型数组首地址,value是被检验值.我们可以利用指针a间接引用数组第一个元素的值,并将其与value比较,比较完后,将指针向后移动,再通过间接引用的方式比较下一个元素值,依次下去,直到...

台湾省15344624684: C语言,编写find函数,在一维数组x中查找是否有key,若有返回该数组元素下标,否则返回1. -
肥婷信达: #include<stdio.h> int find(int *a,int n,int key) //int a[10]里的10没有意义,直接写int a[]或int *a,一个意思 {int i;for(i=0;i<n;i++){if(a[i]==key)return i;}return -1;//我觉得返回-1更合理,非要返回1的话你自己改吧 } void main() {int n,i,m;int a[10];...

台湾省15344624684: C语言求编程 -
肥婷信达: #include int find(char s[],char c) { int i; for(i=0;s[i]!='\0';i++) { if(s[i]==c) return 1; } return 0; } int main() { char a[100],c; scanf("%1s%s",&c,a); if(find(a,c)) printf("can find!\n"); else printf("can not find!\n"); return 0; }

台湾省15344624684: 写一通用函数,该函数从一个一组整形数组中寻找指定的一个数,若找到,返回该数在数组中的下标值,否则返 -
肥婷信达: int find_index(int[] a, int b) //a为数组,b为指定数 { int len = sizeof(a) / sizeof(unsigned int); //获得数组长度 for (int i=0; i<len; i++) { if (b==a[i]) return i; } return -1 }

台湾省15344624684: 菜鸟求助 - --C语言递归函数返回值 -
肥婷信达: ...从汇编的角度来说,函数返回值,其实就是函数返回后,cpu中eax的值.在C语言等语方中,在函数中写了返回语句,那么函数在返回时,就会对eax作最后赋值.int find(int a,int b) { if(b<=0) return 100; else find(--a,--b);/这里为什么不用返回...

台湾省15344624684: 用C语言怎样写一个二分查找函数? -
肥婷信达: 楼上的话好难听啊 类似于这样的 int find(int R[],int low,int high,int t) {int mid;if(high-low<=1){if(t==R[high])return high;if(t==R[low])return low;return -1;}mid=(low+high)/2;if(t<=R[mid])return find(R,low,mid,t);else return find(R,mid+1,high,t); }

台湾省15344624684: C语言; 编写一个函数,用指针方法实现功能 -
肥婷信达: int find(char* source/*源串*/, char* target/*子串*/)//找到返回在源串中的位置,未找到返回-1,如果要改为找到返回1,把return i改为return 1; { int i,j; int s_len=strlen(source); int t_len=strlen(target); if(t_len>s_len) { return -1; } for(i=0;i<=s_len-t_len...

台湾省15344624684: C语言 函数find功能是:在指针p所指数组中,查找值为x的元素,找到后,返回该元素的下标,否则返回 - 1,改正程序中语句错误,能够正确运行、 -
肥婷信达: 答案:(1) 2行语句改为 int i=0;(2) 4行语句改为 while(*(p+i)!=x);(3) 7行语句改为 return i .分析:在函数find中,变量i没有赋初值,按照规则任意取值,所以程序不正确.在while循环条件中*p+i表示指针p指向地址元素值加i,不能起着指针移动作用,改为*(p+i)表示数组第i个元素值起着顺序查找作用.在函数中如果找到查找元素返回其下标,7行应该是return i ,而不是return 1.

台湾省15344624684: 急求!!!C语言编程.编写一个函数在字符数组中查找指定字符
肥婷信达: #include&lt;stdio.h&gt; int find(char ch[], char data); void main() { char ch[100]; char data; printf("input ch[]:"); gets(ch); printf("input data:"); data = getchar(); printf("%d\n", find(ch, data)); } int find(char ch[], char data) { int i; for (i = 0; ch[i] != '\n'; ...

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