#include<stdio.h>
void junzhi(int a[],int n,int *x,int *y)
{
int i=0,sum=0,t,z=0;
for(i=0;i<=9;i++)
{scanf("%d",&a[i]);
sum=sum+a[i];}
t=1.0*sum/n;
for(i=0;i<=9;i++)
{scanf("%d",&a[i]);
if(a[i]<t)
z++;}
*x=t;
*y=z;
}
int main()
{
int a[10],i;
int jun,di;
printf("請輸入成績:");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
junzhi(a,10,&jun,&di);
printf("%d%d\n",jun,di);
return 0;
}
uj5u.com熱心網友回復:
scanf往陣列里存不需要取地址的,陣列名就是這個陣列的地址uj5u.com熱心網友回復:
你是想求均值和低于均值的計數是嗎?我也是初學者,不一定對,可能有幾個問題:1)你的函式原型沒有回傳值;2)函式原型里是直接呼叫陣列,應該不需要scanf;3)確定不是浮點型變數?我根據你的文意,大概寫了個你試試。如下:#include <stdio.h>
double junzhi(double[], int);
int count(double[], double);
int main()
{
double a[10],jun;
int di;
printf("請輸入成績: \n");
for(int i=0;i<10;i++)
scanf("%lf",&a[i]);
jun=junzhi(a,10);
di=count(a,jun);
printf("均值是%lf,低于均值的數有%d個.\n",jun,di);
return 0;
}
double junzhi(double a[], int n)
{
double ret_val;
double sum=0.0;
for(int i=0;i<n;i++)
sum += a[i];
ret_val = sum/n;
return ret_val;
}
int count(double a[], double t)
{
int ret_val=0;
for(int i=0;i<n;i++)
if(a[i]<t)
ret_val++;
return ret_val;
}
如有不足之處,請多交流指正
uj5u.com熱心網友回復:
順便多說一句,這種求值型別的,我個人感覺用指標效果不是很好。我之前也一直陷在了指標的怪圈里,指標還是要用在陣列這里地方更有用。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47594.html
標籤:基礎類
下一篇:Firemonkey中文手冊
