1.如何统计这些数的个数呢?并且如何同时将这些数放入数组求平均值呢?
求教
谢谢
我刚才想了想,贴个上来
#include<stdio.h>
#include<math.h>
main()
{
char b[256];
int a[256];
int i,num=1,sum=0;
printf("please enter the numbers\n");
gets(b);
//printf("%s\n",b);
for (i=0;;i++)
{
if (b[i]=='\0')
break;
if (b[i]==' ')
num=num+1;
}
//printf("%d\n",num);
for (i=0;i<num;i++)
{
scanf("%d",&a[i]);
sum=sum+a[i];
}
sum=sum/num;
printf("%d",sum);
}
但是有个问题的,我这个需要打两遍,有什么法子解决伐?
该了一下上面的程序,回车的时候终止,不过看起来的有的复杂,因为输入的数是以字符的形式存储的.
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
int array[255];
char str[255];
char str_temp[128];
memset(array,0,sizeof(array));
memset(str,0,sizeof(str));
int count=0,i=0,sum=0,num,j;
float average;
printf("请输入整数以','隔开:"); //例如输入:1,2,3,5,6,7
str[i]=getchar();
while(str[i]!='\n')//输入整数,注意不要加空格,要以','隔开 ,当输入回车终止
{
i++;
str[i]=getchar();
if(str[i]==',')
count++;//存储输入整数的个数
}
str[i]='\0';//去掉最后输入回车
count++;
num=i;//存储输入字符的个数
i=0;
memset(str_temp,0,sizeof(str_temp));
strcpy(str_temp,strtok(str,","));
array[i++]=atoi(str_temp);
if(count==2)//只输入两个数,提取最后一个数
{
memset(str_temp,0,sizeof(str_temp));
strcpy(str_temp,strtok(NULL,"\0"));
array[i++]=atoi(str_temp);
}
else
{
for(j=0;j<count-2;j++)
{
memset(str_temp,0,sizeof(str_temp));
strcpy(str_temp,strtok(NULL,","));
array[i++]=atoi(str_temp);
}
memset(str_temp,0,sizeof(str_temp));
strcpy(str_temp,strtok(NULL,"\0"));
array[i++]=atoi(str_temp);
}
for(int k=0;k<count;k++)//求和
{
sum+=array[k];
}
average=(float)sum/(float)count;//计算平均值
printf("输入的个数:%d , 平均值:%f",count,average);
getch();
return 0;
}