c语言-主函数调用副函数问题

问题描述

主函数调用副函数问题

计算n个学生的成绩中,高于平均成绩的人数,并作为函数值。用主函数来调用它,统计50个学生成绩中,求高于平均成绩的人数
我是这样写的:
#include
int over(float,int);

int main(void)
{
int n[50],i,j,t=0;
float a;
printf("请输入成绩:");
for(i=0;i
scanf("%d",&n[i]);
for(i=0;i
t+=n[i];
a=t/50.0;
printf("高于平均成绩的有%d人。",over(a,n);
}
int over(float a,int n[50])
{ int i,j=0;
for(i=0;i
{ if(n[i]>a)
++j;
return(j);
}
编译一直不通过,是我在实参调用上出错了吗?
还有其他的地方有没有错,求解答。

解决方案

开头函数原型和下面的不一致

printf("高于平均成绩的有%d人。",over(a,n);
这里括号不匹配

最后的for循环少一个后花括号

 #include<stdio.h>
int over(float,int[50]);

int main(void)
{
  int n[50],i,j,t=0;
  float a;
  printf("请输入成绩:");
  for(i=0;i<50;i++)
  scanf("%d",&n[i]);
  for(i=0;i<50;i++)
  t+=n[i];
  a=t/50.0;
  printf("高于平均成绩的有%d人。",over(a,n));
}
int over(float a,int n[50])
{ int i,j=0;
  for(i=0;i<50;i++)
  { if(n[i]>a)
     ++j; }
  return(j);
}

给你修改了下

解决方案二:

如果我的回答有帮助,请点下我回答右边的采纳,谢谢

解决方案三:

第二行代码就错了,声明的时候函数第二个参数为int型,但在定义的时候第二个参数却是一个int型数组。

解决方案四:

函数申明是int 而实际是一个数组

时间: 2024-07-28 16:45:08

c语言-主函数调用副函数问题的相关文章

c语言-C语言中函数调用出错问题的解决方法,主函数中的函数参数问题

问题描述 C语言中函数调用出错问题的解决方法,主函数中的函数参数问题 最后的主函数中的Locatei(&Q)一直提示参数不够,但我添加了指向pos的整型变量并赋值给i后仍不能成功,我现在不知道是调用错了还是那里的问题,求解答啊! include include include #define ERROR 0 #define OK 1 #define RL 200 typedef struct{ char *name[RL]; char *phonenum[RL]; char *add[RL];

变元-c语言如何在子函数读取主函数中的数组

问题描述 c语言如何在子函数读取主函数中的数组 要一次性全部读取这个数组,不需要改变数组. 比如我有个数组a[10].我想一次性在子函数中读取a从1到10的所有字符.如果不通过指针,可以用变元传递嘛 解决方案 你用数组做形参,传过去的实参相当于传指向数组的指针. 解决方案二: 标准C语言,没有你所说的变元的东东.变元,都是后来 C++/C# 才有的. 指针是最方便的,其它不想说了. 解决方案三: c语言就指针了吧!其他的没有指针直接了! 引用,变元都不是c的东西了! 说具体需求吧 解决方案四:

printf-c语言 残缺程序(函数)的代码怎么改?

问题描述 c语言 残缺程序(函数)的代码怎么改? 描述 Cloud是个喜欢探险的程序员,在一次探险的时候,偶然发现了一些残缺的文件.这些文件上都是用c/c++写的程序代码.为了解开残缺文件的谜团,Cloud决定尽力补全这些残缺的程序代码,以便发现更多的秘密.第一份残缺文件上的代码如下,请帮助他补全程序.(打星号的地方需要补全) 程序名称:计算从1到n之间的完数个数. #include ****** ******(******) { int i,s; s=******; for(i=******;

深入理解C语言的函数调用过程 【转】

转自:http://blog.chinaunix.net/uid-25909619-id-4240084.html 原文地址:深入理解C语言的函数调用过程 作者:wjlkoorey258       本文主要从进程栈空间的层面复习一下C语言中函数调用的具体过程,以加深对一些基础知识的理解.    先看一个最简单的程序: 点击(此处)折叠或打开 /*test.c*/ #include <stdio.h> int foo1(int m,int n,int p) {         int x = 

c语言程序题-C语言程序设计题,函数,二维数组

问题描述 C语言程序设计题,函数,二维数组 某班期末考试科目为数学,英语,物理,有最多不超过30人参加考试,编写程序实现成绩排序和成绩查询 要求①用函数编程实现计算每个学生的总分和平均分 ②用函数编程实现按总分成绩由高到低排出成绩名次 ③用函数编程打印出名次表,表格内包括学生编号,各科分数,总分和平均分 解决方案 你不会自己写???逗我?? 解决方案二: 好好写作业.........不要偷懒 解决方案三: 自己写吧,小伙子!!! 解决方案四: 建议楼主自己写吧,写好了碰到问题再发上来 解决方案五

java中为什么main函数调用别的函数必须先实例化,实例化的目的是什么?

问题描述 java中为什么main函数调用别的函数必须先实例化,实例化的目的是什么? java中为什么main函数调用别的函数必须先实例化,实例化的目的是什么? 解决方案 估计是你的函数忘了加static,加了就可以直接调用了,比如 int add(int a, int b) { ... } -> static int add(int a, int b) { ... } 解决方案二: 初始化一个对象啊,只有对象才能调用其它的函数,如果不实例化那么这个函数必须是静态函数 解决方案三: 要想调用函数

初学者-C语言关于函数调用的一个问题

问题描述 C语言关于函数调用的一个问题 代码如下,不知道为什么达不到想要的效果 编程初学者,大一.谢谢指导!找了好久没发现问题 谢谢! //输入5个班的成绩,计算各班的平均值,输出所有班中平均值最大的分数,以及所有人中最大的分数 //假设每个班不超过50人 #include int i; void f1(double a[],int x); double f2(double a[],int x); double f3(double a[],int x); void main() { int s;

C语言指针在这个函数里发生了怎样的变化?

问题描述 C语言指针在这个函数里发生了怎样的变化? 从键盘任意输入10个整数,用指针变量作函数参数编程计算最大值和最小值,并返回它们所在数组中的位置.函数原型如下所示: int FindMax(int num[], int n, int *pMaxPos);//函数返回最大值,pMaxPos返回最大值所在的下标 int FindMin(int num[], int n, int *pMinPos);//函数返回最小值,pMaxPos返回最小值所在的下标 程序运行结果示例: Input 10 nu

printf-C语言中被调函数在主调函数的前面和后面有什么区别?

问题描述 C语言中被调函数在主调函数的前面和后面有什么区别? 一: void swap(int x,int y) { int temp; temp=x; x=y; y=temp; printf("x=%d,y=%dn",x,y); } void main() { int a,b; //a,b是实参. scanf("%d,%d",&a,&b); swap(a,b); printf("a=%d,b=%dn",a,b); system(