简单的数组作为函数参数的调用问题

问题描述

简单的数组作为函数参数的调用问题
#include
main()
{
int a[10]={1028221641061420};
int n=0;
int i;
int f(int);
while(f(a[])) (此处去除中括号则调试无误,这是为什么?)
{
n++;
for(i=0;i<=9;i++)
{
if(a[i]%2==1)
{
a[i]=(a[i]+1)/2;
a[i+1]+=(a[i]+1)/2;
}
else a[i]=a[i]/2;
}
}

printf(""经过%d次调整,每人都有%d块糖n""na[0]);
}

/*检查每个人糖果数是否相等的函数*/
int f(int b[])
{
int k;
for(k=1;k<=9;k++)
if(b[0]!=b[k]) return 1;
return 0;
}

解决方案

不带中括号,你调用的是你main方法中的那个啥也不干的f方法吧

解决方案二:
形参int b[]是声明,表示接收一个整型数组的变量
调用的时候就要传入整型数组的变量
a就是一个整型数组的变量

a[]实际的错误是没有下标,而加了下标a[n]则是一个整型变量,那就更不对了

时间: 2024-09-14 03:43:41

简单的数组作为函数参数的调用问题的相关文章

详解C++编程中用数组名作函数参数的方法_C 语言

C++数组的概念 概括地说:数组是有序数据的集合.要寻找一个数组中的某一个元素必须给出两个要素,即数组名和下标.数组名和下标惟一地标识一个数组中的一个元素. 数组是有类型属性的.同一数组中的每一个元素都必须属于同一数据类型.一个数组在内存中占一片连续的存储单元.如果有一个整型数组a,假设数组的起始地址为2000,则该数组在内存中的存储情况如图所示. 引入数组就不需要在程序中定义大量的变量,大大减少程序中变量的数量,使程序精炼,而且数组含义清楚,使用方便,明确地反映了数据间的联系.许多好的算法都与

c语言 指针数组作为函数参数问题

问题描述 c语言 指针数组作为函数参数问题 #include<stdio.h> #include<stdlib.h> void init_rec(day_record *arr[],FILE *file) { char temp[80]; int index=0; while((fscanf(file,"%s",temp))!=EOF) { arr[index]=NULL; arr[index]=(day_record * )malloc(sizeof(day_

将指向结构体对象的指针作为函数参数,调用p-&amp;amp;gt;时调试报错

问题描述 将指向结构体对象的指针作为函数参数,调用p->时调试报错 void deleteelement(linearlist *list, int power) { linearlist *p = list; while (p->power != power && p->next != NULL) //调试时显示错误在这一行 { p = p->next; } if (p->power == power) { linearlist *dele = p; p =

C语言及程序设计提高例程-36 多维数组作函数参数

贺老师教学链接  C语言及程序设计提高 本课讲解 用多维数组名作函数参数 #include <stdio.h> int max_value(int array[][4]); int main( ) { int a[3][4]= {{11,32,45,67},{22,44,66,88},{15,72,43,37}}; printf("max value is %d\n", max_value(a)); return 0; } int max_value(int array[]

《C语言及程序设计》实践参考——二维数组当函数参数

返回:贺老师课程教学链接 [项目1-二维数组当函数参数]定义一个函数来完成对参数数组中元素的排序工作,函数声明如下: int sum(int array[ ][4],int m,int n); //该函数完成对array数组中的前m行和n列元素求和 在以下程序的基础上,完成对sum函数的定义. #include <stdio.h> int sum(int array[ ][4],int m,int n);//该函数完成对array数组中的前m行和n列元素求和 int main() { int

关于数组做函数参数的问题集合汇总_C 语言

首先是数组元素作为函数的实参,这和直接用多个变量作为函数的实参在用法上没有什么差别. 作为例子的代码: 复制代码 代码如下: #include<iostream>using namespace std;int main(){ int max(int a,int b);        int a[2],m;        a[0]=1;        a[1]=2; m=max(a[0],a[1]); cout<<m;   return 0;  }int max(int a,int

GO不支持数组通过函数参数更改,有点不一样

package main import "fmt" func modify(array [10]int) { array[0] = 10 fmt.Println("In modify(), array values: ", array) } func main() { array := [10]int{1, 2, 3, 4, 5} modify(array) fmt.Println("In main(), array values: ", arr

C语言中数组名作为参数实现函数传递

用数组名作函数参数与用数组元素作实参有几点不同. 1) 用数组元素作实参时,只要数组类型和函数的形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的.因此,并不要求函数的形参也是下标变量.换句话说,对数组元素的处理是按普通变量对待的.用数组名作函数参数时,则要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明.当形参和实参二者不一致时,即会发生错误. 2) 在普通变量或下标变量作函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元.在函

用数组名做函数参数(转)

可以用数组名作函数参数,此时实参与形参都应用数组名(或指针变量). 例2:有一个一维数组score,内放10个学生成绩,求平均成绩. float average(float array[10]){              int i;       float aver,sum=array[0];               for(i=1; i<10; i++)sum=sum+array[i];            aver=sum/10;            return aver; }