各位大神帮我改下程序吧
是这样的,我们c语言的课程没有学到函数定义那块 我自己先自学了一下 感觉还不错
但是自己编了个程序结果一堆错误
想了半天想不明白 相望大神帮我改一下 顺便帮我普及下知识告诉我错在哪里
不胜感激
程序内容为 输入一组10个数 输出最大的数和他的下表 最小的数和他的下表如main[0]=30 min[3]=0还有平均数和大于平均数的数以及个数 用普通算法我会了 只是想用自定义函数的方法编一下
[解决办法]
/*
array 待操作数组
len 长度
*/
void zhong(int array[], int len)
{
}
调用
int main()
{
int i = 0;
int a[10];
for(i=0;i<10;i++)
{
scanf("%d", &a[i]);
}
zhong(a, 10);
}
[解决办法]
zhong(max,min,z,c[],ave);//第四个参数 就是一数组 直接传数组名噻, c就行 不要后面的[]
[解决办法]
实参直接用数组名

[解决办法]
#include "stdio.h"
#define N 10
void Print(int []);//传个数组过来 就行
int main()
{
int nArray[N]={0};//初始化 所有element为0
printf("请输入十个数:\n");
for(int i = 0; i < N ; i++)
{
scanf("%d",&nArray[i]);
}
Print(nArray);//直接数组名就ok
return 0 ;
}
void Print(int nArray[])
{
//首先输出最大数
int nMax = nArray[0], nMin = nArray[0];// 将数组首个元素作为最大最小的基准元素
for(int i = 0; i < N;i++)
{
if(nArray[i] >= nMax)
nMax = nArray[i];//大的留下来
if(nArray[i] <= nMin)
nMin = nArray[i];//小的留下来
}
printf("The max number is : %d\n",nMax);
printf("The max number is : %d\n",nMin);
}
照着这样把其他的功能写出来吧, 一个方法如果觉得太臃肿 就再定义一个。怎么看着舒服怎么来。
[解决办法]
这跟你的auto字段没有多大关系, 变量默认情况下确实是auto的,你要定义int类型了 比如你之前的imax已经定义过int 了 你在if块里面 有auto了 这里多余了,另外,为什么你出现这种结果
=1
=1
=1
=1
=1
=1
那是因为 你printf第二个参数一致 是定值,也就是数组的第一个元素1
另外 你没得到你想要的结果 是因为 你逻辑的问题, 代码判断的什么都No 问题。
下次 写代码,记得制表符和换行
[解决办法]
还有 如果 只是要加过的话,就把你要的那句 放在for循环外面,你放在它里面,不管结果是不是你要的,它都得输出一次啊,你以为 它想啊。 哈哈哈