求某班一门功课的平均成绩,并统计超过平均成绩的人数。分别用下标法和指针法引用数组元素。
下标法:
#include <iostream>
using namespace std;
int main()
{
int i,a[50],n,sum=0,t=0;
float ave;
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
sum+=a[i];
}
ave=sum*1.0/n;
for(i=0;i<n;i++){
if(a[i]>ave)
t++;
}
cout<<t;
return 0;
}
指针法:
#include <iostream>
using namespace std;
int main()
{
int i,a[50],n,sum=0,t=0;
float ave;
int *p=a;
cin>>n;
for(i=0;i<n;i++){
cin>>*(p+i);
sum+=*(p+i);
}
ave=sum*1.0/n;
for(i=0;i<n;i++){
if(*(p+i)>ave)
t++;
}
cout<<t;
return 0;
}
这个用循环,分别比较元素即可
#include<stdio.h>
#define N 30
void main()
{ float score[N],*p;
float v,s=0;
int k,num=0;
for(p=score,k=0;k<N;k++)
{ scanf("%f",p);
s+=*p;
p++;
}
v=s/N;
for(p=score,k=0;k<N;k++)
if(*(p+k)>v) num++;
printf("average=%.1f,num=%d\n",v,num);
}
其中N是学生成绩的个数。
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a[10];
int cnt=0;
int num;
int i;
float sum = 0;
int count = 0;
printf("请输入整形数\n");
while(cnt<10){
scanf("%d",&num);
if(num == -1)
break;
a[cnt++] = num;
sum = sum+num;
}
printf("总分是:%d\n",cum);
sum = sum /cnt;
printf("平均数是:%0.2f\n",sum);
printf("总分是:%d\n",cum);
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m