分解质因数2
#include<iostream>
using namespace std;
int main()
{
int i,n,m,c; //不能在这把计数器赋成0
cin>>n;
cout<<n<<"=";
for(i=2;i<=n;i++)
{
c=0; //计数器赋成0
while(n!=i)
{
if(n%i==0)
{
c++; //计数器增长
n/=i;
}
else
break;
}
if(n==i) //如果n等于i,n和i都是最后一个质因数,计数器增长一次,然后跳出
{
c++;
break;
}
if(c>1) //n不等于i,输出*
cout<<i<<"^"<<c<<"*";
else if(c==1)
cout<<i<<"*";
}
if(c>1) //n等于i,不输出*
cout<<i<<"^"<<c;
else if(c==1)
cout<<i;
return 0;
}
歌星大奖赛
#include<iostream>
#include<cmath>
#define INF 1000000
using namespace std;
int a[1000];
int main()
{
int i,j,n,maxi=-INF,min2=INF,min1=INF;
double ave=0.0,s=0.0,c=0.0;//计算平均值和总和的变量类型设成double型
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<n;i++)
{
if(a[i]>maxi) maxi=a[i];
if(a[i]<min1) min1=a[i];
s+=a[i];//总和加上每个元素
}
s=(s-maxi-min1)*1.0;//让总和减去最大值和最小值,之后确保总和是double型
ave=s/(n-2)*1.0;//让平均值确保是double型
ave=(int)(ave*100+0.5);//四舍五入
ave=ave/100.0;//四舍五入的除运算,确保是double型
cout<<ave<<endl;//输出平均值
for(i=0;i<n;i++)
{
c=abs(a[i]-ave);//c等于a[i]-ave的绝对值
if(min2>c)//判断最小值是否大于c
{
min2=c;//最小值等于c
j=i;//让j等于下标
}
}
cout<<a[j];//输出最接近平均值的数
return 0;
}