c语言自定义数组函数
1. c语言中自定义的函数中有数组,应该如何运用该函数
方法有2将该数组定义为全局变量,即:intg_arr;voidfun(){...}voidmain(){...}2.将该数组作为函数参数传递到自定义函数里,即:voidfun(intarr[]){...}voidmain(){intarr[10];fun(arr);}2. c语言 自定义函数 一维数组
#include "stdio.h"
#define N 30
void votes(int a[])
{
int i;
int n1=0,n2=0,n3=0;
for(i=0;i<N;i++)
{
switch(a[i])
{
case 1:
n1++;
break;
case 2:
n2++;
break;
case 3:
n3++;
}
}
printf("Votes of candidate 1 is %d.\n",n1);
printf("Votes of candidate 2 is %d.\n",n2);
printf("Votes of candidate 3 is %d.\n",n3);
}
int winner(int a[])
{
int i;
int n1=0,n2=0,n3=0;
for(i=0;i<N;i++)
{
switch(a[i])
{
case 1:
n1++;
break;
case 2:
n2++;
break;
case 3:
n3++;
}
}
if(n1>n2 && n1>n3)
return 1;
if(n2>n1 && n2>n3)
return 2;
if(n3>n1 && n3>n2)
return 3;
}
void main()
{
int array[N];
int i;
printf("Please input 30 votes:");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
votes(array);
printf("The winner is candidate %d.\n", winner(array));
}
3. C语言编程 自定义求数组中奇数、偶数之和的函数
void
fun(int
nums[],int
Len)/*Len是数组长度*/
{
int
i,CountJ,CountO;
CountJ
=
CountO
=
0;
for(i
=
0;i<Len;i++)
{
if(nums[i]%2
==
0)
CountO++;
else
CountJ++;
}
printf("偶数个数为:%d\n奇数个数为:%d\n",CountO,CountJ);
}
4. C语言初学者求助。。。关于自定义函数和数组
#include<stdio.h>
#defineMAX40
intcount(intscore[],intnum);
intread(intscore[]);
intmain()
{
intscore[MAX],count1,num,n;//变量名不能和函数名重复count变成count1
printf("请输入同学们的成绩,输入-1表示输入结束 ");
num=read(score);
n=num;
printf("一共有学生%d人 ",num);
count1=count(score,n);//修改
printf("高于平均分的学生有%d人 ",count1);//修改
return0;
}
intread(intscore[])
{
inti,n=0;
for(i=0;i<40;i++)
{
scanf("%d",&score[i]);
if(score[i]<0)
break;
else
n=n+1;
}
returnn;
}
intcount(intscore[],intnum)
{
inti,count1=0;////变量名不能和函数名重复count变成count1
floatave=0;
for(i=0;i<num;i++)
{
//if(score[i]>0)没有必要检查了
ave=ave+score[i];
/*
else
break;
*/
}
ave=ave/num;
for(i=0;i<num;i++)
{
if(score[i]>ave)
count1=count1+1;//修改
}
returncount1;//修改
}
5. c语言数组的定义
C语言支持一维数组和多维数组。如果一个数组的所有元素都不是数组,那么该数组称为一维数组。
在C语言中使用数组必须先进行定义,一维数组的定义方式为:类型说明符; 数组名 ;[常量表达式]。
其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符,方括号中的常量表达式表示数据元素的个数,也称为数组的长度。例如:
int a[10]; /* 说明整型数组a,有10个元素 */
float b[10], c[20]; /* 说明实型数组b,有10个元素,实型数组c,有20个元素 */
char ch[20]; /* 说明字符数组ch,有20个元素 */
对于数组类型说明应注意以下几点:
1、数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。
2、数组名的书写规则应符合标识符的书写规定。
3、数组名不能与其它变量名相同。例如:
int a;
float a[10];
是错误的。
4、方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0], a[1], a[2], a[3], a[4]。
5、不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。例如:
#define FD 5
// ...
int a[3+2],b[7+FD];
是合法的。但是下述说明方式是错误的。
int n=5;
int a[n];
6、允许在同一个类型说明中,说明多个数组和多个变量。例如:
int a,b,c,d,k1[10],k2[20];
(5)c语言自定义数组函数扩展阅读:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1]目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
6. C语言如何用一个自定义函数打印一个二维数组
二维数组无法作为参数直接传递给函数,但是可以利用二维数组内部数据的连续性,将二维数组的地址按照一维数组的方式传递给函数,并传入对应的行列数,从而实现函数内打印二维数组的效果。
以整型为例,具体方式如下:
voidprint_array(int*a,intm,intn)//a为一个m行,n列的二维数组的首地址。
{
inti,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%d,",a[i*n+j]);//a[i*n+j]也就是原始二维数组第i行第j列的元素。
}
printf(" ");//每行结束输出换行。
}
}
7. c语言中能不能定义函数数组
函数不可以定义为数组,可以用函数指针来操作。
1.函数指针的数组定义方法:返回值类型( * 指针变量名[Number]) (形参列表)。例如:double add(double a,double b){};double sub(double a,double b){};double mul(double a,double b){};double div1(double a,double b){};double (*oper_func[])(double, double) = {add,sub,mul,div1};//函数指针的数组定义2.函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。函数指针有两个用途:调用函数和做函数的参数。3.函数指针的声明方法为:返回值类型( * 指针变量名) (形参列表);“返回值类型”说明函数的返回类型,“( * 指针变量名)”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:int func(int x); /* 声明一个函数 */int (*f) (int x); /* 声明一个函数指针 */f = func; /* 将func函数的首地址赋给指针f */或者使用下面的方法将函数地址赋给函数指针:f = &func;赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。例子:
#include<stdio.h>int max(int x,int y){return (x>y? x:y);}int main(){ int (*ptr)(int, int); int a, b, c; ptr = max; scanf("%d%d", &a, &b); c = (*ptr)(a,b); printf("a=%d, b=%d, max=%d", a, b, c); return 0;}
8. C语言中如何定义数组
数组定义的三种方式
1、第一种
int []a = newint[5];
a[0] = 10;
2、第二种
int []c = newint[]{1,2,3};
3、第三种
int []i ={1,2,3,4};
4、错误的写法
int []i1 = [1,2,3,4];
System.out.println(Arrays.toString(c));
5、总之,具体的元素不能被【】包裹。【】包裹的应该是数组的数量。
(8)c语言自定义数组函数扩展阅读
数组的注意事项:
1、 数组中每个元素的数据类型必须相同,对于inta[4];,每个元素都必须为 int。
2、 数组长度 length最好是整数或者常量表达式,
3、 访问数组元素时,下标的取值范围为 0 ≤ index < length,
参考资料
网络-数组
9. c语言中能不能定义函数数组
函数不可以定义为数组,可以用函数指针来操作。
1.函数指针的数组定义方法:返回值类型( * 指针变量名[Number]) (形参列表)。
例如:
double add(double a,double b){}
double sub(double a,double b){}
double mul(double a,double b){}
double div1(double a,double b){}
double (*oper_func[])(double, double) = {add,sub,mul,div1};//函数指针的数组定义。
2.函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。
C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数。
(9)c语言自定义数组函数扩展阅读:
指针函数和函数指针的区别:
这两个概念都是简称,指针函数是指返回值是指针的函数,即本质是一个函数。我们知道函数都有返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。其定义格式如下所示:返回类型标识符*函数名称。
返回类型可以是任何基本类型和复合类型。返回指针的函数的用途十分广泛。事实上,每一个函数,即使它不带有返回某种类型的指针,它本身都有一个入口地址,该地址相当于一个指针。比如函数返回一个整型值,实际上也相当于返回一个指针变量的值,不过这时的变量是函数本身而已,而整个函数相当于一个“变量”。
参考资料:网络 -函数指针
10. C语言报错 关于自定义函数数组数组
#include
void paixu(int array[],int len)
{
int t,i,j;
for (i=0;i<len-1;i++)
{
for (j=0;j<len-1-i;j++)
if (array[j]>array[j+1])
{
t=array[j];
array[j]=array[j+1];
array[j+1]=t;
}
}
}
int main ()
{
int in,i,array[128];
printf("输入一个正整数:");
scanf("%d",&in);
printf("输入%d个整数:
",in);
for (i=0;i<in;i++)
{
scanf("%d",&array[i]);
}
paixu(array,in);
printf("排序后: ");
for (i=0;i<in;i++)
{
printf("%d ",array[i]);
}
return 0;
}