第1个回答 2011-04-19
楼上比较经典,典型的C++式解决方法。
不过LZ可能要求的是各个字符不重复,这样的话可能还需要改点:
int main()
{
string s;
cin >> s;
sort(s.begin(), s.end(), greater<char>());
unique_copy(s.begin(), s.end(), ostream_iterator<char>(cout," "));
return 0;
}
呵呵。
不过初学者可能会挠头了。。
第2个回答 2011-04-18
#include<string>
#include<algorithm>
#include<iostream>
#include<functional>
using namespace std;
int main()
{
string s;
cin >> s;
sort(s.begin(), s.end(), greater<char>());
cout << s << endl;
}本回答被提问者采纳
第3个回答 2011-04-20
"
float *Grade(float *num,int i) //用来冒泡排序 num传入数组指针,i传入数组个数
{
int j,k;
float temp;
for (j=0;j<i;j++)
for (k=0;k<i-j;k++)
{
if (num[k]<num[k+1])
{
temp=num[k];
num[k]=num[k+1];
num[k+1]=temp;
}
}
return num;
}
void main()
{
float num[100];
int i=0,j=0,iavg=0; //i=数组个数,j=循环,iavg=高于平均成绩人数
float avg=0,sum=0; //avg=平均成绩,sum=总成绩
printf("请输入成绩,按Ctrl+D结束:");
while (scanf("%f",&num[i])) //循环输入成绩
{
sum+=num[i];
i++;
}
avg=sum/i;
printf("平均分为%.1f\n",avg);
Grade(num,i);
printf("所有学生的成绩为:");
for (j=0;j<i;j++)
{
printf("%.1f ",num[j]);
if (num[j]>avg)
iavg++;
}
printf("\n高于平均人数的有%d人\n",iavg);
}
第二题:
#include "stdio.h"
int digit(int i,int *dinum)
{
int j=0,k=0;
while (i=0) //计算位数
{
dinum[k]=i%10; //将数字存入数组
i=i/10;
j++;k++;
}
return j;
}
void main()
{
int inum,dinum[10],i,j; //inum=整数 dinum=存各个数字的数组 i,j=循环需要
printf("请输入整数:");
scanf("%d",&inum);
j=digit(inum,dinum);
printf("该整数为 %d 位\n",j);
printf("数字分别为:");
for (i=j-1;i>=0;i--)
{
printf("%d ",dinum[i]);
}
}
第三题:
#include "stdio.h"
int fun(int *a)
{
int i=1,j=0;
for (i;i<1000;i++)
{
if ((i%7==0||i%11==0)&&!(i%7==0&&i%11==0))
{
a[j]=i;
j++;
}
}
return j;
}
void main()
{
int a[500],i,j;
j=fun(a);
for (i=0;i<j;i++)
{
printf("%d ",a[i]);
if (i%15==0)
printf("\n");
}
以上代码均在VC6.0中编译通过,现在1点了。后面的题以后再说
另外,站长团上有产品团购,便宜有保证