编程题:随机产生10个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
C语言中有个random函数可以产生随机数,但是,由于gcc编译器和vc++编译器并不支持该函数。因此改成用手动输入的方式来写函数。
调试中遇到的问题1.如何产生平均数,用到了强制类型转换。如果整型数不进行强制类型转换,则
sum/10为整数,如果对sum进行强制类型转换,转换为float类型,则其除数为浮点数。
2.if判断语句if(10<=i<=50)写法错误,需要把它改成if(10<=i&&i<=50)
3.求最大值时发生错误。
include<stdio.h>
void main()
{
printf("please input 10 number you need!\n");
int j=0;
int a[9];
while(j!=10)
{
int i;
scanf("%d",&i);
if(10<=i&&i<=50)
{ a[j]=i;
j++;
}
}
int k;
int sum=0;
for(k=0;k<=9;k++)
{
sum=sum+a[k];
}
printf("the sum is %d",sum);
float average;
average=((float)sum)/10;
printf("the average is %.2f",average);
int m;
int max=a[0];
int min=a[0];
for(m=1;m<=9;m++)
{
if(max<=a[m]) max=a[m];
if(min>=a[m]) min=a[m];
}
printf("the max number is %d,the min number is %d",max,min);
}