//---------------------------------A 马鞍点---------------------------------------//
/*
#include <iostream>
using namespace std;
int main(){
int arr[100][100];
int m,n,i,j,k,num=0; //m 为行 n 为列 max为最大值
int colmax=0;
int max;
cin>>m;
cin>>n;
for(i=0;i<m;i++){ //输入数组
for(int j=0;j<n;j++){
cin>>arr[i][j];
}
}
//寻找行最大值
//初始化k 重新设置i=0 重新定义j 取max=0;
for(i=0;i<m;i++){ //寻找每行最大值
int max=0;
//max=arr[i][0]; //max == 每行的第一个值
for(j=0;j<n;j++){ //行不变,列增大
if(max<arr[i][j]){ //max < 矩阵元素时
max=arr[i][j];
colmax=j; //得到每一行的最大元素的 列 赋值给全局变量
}
};
// max=arr[i][colmax];
for(j=colmax;j<n;j++){ //从colmax开始,依次扫描colmax之后的所有列,因为有可能有相等的行最大元素,而第一个最大元素不符合要求
if(arr[i][j]==max){ //选中其他行最大元素
for(k=0;k<m;k++){ //开始遍历当前列
if(max>arr[k][j]) //if 行最大值比当前列的元素大,则不符合题意
break; //跳出当前循环 ,继续比较其他行最大元素
};
if(k==m){ //全局变量 k == m 时,代表循环完毕也没有比max更大的元素,所以,当前max就是马鞍点
num++;
cout<<(i+1)<<" "<<(j+1)<<" "<<max<<endl;
}
}
}
}
if(num==0) cout<<"No"<<endl;
}
*/
/*
#include<iostream>
using namespace std;
int main(){
int arr[100][100];
int i,j,m,n,k,colmax,num=0; //mn分别为行列 i j 是对行列的循环 max存储最大值 num 鞍点个数 colmax存储行最大值的列
cin>>m>>n;
//循环输入矩阵
for(i=0;i<m;i++){
for(j=0;j<n;j++){
cin>>arr[i][j];
}
}
for(i=0;i<m;i++){ //遍历每一行每一列寻找最大值
int max=0; //max的值必须要在第一层循环内,每遍历一行就要重新赋值==0;
for(j=0;j<n;j++){
if(max<arr[i][j]){
max=arr[i][j];
colmax=j;
}
} //遍历完一行,结束
for(j=colmax;j<n;j++){
if(max==arr[i][j]){
for(k=0;k<m;k++){
if(max>arr[k][j]) break; //如果当前列有比max大,则不是马鞍点,跳出
}
if(k==m){ //如果k从0行到m-1行都没有找到当前列比max大的数,则是马鞍点
num++; //马鞍点数+1
cout<<i+1<<" "<<j+1<<" "<<max<<endl;
}
}
}
}
if(num==0) cout<<"No"<<endl; //如果对所有行列循环完后没有马鞍点,则输出num==0;
return 0;
}
*/
//---------------------------------------B 给定一个日期,输出这个日期是该年的第几天----------------------------------
/*
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int year,month,day;
int arr1[12]={31,28,31,30,31,30,31,31,30,31,31,31};
while(~scanf("%d/%d/%d",&year,&month,&day)){
if((year%4==0&&year%100!=0)||year%400==0) //四年一润,百年不润,四百年润 year是闰年
{
arr1[1]=29;
}
else{
arr1[1]=28;
}
int days=0;
for(int i=0;i<month-1;i++){
days+=arr1[i];
}
days+=day;
printf("%d\n",days);
}
return 0;
}
*/
//-----------------------------------C 成绩转换等级-----------------------------------------------
/*
//#include<typeinfo>
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
int t=0;
while(cin>>t){
// cout<<t<<endl;
// cout<<typeid(t).name()<<endl;
if(t<0||t>100)
cout<<"Score is error!"<<endl;
else{
if(90<=t&&t<=100){ //mm<=t<=nn 错误写法 t<=nn && t>=mm
cout<<"A"<<endl;
}else if(80<=t){ //不用写 mm<= t<=nn <=nn已在else中体现
cout<<"B"<<endl;
}else if(70<=t){
cout<<"C"<<endl;
}else if(60<=t){
cout<<"D"<<endl;
}else
cout<<"E"<<endl;
}
}
return 0;
}
*/
//---------------------------------------- D 平方和立方和------------------------------------------
/*
#include<iostream>
using namespace std;
int main(){
#if 0
int m,n;
while(cin>>m&&cin>>n){
if(m>n){
int temp=0;
temp=m;
m=n;
n=temp;
}
int ji=0,ou=0;
for(int i=0;i<(n-m);i++){ //1-4 1 2 3 4 四个数 循环三次 0 1 2 (b-a)=3
if((m+i)%2==0){
ou+=(m+i)*(m+i);
}else{
ji+=(m+i)*(m+i)*(m+i);
}
}
if(n%2==0){
ou+=n*n;
}else{
ji+=n*n*n;
}
cout<<ou<<" "<<ji<<endl;
}
#else
int m,n;
while(cin>>m&&cin>>n){
if(m>n){
int temp=0;
temp=m;
m=n;
n=temp;
}
int ji=0,ou=0;
for(int i=m;i<=n;i++){
if(i%2==0){
ou+=i*i;
}else{
ji+=i*i*i;
}
}
cout<<ou<<" "<<ji<<endl;
// return 0; 循环输入不能加return 0; 否则return之后就终止main函数执行
}
#endif
}
*/
//----------------------------------------- E 数值统计--------------------------------------
/*
#include<iostream>
using namespace std;
int main(){
int fu=0, ling=0,zheng=0;
int n;
while(cin>>n&&n!=0){
float num;
for(int i=0;i<n;i++){
cin>>num;
if(num<0){
fu++;
}else if(num==0){
ling++;
}else{
zheng++;
}
}
cout<<fu<<" "<<ling<<" "<<zheng<<endl;
fu=0, ling=0,zheng=0;
}
}
*/
//------------------------------------- F青年歌手大赛-------------------------------
/*
#include <iostream>
#include<iomanip>
using namespace std;
int main(){
int n;
float sum=0.0,avg=0.0;
while(cin>>n){
int score[100];
for(int i=0;i<n;i++){
cin>>score[i];
}
int max=score[0],min=score[0],indexMax=0,indexMin=0;
for(int i=0;i<n;i++){
if(max<score[i]){
max=score[i];
indexMax=i;
}else if(min>score[i]){
min=score[i];
indexMin=i;
}
}
score[indexMax]=score[indexMin]=0;
for(int i=0;i<n;i++){
sum+=score[i];
}
avg=sum/(n-2);
//cout<<avg<<endl;
//第一种写法
//cout.setf(ios::fixed);
//cout.precision(2);
//第二种写法
//cout<<setiosflags(ios::fixed)<<setprecision(2);
//第三种写法
cout<<fixed<<setprecision(2);
cout<<avg<<endl;
sum=0;
}
}
*/
//---------------------------------------------G数列有序-----------------------------
/*
#include<iostream>
using namespace std;
int main(){
int n,m,i,j;
int arr[101];
while(cin>>n&&cin>>m&&!(m==0&&n==0)){
if(n==0){
cout<<m<<endl;
}else{
for(i=0;i<n;i++){
cin>>arr[i];
}
for(i=0;i<n;i++){
if(m<arr[i]){
for(j=n;j>i;j--){
arr[j]=arr[j-1];
}
arr[i]=m;
break;
}
}
if(m>arr[n-1]) arr[n]=m;
for(i=0;i<n+1;i++){
cout<<arr[i];
if(i==n){
cout<<endl;
}else{
cout<<" ";
}
}
}
}
}
*/
//----------------------------------------- H 统计元音-------------------------
/*
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int n;
int num_a,num_e,num_i,num_o,num_u;
cin>>n;
getchar();
while(n--){
// char s[100];
char s[101];
num_a=num_e=num_i=num_o=num_u=0;
gets(s);
int len=strlen(s);
// int len=sizeof(s); //101 s是初始设定的,这里不能用
for(int i=0;i<len;i++){
switch(s[i]){
case 'a':num_a++;break;
case 'e':num_e++;break;
case 'i':num_i++;break;
case 'o':num_o++;break;
case 'u':num_u++;break;
}
}
cout<<"a:"<<num_a<<endl;
cout<<"e:"<<num_e<<endl;
cout<<"i:"<<num_i<<endl;
cout<<"o:"<<num_o<<endl;
cout<<"u:"<<num_u<<endl;
if(n>0) cout<<endl;
}
}
*/
//----------------------------------------- I 回文字 ----------------------------------------
/*
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int n;
cin>>n;
getchar();
while(n--){ //3-- 2-- 1--
string s; //char[n] 输入长度 n-1 否则报错 不设数组长度,则默认只选第一个
cin>>s;
// int len=strlen(s);
int len=s.length();
int flag=0;
for(int i=0;i<len/2;i++){
if(s[i]!=s[len-i-1]) //abba abccba abcba
flag=1;
}
if(flag==0){
cout<<"yes"<<endl;
}else{
cout<<"no"<<endl;
}
}
}
*/
//----------------------------------水仙花数----------------------------------
/*
#include<iostream>
using namespace std;
int main(){
int n,m;
int bai=0,shi=0,ge=0;
while(cin>>m&&cin>>n){
int flag=0;
for(int i=m;i<=n;i++){
ge=i%10;
shi=(i%100)/10;
bai=i/100;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
if(flag==0){
cout<<i;
flag=1;
}else{
cout<<" "<<i;
}
}
}
if(flag==0){
cout<<"no"<<endl;
}else{
cout<<endl;
}
}
}
*/
//--------------------------------查找最大元素-----------------------
/*
#include<iostream>
using namespace std;
int main(){
}
*/
//-----------------------------首字母变大写----------------------------
/*
#include<iostream>
#include<cstring>
//#include<cstdio>
using namespace std;
int main(){
char s[105];
while(gets(s)!=NULL){
int len=strlen(s);
for(int i=0;i<len;i++){
if(i==0){
s[i]=toupper(s[i]);
}else if(islower(s[i])&&s[i-1]==' '||s[i-1]=='\t'){
s[i]=toupper(s[i]);
}
}
puts(s);
// cout<<endl;
}
return 0;
}
*/
//--------------------------------------进制转换--------------------------
/*
#include<iostream>
#include<stack>
using namespace std;
int main(){
int n,m;
stack <char> s;
while(cin>>n>>m){
int temp; //记录求余的余数
if((n<0&&m>0)||(n>0&&m<0))
cout<<"-"; //负值输出负号
while(n){
temp=n%m;
temp=temp>0?temp:-temp; //temp此时有可能为负数,需要转换为正数
if(temp>=10){
s.push(temp-10+'A'); //11=B。11-10=1 1+'A'=字符B
}else{
s.push(temp+'0'); //3+'0' ==3.(字符类型)
}
n=n/m;
}
while(!s.empty()){
cout<<s.top();
s.pop();
}
cout<<endl;
}
return 0;
}
*/
//-----------------------------A图形输出--------------------------
/*
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=2*i-1;j++){
cout<<"*";
}
cout<<endl;
}
return 0;
}
*/
//-------------------------B字符串统计-------------------------------
/*
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int n;
int m;
cin>>n;
getchar();
m=n;
while(n--){
char s[100];
cin>>s;
int count=0;
int len=strlen(s);
for(int i=0;i<len;i++){
if(s[i]>=48&&s[i]<=57)
count++;
}
cout<<count<<endl;
}
return 0;
}
*/
代码小练习
最新推荐文章于 2024-07-24 22:13:06 发布