错题:

章节六T2

错因:

缺少一项特殊情况。

思路

写一个包含很多“||”的判断语句即可。

参考代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int m;
    cin>>m;
    if(m%4==0||m%7==0||m%47==0||m%74==0||m%44==0||m%77==0||m%444==0||m%447==0||m%474==0||m%477==0||m%744==0||m%747==0||m%774==0||m%777==0){
        cout<<"YES";
    }else{
        cout<<"NO";
    }
}

章节六T4

错因:

只考虑了10岁以上的可能性。

思路

循环输入判断输入的是数字还是字符串,是数字就判断它是否小于18是字符串就判断它是不是酒水,如果以上两种有一种判定出来是true 计数变量加一 ,最后输出计数变量。

参考代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    int n,sum=0;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>s;
        if(s[0]=='1'&&s[1]-'0'<8&&s.size()==2||s.size()==1){
            sum++;
        }
        if(s=="ABSINTH"||s=="BEER"||s=="BRANDY"||s=="CHAMPAGNE"||s=="GIN"||s=="RUM"||s=="SAKE"||s=="TEQUILA"||s=="VODKA"||s=="WHISKEY"||s=="WINE"){
            sum++;
        }
    }
    cout<<sum<<endl;
}

章节六T3

错因:

数组过小。

思路

通过循环去前导0然后判断其长度是否一致 如果一致就一位一位的判断 大小如果大就输出>,如果小就输出< 满足以上任何一点就return 0;最后输出=结束程序 不一致就看哪个位数大来判断输出><.

参考代码

#include<bits/stdc++.h>
using namespace std;
int c[1000003],d[1000003];
int main(){
    int ca=0,cb=0;
    string a,b;
    cin>>a>>b;
    while(a[ca]=='0'){
        ca++;
    }
    while(b[cb]=='0'){
        cb++;
    }
    for(int i=ca;i<a.size();i++){
        c[i]=a[i]-'0';
    }
    for(int i=cb;i<b.size();i++){
        d[i]=b[i]-'0';
    }
    if(a.size()-ca>b.size()-cb){
        cout<<">";
        return 0;
    }else if(a.size()-ca<b.size()-cb){
        cout<<"<";
        return 0;
    }else{
        for(int i=0;i<a.size()-ca;i++){
            if(c[ca+i]>d[cb+i]){
                cout<<">";
                return 0;
            }else if(c[ca+i]<d[cb+i]){
                cout<<"<";
                return 0;
            }
        }
    }
    cout<<"=";
    return 0;
}

THE END