头像

include4229


访客:5854

离线:3天前



问题:下面代码中str的长度是12,for循环却只循环了5次,遇到了空格就停下。我想输出整个str;

输入:olleh !dlrow

错误的代码:

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>

using namespace std;
int const N=1e5+7;
vector <char> word;

int main(){
  int n,j=0;
  char temp;
  string str;
  getline(cin,str);
  cout<<str.length();
  //在这输出的是12 
  for(int i=0;i<str.length();i++){
    if(str[i]!=' '){   
      word.push_back(str[i]);}
    else{
      reverse(word.begin(),word.end());
      for(int i=0;i<word.size();++i)  cout<<word[i];
      str.clear();
    }
    cout<<i<<endl;
    //循环输出了5次,到空格停止
  }
  return 0;
}

改完之后代码:

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>

using namespace std;
int const N=1e5+7;
vector <char> word;

int main(){
  int n,j=0;
  char temp;
  string str;
  cin>>n;
  getchar();//吸收换行符

  //在这输出的是12 
  while(n--){
    getline(cin,str);
    int len=str.length();

    for(int i=0;i<len+1;i++){
      if(str[i]==' '||i==len){
        reverse(word.begin(),word.end());
        for(int i=0;i<word.size();++i)  cout<<word[i];
        if(str[i]==' '){
          cout<<" ";
        }
        else  cout<<endl;
        word.clear();
      }
      else
        word.push_back(str[i]);
    }
    str.clear();
  }
  return 0;
}





#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

int num[30];
int n,m;

void dfs (int u,int star)//u从第几位开始 star是从那个数字开始
{
  if(u+n-star<m) return;
  if(u==m+1){
    for(int i=1;i<m+1;i++)  cout<<" "<<num[i];
    cout<<endl;
    return;
  }
  for(int i=star; i<=n; i++ ){
    num[u]=i;
    dfs(u+1,i+1);
    num[u] = 0; // 恢复现场
  }
}

int main(){
  cin>>n>>m;
  dfs(1,1);
  return 0;
}


活动打卡代码 AcWing 95. 费解的开关

include4229
1个月前
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

const int N=6;
char g[N][N],backup[N][N];
int dx[5]={0,0,0,-1,1}, dy[5]={1,-1,0,0,0};


void turn(int x,int y){
  for(int i=0;i<5;i++){
    int a = x+dx[i], b = y+dy[i];//局部变量,每次循环重新生成一次
    if(a>4 || a<0 || b>4 || b<0)  continue;
    g[a][b]^=1;//a ^=b与a=a^b相同; 0^0=0;1^1=0;0^1=0; 1^0=1
  }
}

int main(){
    int t;
    cin>>t;
    while(t--){
        for(int i=0;i<5;++i)    cin>>g[i];
        int res=10;

        for(int op=0;op<32;op++){
          memcpy(backup,g,sizeof g);//备份memcpy(备份,数据源,数据长度);
          int step=0;//记录每次的操作数

          for(int i=0; i<5; i++){//对第一行操作进行枚举
            if(op>>i & 1){//第i位是否为1
              turn(0,i);
              step++;
            }
          }

          for(int i=0;i<4;i++){//根据前一行对后一行进项操作
            for(int j=0;j<5;j++){
              if(g[i][j] == '0'){
                turn(i+1,j);
                step++;
              }
            }
          }

          bool flag = false;
          for(int i=0;i<5;i++){//前四行都变亮,判断最后一行是否全部亮灯
            if(g[4][i]=='0'){
              flag = true; //这里不可以写step=-1,如果写step=-1,则-1一直为该状态最小值,无求出最小的正数值。
              break;
            }  
          }

          if (!flag) res = min(res, step);//全部亮灯,取步数最小值
          memcpy(g,backup,sizeof g);//还原现场
        }
        if(res>6)  res=-1;
        cout<<res<<endl;
    }
    return 0;
}


活动打卡代码 AcWing 21. 斐波那契数列

include4229
2个月前
class Solution {
public:
    int Fibonacci(int n) {
        if (n<2){ return n; }
        int num[n];
        num[0]=num[1]=1;
        for(int i=2; i<n; ++i)
            num[i] = num[i-2] + num[i-1];
        return num[n-1];
    }
};


活动打卡代码 AcWing 709. 奇数

include4229
2个月前
#include <iostream>
using namespace std;
int main(){
    int x = 0;
    cin>>x;
    for( int i=0; i<x; ++i)
        cout<<++i<<endl;
    return 0;
}


活动打卡代码 AcWing 708. 偶数

include4229
2个月前
#include <iostream>
using namespace std;
int main(){
    for(int i = 1;i < 101; i++){
        cout<<++i<<endl;
    }
    return 0;
}



include4229
5个月前
`<style>
 div{
   height:50px;
   line-height:50px;
   text-align:center;
   border:double #ccc;
   width:100px;
 }

</style>
<script type="text/javascript">
    var t ;//注意下,这个t必须要是全局变量
    var flag = true;
    function contral(){
        flag ? startDate():clearTimeout(t);
        flag = !flag;
    }
    function startDate(){
        var date = new Date();
        var h = date.getHours();
        var m = date.getMinutes();
        var s = date.getSeconds();

            //在这里要对分和秒做判断
        m = checkDate(m);
        s = checkDate(s);

        document.getElementById('clock').innerHTML = h+':'+m+':'+s;

        t = setTimeout('startDate()',1000);

        return t;
    }
    function checkDate(i){
        if(i<10)    return '0'+i;
        return i;
    }

</script>

<div id="clock"></div>
    <button onclick="contral()">开始/暂停</button>
<script>

</script>
`


分享 DFR 1.1

include4229
5个月前

1.广义的概念:凡是在图形设备输出的点、线、文本等的集合都可以称图形。
2.点是图形的基本组成元素,与之同等重要的是点的组织方式。(正方形在坐标中的表示方式)
3.图形在数据库中的存储方式非常复杂。
4.点的基本操作:a.确定给定位置;b.连接定点(确定的值,不是给定的值)和给定点;c.计算坐标(相对增量(相较于前一个)和绝对增量(相对于定点))。
5.图形的表示数据与显示数据很少是相同的。显示文件仅仅是数据库的一部分,经过平移、旋转、缩放和各种投影操作来实现。
6.标准的投影操作是由硬件来实现的。
7.二维情况下,窗口的坐标可以是由数据库中的坐标或者是用户坐标来确定。(一般使用浮点数)



活动打卡代码 AcWing 1208. 翻硬币

include4229
7个月前
#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 110;
int res;
char start[N],aim[N];

void turn(int x){
    aim[x] = (aim[x] =='*'? 'o' : '*');
}
int main(){
    int n;
    cin>>start>>aim;
    n = strlen(aim);
    for(int i=0 ; i<n ; i++){
        if(start[i] != aim[i]){
            turn(i),turn(i+1);
            res++;
        }
    }
    cout<<res<<endl;
    return 0;
}


活动打卡代码 AcWing 717. 简单斐波那契

include4229
7个月前
#include <iostream>

using namespace std;
int main(){
    int n;
    cin>>n;
    int a=0,b=1,c=0;
    for(int i=0;i<n;++i){
        cout<<a<<" ";
        c=a+b;
        a=b,b=c;
    }
    return 0;
}