bhipeghu!!!!

任艺宸  •  2个月前


#include<iostream>  // cin\cout\endl 
#include<cstdio>    //scanf()\printf() 
#include<cstring>   // strcpy()\strcat()\strcmp()\strlen()\memset()  
#include<algorithm> 
#include<cmath>  //sqrt()\pow()\abs()\ceil()\floor()\max()\min()  
using namespace std; 
struct gd{ 
 string m; 
 double j; 
}a[11]; 
bool cmp(gd x,gd y) 
{ 
   return x.j>y.j; 
} 
int main(){ 
   int n; 
   cin>>n; 
   for(int i=0;i<n;i++){ 
       cin.get(); 
       getline(cin,a[i].m); 
       cin>>a[i].j; 
   } 
   sort(a,a+n,cmp); 
       printf("%.2lf",a[0].j); 
       cout<<","<<a[0].m<<endl; 
       printf("%.2lf",a[n-1].j); 
       cout<<","<<a[n-1].m<<endl; 
   return 0; 
}


评论:

#include <iostream> 
#include <algorithm> 
using namespace std;  
bool cmp(int x,int y){ 
   return x>y; 
} 
int main(){     
   //将输入的n个数进行从小到大的排序 
int n,a[101]; 
cin>>n; 
for(int i=1;i<=n;i++) 
    cin>>a[i]; 
//冒泡排序 
/* 
int t; 
for(int i=1;i<n;i++) 
    for(int j=1;j<=n-i;j++) 
        if(a[j]>a[j+1]){ 
            t=a[j]; 
            a[j]=a[j+1]; 
            a[j+1]=t; 
        } 
        */ 
 //选择排序 
 /* 
 int min,t; 
 for(int i=1;i<n;i++){ 
     min=i; 
     for(int j=i+1;j<=n;j++){ 
         if(a[min]>a[j]) 
            min=j; 
     } 
     t=a[i]; 
     a[i]=a[min]; 
     a[min]=t; 
 } 
 */ 
 //插入排序 
 /* 
 int t,j; 
 for(int i=2;i<=n;i++){ 
     t=a[i]; 
     for( j=i;j>1;j--){ 
         if(a[j-1]>t) 
            a[j]=a[j-1]; 
         else 
            break; 
     } 
     a[j]=t; 
 } 
 */ 
 //sort函数排序 
 //默认从小到大  
 //如需从大到小 需要自定义排序方法的函数 
 sort(a+1,a+n+1,cmp);  
 //参数1为开始的位置,参数2为结束位置(a+n+1,排到n,不包括n+1),参数3为自定义排序函数 
 //输出 
 for(int i=1;i<=n;i++) 
    cout<<a[i]<<" "; 
return 0; 
}

 


冯诚阳  •  2个月前

文件读写(必须掌握) 


#include<iostream> 
using namespace std; 
int main(){ 
int a,b; 
   freopen("in.txt","r",stdin); 
   freopen("out.txt","w",stdout); 
cin>>a>>b; 
cout<<a+b; 
fclose(stdin);  
fclose(stdout);  
   return 0; 
} 

头文件:#include <fstream> 
核心三步骤:定义流对象 → 打开文件 → 读写操作 → 关闭文件 

--- 

1. 写入文件(ofstream) 

```cpp 
#include <fstream> 
using namespace std; 
int main(){ 
ofstream fout;                // 定义输出流对象 
fout.open("data.txt");        // 打开文件(不存在则创建) 
fout << "Hello " << 123 << endl;  // 写入数据 
fout.close();    // 关闭(务必写) 
}                
``` 

--- 

2. 读取文件(ifstream) 

```cpp 
#include <fstream> 
#include <iostream> 
using namespace std; 
int main(){ 
ifstream fin; 
fin.open("data.txt"); 
int x; 
string s; 
fin >> s >> x;   // 按空格/换行分隔读取 
fin.close(); 
cout<< s << x <<endl; 
} 
             
``` 

追加ios::app 
#include <fstream> 
using namespace std; 
int main(){ 
ofstream fout;                // 定义输出流对象 
fout.open("data.txt",ios::app);        // 打开文件(不存在则创建) 
fout << "Hello " << 123 << endl;  // 写入数据 
fout.close();    // 关闭(务必写) 
}   

判断文件是否打开成功(必考): 

```cpp 
if(!fin) {  
   cout << "文件打开失败!";  
   return 0;  
} 
``` 

--- 

3. 读取到文件末尾(eof()) 

当不确定文件里有多少数据时,用 while(!fin.eof()) 循环读取: 

//将文件中的分数读取算出平均分 
#include <fstream> 
#include <iostream> 
using namespace std; 
int main(){ 
ifstream fin; 
fin.open("data.txt"); 
int score, sum = 0, cnt = 0; 
while(!fin.eof()) { 
   fin >> score; 
   if(fin.fail()) break;   // 防止读到末尾多读一次 
   sum += score; 
   cnt++; 
} 
cout << "平均分:" << sum * 1.0 / cnt; 
} 
             

 


冯诚阳  •  2个月前