1、输入任意 4 个字符(如:abcd),并按反序输出(如:dcba)。
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
/*
int main()
{
string str;
cin>>str;
for(int i=str.length()-1;i>=0;i--)
{
cout<<str[i];
}
return 0;
}
*/
int main()
{
string str;
cin>>str;
int i,j;
i=0;
j=str.length()-1;
while(i<j)
{
swap(str[i],str[j]);
i++;
j--;
}
cout<<str<<endl;
}
2、设 a、b、c 均是 0 到 9 之间的数字,abc、bcc 是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c 的值。
#include <cstdio>
#include <iostream>
int main()
{
int a,b,c;
for(a=0;a<10;a++)
{
for(b=0;b<10;b++)
{
for(c=0;c<10;c++)
{
if((a*100+b*10+c+b*100+c*10+c)==532)
printf("a:%d b:%d c:%d \n",a,b,c);
}
}
}
}
3、一个数如果恰好等于它的各因子(该数本身除外)子和,如: 6=3+2+1,则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出 2 到 60 之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 ......(ei 为完数) G: g1 g2 g3 ......(gi 为盈数) 。
#include <cstdio>
#include <vector>
using namespace std;
int sum(int n)
{
int s=0;
for(int i=1;i<=n/2;i++)
{
if(n%i==0)
s+=i;
}
return s;
}
int main()
{
vector<int> vg;
vector<int> ve;
for(int i=2;i<=60;i++)
{
if(sum(i)==i)
ve.push_back(i);
if(sum(i)>i)
vg.push_back(i);
}
vector<int > ::iterator it;
printf("E:");
for(it=ve.begin();it<ve.end();it++)
{
printf(" %d",*it);
}
printf("\nG:");
for(it=vg.begin();it<vg.end();it++)
{
printf(" %d",*it);
}
return 0;
}
*/
4、从键盘输入 4 个学生的数据( 包括姓名、年龄和成绩),并存放在文件 sf1 上。从该文件读出这些数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
#include <cstdio>
#include <string>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct
{
char name[20];
int age;
int grade;
} student;
bool cmp(student a,student b)
{
return a.grade>b.grade;
}
int main()
{
vector<student> vi;
int i;
student a ;
FILE *fp;
fp=fopen("./a.txt","w");
for(i=0;i<4;i++)
{
cin>>a.name>>a.age>>a.grade;
vi.push_back(a);
fprintf(fp,"%s %d %d\n",a.name,a.age,a.grade);
}
fprintf(fp,"#");
fclose(fp);
vi.clear();
fp=fopen("./a.txt","r");
while(1)
{
fscanf(fp,"%s",a.name);
cout<<a.name;
string name=a.name;
if(name!="#")
{
fscanf(fp,"%d%d",&a.age,&a.grade);
vi.push_back(a);
}
else if(name=="#")
break;
cout<<vi.size();
}
fclose(fp);
sort(vi.begin(),vi.begin()+vi.size(),cmp);
printf("成绩排序:\n");
for(vector<student>::iterator it=vi.begin();it<vi.end();it++)
{
printf("name:%10s age:%5d grade:%5d\n",it->name,it->age,it->grade);
}
printf("成绩次高信息:\n");
it=vi.begin()+1;
printf("name:%s age:%d grade:%d\n",it->name,it->age,it->grade);
return 0;
}