c语言数据类型转换问题
程序代码:#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a;
int i;
int array[20];
//获取20个随机数
srand((int)time(NULL));
for(i=0;i<20;i++)
{
array[i]=rand()%41+10;
}
//打印出来
for(i=0;i<20;i++)
{
printf("%d ",array[i]);
}
putchar('\n');
//这里就不用说了
printf("最大值:%d\n最小值:%d\n平均值:%lf\n总和:%d\n",max(array),min(array),average(array),sum(array));
return 1;
}
//下面是4个函数
int max(int *array)
{
int max;
int i;
max=array[0];
for(i=1;i<20;i++)
{
if(array[i]>max)
max=array[i];
}
return max;
}
int min(int *array)
{
int min;
int i;
min=array[0];
for(i=1;i<20;i++)
{
if(array[i]<min)
min=array[i];
}
return min;
}
double average(int *array) //就是这里出问题了
{
int i;
double average=0;
for(i=0;i<20;i++)
{
average+=array[i];
}
average/=20;
return average;
}
int sum(int *array)
{
int i;
int sum=0;
for(i=0;i<20;i++)
{
sum+=array[i];
}
return sum;
}
求平均数的函数那里,原来是int型的返回值。由于平均值可能是小数,所以想改成double型的,结果就编译错误了(codeblocks,gcc编译器)
应该是类型冲突了,但我不知道哪里错了,该怎么改。
还有谁能讲讲数据类型转换的知识,谢谢了









