粒度分布中径:C++题目

来源:百度文库 编辑:高考问答 时间:2024/05/05 07:49:05
1)将用户输入的一个正整数n(长整型)输出成“千分位”形式,
即从个位数起,每三位之间加一个逗号,
例如:将7654321输出成7,654,321.

(2)输入数组int a[n],b[n]的元素,用数组a和b构造数组c[n],使得:
当a[i]>b[i]时, c[i]=a[i]-b[i];
当a[i]<=b[i]时, c[i]=b[i]-a[i];
其中,n的值由用户指定。

(3)
要求:
(a)由用户指定运动员的人数并输入其编号和成绩。可利用动态内存分配实现。
(b)按习惯方式显示运动员的名次,即成绩相同的运动员为同一名次。
如:若第3、4、5名成绩相同,则其名次皆显示为3,原第6名运动员的名次仍显示为6。

2
#include<iostream.h>

int main()
{
int n=0;
cout<<"输入n值:"<<endl;
cin>>n;
int a[n],b[n],c[n];
for(int i=0;i<n;++i)
{
cout>>"输入a,b值:"<<endl;
cin>>a[i]>>b[i];
if(a[i]>b[i])
c[i]=a[i]-b[i];
else
c[i]=b[i]-a[i];
}
for(int i=0;i<n;++i)
cout<<"c["<<i<<"]="<<c[i]<<endl;
return 0;
}
3.

#include<iostream.h>
#include<string.h>
Struct Ath
{
int MC;//名次
int Num ;//编号
float Result;//成绩
};
void ResultSort();
int main()
{
ResultSort();
return 0;
}

void ResultSort()
{
int n=0;
cout<<"输入运动员人数:"<<endl;
cin>>n;
if(n<=0)
return;
Ath * ath[n];
for(int i=0;i<n;++i)
{
ath[i]=new Ath();
cout<<"\n输入运动员编号和成绩"<<endl;
cout<<"编号:";
cin>>ath[i].Num;
cout<<"输入运动员成绩:"
cin>>ath[i].Result;
ath[i].MC=i;
while((i-1)>=0)
{
if (ath[i].Result>ath[i-1].Result)//默认成绩值越大越好
{
Ath *temp;
temp=ath[i-1];
ath[i-1]=ath[i];
ath[i]=temp;
ath[i].MC=i;
ath[i-1].MC=i-1;
}
else
if(ath[i].Result==ath[i-1].Result)
ath[i].MC=ath[i-1].MC;

else
ath[i].MC=i;
--i;
}

}
cout<<"名次"<<" "<<"运动员编号"<<" "<<"运动员成绩"<<endl;
For(int i=0;i<n;++i)
cout<<ath[i].MC<<" "<<ath[i].Num<<" "<<ath[i].Result<<endl;

}

没经过调试,不过应该没问题

1.void abc(int a){
if(a<1000)
cout<<a;
else
{
abc(a/1000);
cout<<","<<a%1000;
}
}
其他的懒的写了