读书人

各位大神帮小弟我改上程序吧

发布时间: 2013-01-05 15:20:40 作者: rapoo

各位大神帮我改下程序吧
是这样的,我们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);
}


[解决办法]
引用:
引用:我就说下这个void zhong(int a,int b,int q,int i,int p[i],float l);
首先用函数你要知道形参和实参以及返回值
int p[i] 其实你只是传进去一个数而已 不是传一个数组 况且也不能这样写 如果传的是数组的话可以写成int p[] 建议把数组传进去 把for(i……


zhong(max,min,z,c[],ave);//第四个参数 就是一数组 直接传数组名噻, c就行 不要后面的[]
[解决办法]
引用:
引用:int p[i],i是变量,这样申明数组是错误的,改成int p[]



其次
你声明的函数是void zhong(int a,int b,int q,int i,int p[i],float l);
你定义的函数是void zhong(int a,int b,int q,int p[i],int i,float ……


实参直接用数组名各位大神帮小弟我改上程序吧
[解决办法]
#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);
}


照着这样把其他的功能写出来吧, 一个方法如果觉得太臃肿 就再定义一个。怎么看着舒服怎么来。

[解决办法]
引用:
引用:C/C++ code?12345678910111213141516171819202122232425262728#include "stdio.h"#define N 10void Print(int []);//传个数组过来 就行 int main(){ int nArray[N]={0};//初始化 所有element……


这跟你的auto字段没有多大关系, 变量默认情况下确实是auto的,你要定义int类型了 比如你之前的imax已经定义过int 了 你在if块里面 有auto了 这里多余了,另外,为什么你出现这种结果

=1
=1


=1
=1

=1
=1

那是因为 你printf第二个参数一致 是定值,也就是数组的第一个元素1


另外 你没得到你想要的结果 是因为 你逻辑的问题, 代码判断的什么都No 问题。

下次 写代码,记得制表符和换行
[解决办法]
引用:


还有 如果 只是要加过的话,就把你要的那句 放在for循环外面,你放在它里面,不管结果是不是你要的,它都得输出一次啊,你以为 它想啊。 哈哈哈

读书人网 >C语言

热点推荐