C语言编程题求代码,不会做啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程题求代码,不会做啊相关的知识,希望对你有一定的参考价值。
题目描述从键盘输入若干数据整数(零表示结束),统计出数据个数,以及最大值、最小值和平均值。
用一个函数实现数据输入的功能,其首部为:
int Input(int s[])
Input的参数为输入的数据,函数返回值大于0表示该行输入的数据个数,0表示输入结束。
用一个函数实现求最大值、最小值和平均值的功能,首部为:
void statistics(int n, int s[], int *max, int *min, float *avg)输入从键盘输入若干数据整数(零表示结束)输出统计出数据个数,以及最大值、最小值和平均值 样例输入1 2 3 4 5 0样例输出Num=5
Max=5
Min=1
Avg=3.000
一时半会儿没理解你这句话“函数返回值大于0表示该行输入的数据个数,0表示输入结束。”,只能写成这个样了,你稍微改改。
#include<stdio.h>
int Input(int s[])
int i=0;
scanf("%d",&s[i]);
while(s[i++]!=0)
scanf("%d",&s[i]);
s[i]='\\0';
return *s;
void statistics(int n, int s[], int *max, int *min, float *avg)
int i=0,j=0,temp,sum=0;
temp=s[0];
for(i=1;i<n;i++)
if(s[i]>temp) temp=s[i];
*max=temp;
temp=s[0];
for(i=1;i<n;i++)
if(s[i]<temp) temp=s[i];
*min=temp;
for(i=0;i<n;i++)
sum+=s[i];
*avg=(float(sum/(1.0*n)));
void main()
int num=0,max=0,min=0,data[100];
float avg=NULL;
printf("Input(0表示结束):\\n");
Input(data);
while(data[num]!='\\0')
num++;
statistics(num,data,&max,&min,&avg);
printf("Num=%d\\nMax=%d\\nMin=%d\\nAvg=%.3f\\n",num,max,min,avg);
参考技术A 编程大赛的题么?自己想吧,多行输入,多行输出,0结束,编程大赛的破题追问
不是,就一道课后习题而已代码怎么写啊
追答scanf接受输入,用一个变量存储数据就可以了
int tmp = 0;
while(1)
scanf(" %d", &tmp);
if (tmp == 0) break;
统计数据个数,明白了么,我只加了一个变量而已;
int tmp = 0;
int count = 0;
while(1)
scanf(" %d", &tmp);
if (tmp == 0) break;
count++;
求平均值,你要学会用最少的变量完成某个任务,就像下面这样,但是,你首先要保证不能使程序变得反复无常;
int tmp = 0;
int count = 0;
double avg = 0;
while(1)
scanf(" %d", &tmp);
if (tmp == 0) break;
count++;
avg += tmp;
avg /= count;
最大值最小值,你也只需要这样就行了;
int tmp = 0;
int count = 0;
int max = 0;
int min = 0;
double avg = 0;
while(1)
scanf(" %d", &tmp);
if (tmp == 0) break;
count++;
avg += tmp;
if (max tmp) min = tmp; /* 这里为什么要加else,想不出来去问老师*/
avg /= count;
行了,程序就这么简单,把它拾掇拾掇就OK了;
int func (double *avg, int *max, int *min)
int tmp = 0;
int count = 0;
*avg = 0; *max = 0; *min = 0;
while ( 1)
scanf(" %d", &tmp);
if (tmp == 0) break;
count++;
*avg += tmp;
if (*max tmp) *min = tmp;
*avg /= count;
return count;
主函数:
#include
int main (void)
int count, max, min;
double avg;
while (1)
count = func(&avg, &max, &min);
if (count == 0) break;
printf("%lf, %d, %d\n", avg, max, min);
return 0;
Codeforces Round #485 (Div. 2) C题求三元组(思维)
以上是关于C语言编程题求代码,不会做啊的主要内容,如果未能解决你的问题,请参考以下文章