2020-12-10

C++语法基础回顾

循环结构

循环结构for; while; do while
循环与判断不同

flowchart
st=>start: if(判断条件)
e=>end:>
op1=>operation: 条件
cond=>condition: Yes or No?:
io=>inputoutput: ok
para=>parallel: end

st->op1->cond
cond(yes)->io->e
cond(no)->e
flowchart
st=>start: while(cricle条件)
e=>end:>
op1=>operation: judge条件
cond=>condition: Yes or No?:
io=>inputoutput: ok
para=>parallel: end
op2=>operation: situation

st->op1->cond
cond(yes)->io->op2->op1
cond(no)->e
flowchart
st=>start: do
e=>end:>
op1=>operation: context
cond=>condition: while(Yes or No?:)
io=>inputoutput: ok
para=>parallel: end
op2=>operation: situation

st->op1->cond
cond(yes)->io->op2->op1
cond(no)->e

while类似于下买票后上车
do while类似于先上车后买票

for循环不同
基本思想:把控制循环次数的变量从循环体中剥离

for(1-int-statemenr: 2-condition-5:4-expression)
{
 3-statement
}

int-statement 可以是声明语句、表达式、空语句,一般用来初始化循环变量;
condition 是条件表达式,和while中的条件表达式作用一样;可以空,空语句表示true;
expression 一般负责修改循环变量,可以为空。
先前的执行循序是1-2-3-4,之后的顺序是3-4-5

while循环的特点

while(cin >>N && N ) //表示cin读到0或N=0时结束循环
while(cin>>N ,N)//逗号表达式,最后一个输出的是N,N不能为0
while(scanf("%d%d",A,N) != -1)//scanf输入也会有中止符EOF=-1 ,如果读到-1即循环结束
while(~scanf("%d%d", A, N))//~表示取反

while循环处了循环条件,可以加入其它
输入和逻辑判断的加入,与for循环似乎更加相似

习题回顾

1.726. 质数

#include<iostream>
#include<cstdio>

using namespace std;

int main()
{
    int n;
    cin >>n;
    while(n--)
    {
        int x;
        cin >>x;
        bool is_prime = true;
        for(int i = 2; i * i <= x; i++){
            if(x % i ==0) is_prime = false;
        }
        if(is_prime) printf("%d is prime\n", x);
        else printf("%d is not prime\n", x);
    }
    return 0;
}

该题是判断质数(偶数没差别),控制循环次数,循环结构调整为 i< x / i ,这里最大是i2 = x, 即只要循环到i即可;
对于质数x % i = 0即可;
对于偶数判断情况不同:
1.if( n % i != 0)
2 if(i != n / i & n / i < n) //;排除平方数以及n/i的另一个除数。
最后就是bool的运用,可以简便很多

2.716. 最大数和它的位置

#include<iostream>

using namespace std;

int main()
{
    int max_value = 0;
    int position = 0;
    for(int i = 1; i<= 100; i++)
    {
        int a;
        cin >>a;
        if(a > max_value)
        {
            max_value = a;
            position = i;
        }

    }
    cout << max_value<<'\n'<<position<<endl;
    return 0;
}//刚开始并没有想到要存储最大值,位置,需要在不断的判断过程中,找到最大值,找到位置(学习思路) 需要不断进行更新,替换。
上一篇:PHP缺乏无符号整数和MySQL的CRC32函数


下一篇:Php与Sphinx的联系遭到拒绝