无解。必须增加一个长度参数。(下面以int整数数组举例)如果不想增加形参,那么还有种办法,我自己想到的,可以模仿字符串以'\0'结尾,你可以在最后一个元素后面增加一个附加元素,表示结束,函数以此统计长度,当然代价么就是增加程序运行耗时,增加数组长度,增加开发工作量,麻烦,不过好处嘛---调用接...
int i,n,a1[N],a2[N]; printf("请输入数组1的元素个数:"); scanf("%d",&n); printf("请输入%d个数组元素",n); for(i=0;i<n;i++) scanf("%d",&a1[i]); printf("数组1的平均值为%.4f.\n",avg(a1,n)); printf("请输入数组2的元素个数:"); scanf("%d",&n); printf("请输入%...
include<stdio.h>#define N 10void main() { int a[N],i,n,s,*p; for ( i=0;i<N;i++ ) a[i]=i+1; for ( i=0,p=a,s=n=0;i<N;i++,p++ ) if ( *p%2==0 ) { n++; s+=*p; } printf("奇数个数%d,奇数之和%d\n",n,s);} ...
用指针求两个数组的第一个相同元素2. 在已知两个从小到大有序的数组中寻找都出现的第一个元素。 如:数组a[ ]={1,3,5,7,9,13,15,27,29,37}; 数组b[ ]={2,4,6,8,10,13,14,27,29,37}; 第一个相同的元素是13。 要求:使用指针实现。
//求最大值du函数 int max_func(int a[],int n){ int i,max;for(max=a[0],i=1;i<N;i++) //初始zhi默认最大值为a[0],遍历数组元素 if(max<a[i]) //如果当前最大值<当前数组元素,则dao将该元素赋值给max max=a[i];return max;} //求最小值函数 int min_func(int a...
int *p p=array+1 p=numberint *p\r\np=array+1\r\np=number 解析:函数max_min_value()中用到了指针变量p,显然应在第一个空格处填int *p。函数 max_min_value()中的for循环逐一把数组中的元素与max和min的当前值进行比较。max和 rain的初值是数组的第1个元素值,第1次比较应与第2个元素比较,即array...
int neg(int dat[]){ int sum = 0;int * d = dat;for(int i = 0; i < 10; i++) { if(*d < 0) sum++;d++;} return sum;} int main(void){ int data[10] = {-100, 200, -3, 5, 4, 6, 7,-9, 15,-33};int n = neg(data);printf("%d\n", n);return...
下面的程序定义一个整型指针p,指向数组a,数组名a与&a[0]是等价的,也就是*p等价于数组的第一个元素a[0]。然后在for循环中,输出*p,然后指针p自加运算,指向数组的下一个元素,这样就输出数组a中的各个元素了。include<stdio.h>#include<stdlib.h>int main(){int a[10]={15,76,88,38,...
include "stdio.h"int finder(int a[],int n){ int max,i,*p;max=a[0];for(i=1,p=a+1;i<n;i++,p++)if(max<*p)max=*p;return max;} void main(){ int a[10]={231,321,532,63,1,41,753,12,41,90};printf("%d\n",finder(a,10));} ...
include <stdio.h> int main(){ int a[10],sum,*p;for(p=a,sum=0;p<a+10;++p){ scanf("%d",p);sum+=*p;} for(p=a;p