博客园最新作业

1、思维导图

2、语法认识

(1)if

if(条件)
{
语句1;
}
else{
语句2;
}

若只有单个语句可不加{} 可嵌套使用,else跟最近的if使用,表示条件,如果怎么样就怎么样,否则怎么样。

遇到的问题:else匹配的if有时会弄错。忘记加{}。
解决方法:多写几遍就不会错了。

(2)switch

switch(条件)
{
case 1case 2default:
}

跟if的用法差不多但是如果分类数量比较多的话用起来比较方便。

遇到的问题:刚开始不知道后面的()要填什么。

解决方法:多看看例子慢慢理解。

(3)for

for( ; ; )
{
语句1;
}

for第一个括号中是初始量,然后第二个括号可以控制循环几次,第三个括号循环最后结束要做的事情,比如初始量++;{}里就是循环过程中要做的事情。
遇到的问题:不知道怎么无限循环。
解决方法:求助大佬。

(4)while

while(条件)
{
语句1;
}

循环语句,符合条件的时候就进行循环直到条件不符合,在结尾要设置能够结束循环的语句。

(5)do while

do{
语句1;
}
while(条件)

跟while和for差不多,就是先做一次指令再看符不符合条件再进行循环。

(6)break  continue

for(i=1;i<=9;i++)                            for(i=1;i<=9;i++)
{                                                      {  
语句1;                                                 if(i=3)
breakcontinue;
}                                                        语句1;
                                                         }

break 一般是在循环语句中有个if语句,这样一符合if的条件就break退出循环。continue 是跳过这一圈循环的剩下语句,继续执行下一遍循环。

3、pta分数截图

 

4、pta代码分析

 

本题要求计算给定的一系列正整数中奇数的和。

输入格式:

输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。

输出格式:

在一行中输出正整数序列中奇数的和。

输入样例:

8 7 4 3 70 5 6 101 -1

输出样例:

116
#include<stdio.h>
int main()
{
    int a,i,s=0;
    for(i=1;;i++)
    {
        scanf("%d",&a);
        if(a<=0)break;
        else if(a%2!=0)
        {
            s+=a;
        }
    }
    printf("%d",s);
    return 0;
}

大概思路就是先定义需要的标识符,然后scanf输入,用for循环和if条件控制结束循环或者把符合要求的加起来。

错误原因:s忘记定义为0,不知道怎么无限循环。通过这道题我学会了如何无限循环。

第二题、

 

本题要求编写程序,找出给定一系列整数中的最小值。

 

输入格式:

 

输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。

 

输出格式:

 

在一行中按照“min = 最小值”的格式输出n个整数中的最小值。

 

输入样例:

 

4 -2 -123 100 0

 

输出样例:

 

min = -123
#include<stdio.h>
int main()
{   int n,i,min,l;
    scanf("%d %d",&n,&l);
    min=l;
    for(i=1;i<n;i++)
   {
    scanf("%d",&l);
    if(min>l)
    min=l;
   }
    printf("min = %d",min);
    return 0;
 }

思路就是先定义,然后输入多少个数字和其中的一个数字,然后设那个数字为最小值,进行循环,如果新输入的数字小于最小值,则将新输入的数字赋给最小值。

错误原因:没想到这种方法。通过这道题学会了更多的赋值方法。

第三题、

 

对于给定的正整数N,求它的位数及其各位数字之和。

 

输入格式:

 

输入在一行中给出一个不超过109​​的正整数N。

 

输出格式:

 

在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。

 

输入样例:

 

321

 

输出样例:

 

3 6
#include<stdio.h>
int main()
{
    int n,count=0,s=0;
    scanf("%d",&n);
    while(n!=0)
    {
        count++;
        s+=n%10;
        n=n/10;
    }
    printf("%d %d",count,s);
    return 0;
}

思路是将输入的数字多次/10,最后数字被/到0的时候,累加/的次数,就是几位数,利用%可分出每个位的数,再加起来。

最后总结:我觉得通过做题我学到了更多的方法,而且运用那些语法语句都更加流畅,更加熟悉,我觉得收获很大,刷题还是挺有用处的。通过刷题可以更快更容易地熟悉知识点,而且通过不断思考会留下更深的印象。

 

 

 

 

 





posted @ 2019-10-15 12:07  揍你没商量  阅读(218)  评论(0编辑  收藏  举报