10.14 c语言循环嵌套 数组

循环嵌套:

数组:

一维数组操作思维导图:

练习:

1、有10位评委打分,为了公平起见,要求删除最高成绩和最低成绩,算出平均成绩。

提示:输入10个评委的打分情况,利用算法算出最高和最低成绩,将总成绩减去最高最低成绩后,求出平均成绩,使用C语言完成。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int i,count=0;
	float a[10],max,min,ave=0,sum=0;
	for(i = 0;i<10;i++)
	{
		printf("请输入第%d位评委的评分:",i+1);
		scanf("%f",&a[i]);
	}
	for(i=0;i<10;i++)
	{
		if(i==0)
		{
			max = a[i];
			min = a[i];
		}
		if(a[i]>=max)
		{
			max = a[i];
		}
		if(a[i]<=min)
		{
			min = a[i];
		}
	}
	for(i=0;i<10;i++)
	{
		if(a[i]!=max&&a[i]!=min)
		{
			sum+=a[i];
			count++;
		}
	}
	ave=sum*1.00/count;
	printf("平均成绩为:%.2f\n",ave);
	return 0;
}


2、班级有9位同学,期末考试结束后,需要统计出对班级平均分做出贡献的学生所占百分比。
提示:输入9个学生成绩,算出平均成绩,利用平均成绩统计出高于平均成绩的学生个数,利用个数算出百分比。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	float a[9];
	int i;
	float sum=0,avg=0,bfb=0;
	for(i=0;i<9;i++)
	{
		printf("请输入学生%d的成绩",i+1);
		scanf("%f",&a[i]);
		sum+=a[i];
	}
	avg=sum/9;
	printf("平均成绩为%.2f\n",avg);
	int count=0;
	for(i=0;i<9;i++)
	{
		if(a[i]>avg)
		{
			count++;
		}
	}
	bfb=count*1.0/9;
	printf("高于平均成绩的学生个数占总学生的百分比为%.2f%%\n",bfb*100);
	return 0;
}


3、已知数组元素(6,4,9,0,8,12,3},提示用户输入一个关键字,如果存在该关键字,输出该关键字的位置,不存在该关键字,给出一定的提示。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int key,i,a[]={6,4,9,0,8,12,3};
	printf("请输入要查找的关键字:");
	scanf("%d",&key);
	int len = sizeof(a)/sizeof(int);
	int sub = -9;
	for(i=0;i<len;i++)
	{
		if(key==a[i])
		{
			sub = i;
			break;
		}
	}
	if(sub==a[i])
	{
		printf("查找失败\n");
	}
	else
	{
		printf("查找成功,第%d个位置\n",sub+1);
	}
	return 0;

}


4、已知数组元素{6,4,9,0,8,12,3},将该数组中低于平均值的元素放入新数组并输出。

#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int a[]={6,4,9,0,8,12,3},i,j,sum=0;
	int b[7],n =0,count=0,len;
	float avg;
	len = sizeof(a)/sizeof(int);
	for(i=0;i<len;i++)
	{
		sum+=a[i];
	}
	avg=sum*1.00/len;
	printf("平均值是%.2f\n",avg);
	for(i = 0;i<len;i++)
	{
		if(a[i]<avg)
		{
			b[n++]=a[i];
			count++;
		}
	}
	for(int j=0;j<count;j++)
	{
		printf("b[%d]=%d\t",j,b[j]);
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值