首页 > 试题广场 >

编程实现: (a)从文件 abc.txt中读

[问答题]
编程实现:
(a)从文件 abc.txt中读入全部数据到一个整数向量中;
(b)文件 abc.txt内容为: 12 567 91 33 657 812 2221 3 77;
(c) 以该向量为参数, 将该整数向量中的数据按各位数字之平方和的大小排序;
(d) 设计一个函数, 以该向量为參数, 以每个元素空一格的格式在屏幕中输出;
(e)编程实现读入向量,若无元素,则仅输出元素个数;否则,排序并输出该向量。

推荐
//-----------------------------------
//EX0505.cpp
//平方和排序
//-----------------------------------
#include<iostream>
#include<fstream>  // for file "abc.txt"
#include<vector>
#include<algoithm>
using namespace std;
//-----------------------------------
bool myComp(int x, int y){
  int sum=0, q;
  for(q=x%10; x; x/10,q=x%10)
    sum +=q*q;
  for(q=y%10; y; y/10,q=y%10)
    sum -=q*q;
  return sum<0;
}//----------------------------------
void print (const vector<int>& v){
  if(v.empty()){
    cout<<"No Element.\n";
    return;
}
  for(int i=0; i<v.size()-1; i++)
    cout<<v[i]<<" ";
  cout<<v.back()<<"\n";
}//----------------------------------
int main() {
  ifstream cin("abc.txt");
  vector<int> v;
  for(int a; cin>>a; )
    v.push_back(a);
  sort(v.begin(),v.end(), myComp);
  print(v);
}//----------------------------------

编辑于 2018-05-07 20:36:22 回复(0)