程序上的小问题
查看原帖
程序上的小问题
762646
Piggy343288楼主2022/9/4 08:53
#include <iostream>
#include <vector>
using namespace std;
void print(vector<int> a,string end="\n"){
    for (int i=0;i<a.size()-1;i++){
        cout<<a[i]<<" ";
    }
    cout<<a[-1]<<end;
}
int main(){
    int N;cin>>N;
    vector<int> bits;
    int _;
    cout<<N<<endl;
    for (int i=0;i<N/8;i++){
        cin>>_;
        for(int j=0;j<8;j++){
            bits.push_back(_&1);
            _>>1;
        }
    }//按位读入 
    
    vector<int> ans;
    ans.push_back(bits[0]<<7+1);
    for(int i=1;i<N;i++){
        if (ans[-1]>>7==bits[i]){
            ans[-1]++;//目前的像素值:ans[-1]>>7如果bits[i]是相等的,给ans[-1]计数器+1 
        }else{
            ans.push_back(bits[i]<<7+1);//否则把这个像素压到vector末尾 
        }
    }
    print(ans);
    return 0;
}

不知道为什么这个程序过不了,用样例8 0测试,总会出现几千万的奇怪中间量,请问能否给予解答,谢谢大佬们

2022/9/4 08:53
加载中...