C++第5次作业

本文介绍了使用C++进行数组操作的方法,包括数组元素的分离、成绩统计、字符串字符计数等,并演示了如何求解数组中特定数值的和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目1:数组分离

  从键盘中输入10个数放在数组A中,将该数组中奇数放到数组B,偶数放到数组C中后分别输出。

#include<iostream>
using namespace std;
int main()
{
	int a[10],b[10],c[10],num,i,j=0,k=0;
	cout<<"请输入10个数放在数组a"<<"\n";  
	for(i=0;i<10;i++)
	{
		cout<<"第"<<i+1<<"个数为:"<<"\n"; 
		cin>>num;
		a[i]=num;
		if(num%2==1)
		{
			b[j]=num;
			j++;
		}
		else 
		{
			c[k]=num;
			k++;
		}
	}
	cout<<"数组a是:";
	for(i=0;i<10;i++)
		cout<<a[i]<<", ";
	cout<<"\n将数组a中奇数放到数组b,偶数放到数组c中后分别输出\n";
	cout<<"奇数数组b有";  
	for(i=0;i<j;i++)
		cout<<b[i]<<", ";
	cout<<endl;
	cout<<"偶数数组c有";  
	for(i=0;i<k;i++)
		cout<<c[i]<<", ";
	
	return 0;
}


项目3:成绩

在数组score中将要存储某小组程序设计的成绩(设有10人),编程实现下列功能:
(1)输入小组人数及成绩,要保证成绩在0-100之间;
(2)输出该小组的最高成绩、最低成绩、平均成绩;
(3)输出考得最高成绩和最低成绩的同学的人数;
(4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
(5)(选做)求出所有同学成绩的标准偏差,标准偏差公式为,其中为xi样本(即某同学成绩),x(上带一横)为均值(前面已经求出),N为样本数目;

#include<iostream>
#include<cmath>
using namespace std;

int set_score(int _sco[20])
{
	int _num,i;
	cout<<"请输入小组的人数";
	cin>>_num;
	for(i=0;i<_num;i++)
	{
		cout<<"输入第"<<i+1<<"个人的分数:";
		cin>>_sco[i];
	}
	return _num;
}
int Statistics(int _sco[20],int num)
{
	int Max,Min,i,j,c[20],max=0,min=0,sum=0;
	double ave;
	Max=_sco[0];
	Min=_sco[0];
	for(i=0;i<num;i++)
	{
		for(j=i;j<num;j++)
		{
			if(Max<_sco[j]) 
			{
				Max=_sco[j];
			}
			if(Min>_sco[j]) 
			{
				Min=_sco[j];
				c[20-min]=j;
			}
		}
		sum+=_sco[i];
	}
	for(i=0;i<num;i++)
	{
		if(_sco[i]==Max) 
		{
			c[max]=i;
			max++;
		}
		if(_sco[i]==Min) 
		{		
			c[20-min]=i;
			min++;
		}
	}
		ave=sum/num;
		cout<<"该组最高成绩为:"<<Max<<"  最低成绩为:"<<Min<<"  平均成绩为:"<<ave<<"\n考出最高成绩的人数有"<<max<<"  最低成绩的人数有"<<min<<endl;
		for(i=0;i<max;i++)
			cout<<"考出最高成绩童鞋的学号:"<<c[i]<<endl;
		for(i=0;i<min;i++)
			cout<<"考出最高成绩童鞋的学号:"<<c[20-i]<<endl;
		return ave;
	}
	void standard(int num,int _sco[20],int ave)
	{
		int i;
		double sum;
		for(i=0;i<num;i++)
		{
			sum=(ave-_sco[i]);
		}
		sum=sum/(num-1);
		sum=sqrt(sum);
		cout<<"所有童鞋成绩的标准差是:"<<sum;
	}
	int main()
	{
		int sco[20],num,ave;
		num=set_score(sco);
		ave=Statistics(sco,num);
		standard(num,sco,ave);
		return 0;
	}



项目4:字符串

参考上面的示例,统计输出字符串中(大/小写)字母个数,数字个数及其它字符个数。

#include<iostream>
#include<cstdio>  
using namespace std;
int main()
{
	char str[50];
	int i=0,n=0,j=0,k=0;
	cout<<"输入字符串:";
	gets(str);
	while(str[i]!='\0')
	{  
		if(str[i]>='0'&&str[i]<='9') n++;
		else if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z') j++;
		else k++;
		i++;		
	}
	cout<<"其中的数字个数是: "<<n<<endl;
	cout<<"其中的字母个数是: "<<j<<endl;
	cout<<"其他字符个数是: "<<k<<endl;
	
	return 0;
}


项目5:求和

从键盘中输入10个数放入数组a,求a数组中正数和负数的和。

#include<iostream>
using namespace std;
int main()
{
	int a[10],num,i,j=0,k=0;
	cout<<"请输入10个数\n";
	for(i=0;i<10;i++)
	{
	cin>>num;
	a[i]=num;
	if(num>0)
		j+=num;
	else if(num<0)
		k+=num;
	}
	cout<<"这10个数中正数和为"<<j<<endl;
        cout<<"这10个数中负数和为"<<k<<endl;

return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红树林coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值