精华内容
下载资源
问答
  • 用java编写在主函数中调用数组
    2021-02-26 10:44:08

    importjava.util.Scanner;publicclassja{publicstaticvoidmain(Stringargs[]){Scannerscanner=newScanner(System.in);System.out.println("请任意输入数字");arrayNumbers=scanner.ne...

    import java.util.Scanner;

    public class ja

    {

    public static void main(String args[])

    {

    Scanner scanner = new Scanner(System.in);

    System.out.println("请任意输入数字");

    arrayNumbers = scanner.nextLine();

    ArrangedNumbers arrangeNumbers = new ArrangedNumbers();

    int[] arrayNumbers = arrangeNumbers.compareNumber(arrayNumbers);

    arrangeNumbers.outputNumber();

    }

    }

    class ArrangedNumbers

    {

    /**

    *对数字进行排序

    */

    public int compareNumber(int[] arrayNumbers)

    {

    for (int i=0;i

    {

    for (int j=0;j

    {

    if(arrayNumbers[j]>arrayNumbers[j+1])

    {

    int temp;

    temp = arrayNumbers[j];

    arrayNumbers[j] = arrayNumbers[j+1];

    arrayNumbers[j+1] = temp;

    }

    }

    }

    return arrayNumbers[];

    }

    /**

    *按升序排列输出

    */

    public void outputNumber()

    {

    System.out.println("按升序排序:");

    for(int i=0;i

    {

    System.out.println(arrayNumbers[i]);

    }

    }

    }

    我是这样编写的.编译不对

    展开

    更多相关内容
  • java如何在函数中调用主函数数组

    千次阅读 2021-03-09 23:37:26
    展开全部import java.util.Scanner;interface getGrade{public void finGrade();}class First implements getGrade{int a[];public First(){}public First(int grade[]){a=grade.clone();}public void finGrade(){...

    展开全部

    import java.util.Scanner;

    interface getGrade{

    public void finGrade();

    }

    class First implements getGrade{

    int a[];

    public First(){}

    public First(int grade[]){

    a=grade.clone();

    }

    public void finGrade(){

    int sum;

    for (int i=0;i<=4;i++)

    {

    sum=sum+a[i];

    }

    int num;

    num=sum/5;

    System.out.println("平均636f70793231313335323631343130323136353331333335313736成绩为:"+num);

    }

    };

    class Second implements getGrade{

    int a[];

    public Second(){}

    public Second(int grade[]){

    a=grade.clone();

    }

    public void finGrade(){

    int j,k,t;

    for (j=1;j<5;j++)

    for (k=0;k<5-j;k++)

    if (a[k]>a[k+1])

    {

    t=a[k];

    a[k]=a[k+1];

    a[k+1]=t;

    }

    a[0]=0;

    a[4]=0;

    int sun;

    for (int i=0;i<=4;i++)

    {

    sun=sun+a[i];

    }

    int nun;

    nun=sun/3;

    System.out.println("平均成绩为:"+nun);

    System.out.println("(去掉一个最高分和一个最低分)");

    }

    };

    public class exer4 {

    public static void main (String args[]){

    System.out.println("请依次输入评委所给的分数");

    System.out.println("(默认为五个评委)");

    int a[] = new int [5];

    Scanner reader = new Scanner(System.in);

    int x = reader.nextInt();

    int i;

    for (i=0;i<=4;i++)

    a[i]=x;

    First fir=new First(a);

    Second sec=new Second(a);

    fir.finGrade();

    sec.finGrade();

    }

    }楼上设置全局变量是个方法,这样进行参数传递也是一种方法。

    展开全文
  • 将数组作为函数参数调用

    千次阅读 2021-10-15 14:40:41
    数组作为参数在函数中调用的写法

    数组与单个元素一样,也可以作为参数被函数调用,但其用法与单个元素调用存在不同。

    对于单个元素调用,如不使用引用&或者指针,则在函数中对形参的操作不会反映到实参上,即实参不会发生改变,具体用法详见上一篇博客。

    而对于数组调用,函数的形参看似是一个新的数组,但并未分配新的内存。因为数组的名字代表着数组的首地址。因此**在数组名作函数参数时所进行的传送只是地址的传送,也就是说把实参数组的首地址赋予形参数组名。**形参数组名取得该首地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。
    在这里插入图片描述
    因此,形参数组是一个虚拟数组,其数组的地址指向了实参数组。如a[0]与b[0]都指向了同一个地址。在对形参数组进行操作时,实参数组的值也会相应的发生改变。

    在函数调用数组的方法
    1.对于一维数组:

    void invert(int x[]){
    	//函数部分 
    }
    int main(){
    	int a[10];
    	invert(a);
    	//主函数调用部分 
    }
    

    注:
    1.形参与实参的类型必须一样,如int对应int。
    2.主函数调用invert函数时只需使用实参数组的名字,代表数组的地址。
    3.形参数组可以不规定长度,但实参数组会规定长度。

    另一种写法:

    void invert(int x[10]){
    	//函数部分 
    }
    int main(){
    	int a[10];
    	invert(a);
    	//主函数调用部分 
    }
    

    可以规定好形参数组的长度。但由于形参数组是虚拟数组,其地址与实参数组的地址对应,故形参数组的长度其实并无太大意义。

    void invert(int x[110]){
    	//函数部分 
    	for(register int i=1;i<=100;i++){
    		x[i]=0;
    	} 
    }
    int main(){
    	int a[10];
    	invert(a);
    	//主函数调用部分 
    }
    

    若形参数组长度大于实参数组,则可能导致对形参数组的部分操作没有意义。如上文x[11]到x[100]没有意义。

    若形参数组长度小于实参数组,可能导致部分实参数组未被操作。

    但无论长度如何,关键都在于对形参数组操作的边界设置是否合理,如下文的代码并无问题。

    void invert(int x[10]){
    	//函数部分 
    	for(register int i=1;i<=100;i++){
    		x[i]=0;
    	} 
    }
    int main(){
    	int a[100];
    	invert(a);
    	//主函数调用部分 
    }
    

    2.对于多维数组:
    在函数定义时对形参数组可以指定每一维的长度,也可省去第一维的长度。因此,以下写法都是合法的:

    void invert(int sum[][110])
    
    void invert(int sum[110][110])
    
    展开全文
  • C语言函数中数组传递

    千次阅读 2019-07-02 17:17:14
    #include <stdio.h> typedef unsigned char uchar; //---------------------------------------------------全局...//---------------------------------------------------子函数声明 void func3(void)...

    用形参返回指针
    用函数返回
    用全局变量返回
    用引用返回C++

    #include <stdio.h>
    typedef unsigned char uchar;
    //---------------------------------------------------全局变量 
    uchar *t;
    //---------------------------------------------------子函数声明 
    void func3(void); 		//利用全局变量返回数组 
    void func2(uchar *s); 	//利用指针返回数组 
    uchar *func1();			//利用指针函数返回数组 
    void func0(uchar *&r);	//利用引用返回数组 
    //---------------------------------------------------主函数 
    int main(){
    	//利用全局变量返回数组 
    	printf("利用全局变量返回数组:");
    	func3();
    	printf("%#.2X %#.2X\n",t[0],t[1]);
    	//利用指针作为形参返回数组 
    	printf("利用指针形参返回数组:");
    	uchar *p;
    	func2(p);
    	printf("%#.2X %#.2X\n",p[0],p[1]);
    	//利用指针函数返回数组
    	printf("利用指针函数返回数组:");
    	uchar *q;
    	q=func1();
    	printf("%#.2X %#.2X\n",q[0],q[1]);
    	//利用引用返回数组
    	printf("利用引用类型返回数组:");
    	uchar *r;
    	func0(r);
    	printf("%#.2X %#.2X\n",r[0],r[1]);
    }
    
    //---------------------------------------------------子函数定义 
    //利用全局变量返回数组 
    void func3(void){
    	uchar a[]={0xA5,0xC8,0x1E,0xFF};
    	t=a;
    }
    
    //利用指针作为形参返回数组 
    void func2(uchar *s){
    	uchar a[]={0xA5,0xC8,0x1E,0xFF};
    	for(int i=0;i<4;i++){
    		s[i]=a[i];				//s[i]即*(s+i) 
    	}
    }
    
    //利用指针函数返回数组 
    uchar *func1(){
    	uchar a[]={0xA5,0xC8,0x1E,0xFF};
    	// 注意可能出现warning: function returns address of local variable,可加上static解决
    	// static uchar a[]={0xA5,0xC8,0x1E,0xFF};		
    	return a;
    }
    
    //C++中利用变量类型引用返回数组
    void func0(uchar *&r){
    	uchar a[]={0xA5,0xC8,0x1E,0xFF};
    	r=a;
    } 
    

    在这里插入图片描述

    注意:
    利用指针函数返回数组时,用指针变量接收返回的数组名(不能用数组名来接收数组名),然后要把指针变量变还原为应该传回的数组再进行调用(若直接调用指针变量,则存在潜在的漏洞:地址复用,容易出现隐藏的bug)。

    //利用指针函数返回数组
    #include <stdio.h>
    typedef unsigned char uchar;
    uchar *func1(){
    	uchar a[]={0xA5,0xC8,0x1E,0xFF};	
    	return a;
    }
    int main(){
    	uchar *pa; 
    	uchar a[4];
    	pa = func1();			// 指针接收返回的数组名,可以直接调用指针,但存在地址复用的隐藏bug的风险
    	for(int i=0;i<4;++i){	// 先将指针转为数组再进行调用
    		a[i] = *(pa+i);
    	}
    	return 0;
    }
    

    Primer C++ Page184返回数组指针的函数

    展开全文
  • 下面的函数是用于测试,改变子函数中数组的数值,是否会改变主函数的值的两种方法。 #include&lt;iostream&gt; #include&lt;cstdio&gt; using namespace std; //下面用的是冒泡排序方法,利用...
  • c++函数调用数组

    千次阅读 2021-03-31 14:10:16
    int fun(int a[3][2]) { } int main() { fun(a); }
  • 答:一般子函数调用,都有输入变量,再返回...在调用的时候 在主函数中输入: [A B]=ima...答:1、当你没有把你编辑好的子函数放入正确的文件夹时,不管你输入的程序是否有错,当你执行时,系统都会提示“没有定义...
  • 调用函数返回数组

    2020-07-19 16:12:51
    调用函数返回数组 1、传递函数 #include<stdio.h> #define maxn 4 void rink(int a[maxn]) { for(int i=0;i<maxn;i++) a[i]=a[i]+1; } int main() { int num[maxn]={4,6,7,8} rink(num); for(int i=0...
  • int fid(int c[10][7]){int i,j;for(i=1;i<=10;i++){for(j=3;j<=7;j++)c[i][j]=c[i][j]+c[i][j+1];}for(i=1;i<=10;i++)for(j=1;j<=7;j++)printf(“%d”,c[i]...}void main(){int a[10][7],i,j,k=0,x=0;c...
  • ![图片说明](https://img-ask.csdn.net/upload/202006/15/1592211003_266160.jpg)
  •  当一个函数需要访问一个数组元素时,出于上述原因,往往也希望令传入的参数尽可能的少(至少我是这样...)。  首先,引出一个例子,对于std::vector<typename>来说,往往只需要传递一个参数就足够...
  • #include<stdio.h> void display(int b[],int n){ int i; for(i=0;i<n;i++) printf("%4d",b[i]); } void newod(int b[],int n){ int c[n/2],i,j=0; for(i=0;i<... int a[5]={10,20,.
  • c语言经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度。 例如: #include void func(int n, char str[ ][5] ) { int i; for(i = 0; i < n; i++) printf("/nstr...
  • C语言之调用函数传递二维数组

    千次阅读 2021-05-21 09:25:08
    转置二维数组的实例代码,探究二维数组作为参数...void main(){//在主函数内声明被调函数void convert(int array[][3]);int i,j;printf("输入数组:\n");for(j=0;jfor(i=0;iscanf("%d",&array[i][j]);printf("\n"...
  • 在c++函数文件名没有特殊讲究,文件添加工程目录便能使用 对函数的要求有三点 函数的完整文件 输入参数的定义 函数声明加入头文件 1.函数的完整文件 #include <opencv2/opencv.hpp> using namespace ...
  • 首先还是用一道题目来更好的了解如何做到main函数中数组通过什么方式使得其在自定义的一个函数中能够使用。 题目:在main函数中定义一个数组并为其赋值,然后自定义一个函数order(),使得main函数中数组能够在...
  • C语言自定义函数返回数组的方法(图文详解)最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢?能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下:直接返回str数组名(注意不需要加...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼第一次用多个函数、、#includevoid SCANF(int i;int a[10]);void PRINTF(int i;int a[10])main(){SCANF();PRINTF()}void SCANF(){ int i;int a[10];for(i=0;i<10;i++)...
  • 在C++中用函数调用二维数组

    千次阅读 2019-11-09 10:55:45
    函数调用二维数组 #include #include using namespace std; void fun(int a[3][3]); int main() {  int b[3][3] = {1,1,1,2,2,2,3,3,3};  fun(b); } void fun(int a[3][3]) {  int i,j;  for ...
  • C语言函数调用二维数组,指针问题

    千次阅读 2021-05-25 04:35:44
    话题:C语言函数调用二维数组,指针问题回答:正如楼下所言 int **p ,定义的p是一个指向int*型的指针int (*p)[1]是一个指向数组的指针 数度为1假如定义成 deal(int **p),传参数时要加类型转换: deal((int**)a);...
  • 数组作为参数传递时可以,在定义的函数中可以改变主函数中数组的值。 #include<stdio.h> #include<string.h> void swap(char a[],char b[]) { char t[100]; strcpy(t,a);strcpy(a,b);strcpy(b,t); } ...
  • 函数返回一个一维数组, 定义的函数也应该为返回指针的函数。 ``` } */ int * getFunction() { static int a[5]; /* C语言不支持在函数外返回局部变量的地址,除非定义为static变量。 */ int i = 0; ...
  • 我想输出子函数里面的a数组,这段代码为什么不行呢? ``` #include #include char *fun() { char a[] = {'1','2'}; return a; } int main() { char *b; b = fun(); printf("%s", b ); } `...
  • 经常会遇到这种情况,在不同地方需要对处理后的数组内容多次进行显示,并且很多情况下并非显示数组里面的全部内容,而仅仅是想观察数组中的部分数据内容,若每次显示时都用printf函数写的话,未免太过麻烦了。...
  • #include using namespace std; #define N 5 void maxAndMin(int a[],int *max_p,int *min_p) { *max_p=a[0]; *min_p=a[0]; for(int i=1;i<N;i++) { if(a[i]>*max_p) *max_p=a[i]; if(a[i]<...
  • 函数中引用外部数组元素

    千次阅读 2020-10-29 21:42:51
    函数调用:int a[10]={3,7,9,11,0,6,7,5,4,2}; fun(a,10); 示例代码 #include <stdio.h> void fun(int arr[], int n) { int i = 0; for(i=0; i<n; i++) { printf("%d ", arr[i]);
  • #include <stdio.h> void ModifyArr(int array[],int n); int main() { int i,n=5; int a[5]={1,4,5,7,9}; for(i=0;i<n;i++) { printf("%d ",a[i]); } printf("\n"); ModifyArr(a,n);...
  • 啊,我太蠢了,debug了半天,找了很久原因,最后才被点醒。...先说原因:因为编译器会优先编译定义的变量,这样主函数中的b[]就得不他应该有的值,因为size必须得file函数调用后才有意义。 再说结论:size...
  • 请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的r。 例如:若c数组中的值为: 1 9 7 4 5 2 3 8 3 则返回主程序后r的值应为4.625000 请勿改动主函数main与...
  • C语言从函数返回数组

    2022-02-22 10:09:01
    C 语言不允许返回一个完整的数组作为函数的参数。但是,可以通过指定不带索引的数组名来返回一个指向数组的指针。如果想要从函数返回一个一维数组,必须声明一个返回指针的函数,如下: int * myFunction() { . . ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,518
精华内容 21,807
关键字:

怎么将函数里的数组调用到主函数中

友情链接: sci_loopback.rar