+关注继续查看

关于作者:

2019NOIP退役成员,学习c语言已有多年经验, 更懂得考试的题目,和初学者学习时所遇到的问题

华为云享专家,以及CSDN的新星创作者,有写博客的一定能力

关于本栏目

本栏目的宗旨是 带你入门c语言 ,作者打算用题海+c语言的概念来完成本栏目,

适用人群: 面向广大的编程爱好者和大学生来进行创作

学完本栏后你能达到的水平: 计算机二级水平左右,入门c语言学习

题目:主要来源于网络和c语言的入门算法题目

写在前面的话(第七天)

记住我们的宗旨: 努力去做,让一切交给时间来评判!

for语句

试想一个操作,我们定义一个数组大小为10,然后要给这个数组中存入数据,

int a[10];
a[0]=1;
a[1]=2;
a[9]=10;

此刻即可使用循环语句,for语句来实现这个操作

for(int i=0;i<10;i++)
    a[i]=i+1;
}

程序分析:

int i=0;为循环初始条件
i<10;为循环条件,当i<10时循环继续进行
i++;i每次循环自增1

for循环的几种变形

实际上for循环中的三个内容都可以省略, 然后在{}中体现 ,下面我们来看:

int a[10];
int i=0;
for( ; i<10 ; i++)
    a[i]=i+1;
}
int a[10];
int i;
for(i = 0; ;i++)
    if(i>=10)
        break;
    a[i]=i+1;
}
int a[10];
int i;
for(i = 0;i<10; )
    a[i]=i+1;
}

不难看出如果要使得一个循环正常执行,3个条件缺一不可,否则会成为死循环,像下面这个一样:

for( ; ; )
    printf("我是死循环\n")
}

continue语句

上一讲中我们提到了break语句,这次我们来看一下它的兄弟——continue语句

continue语句只在循环语句中
在循环体中的语句集合执行中,continue语句用于 结束本次循环。
#include <stdio.h>
int main()
    int a[10] = { 0 };//全部置为0
    for (int i = 0; i < 10; i++)
        if (i == 1)
            continue;
        a[i] = i + 1;
        printf("%d\n", a[i]);
    return 0;
}

在这里插入图片描述
continue语句和break语句的区别是:

continue语句只结束本次循环体的执行,而不是中止整个循环,而break语句则是结束本循环语句,不再进行循环条件判断。

例题

今天的题较前几天比较难,我带着大家做几个,之后自己完成,坚持就是胜利!!!
Cantor 表
题解:
模拟,按照题意来写代码

#include<stdio.h>
int main() 
    int n,k=1;
    scanf("%d",&n);
    for(k=1;n>k;k++)
        n=n-k;
    if(k%2==0)
        printf("%d/%d",n,(k+1-n));
        printf("%d/%d",(k+1-n),n);
    return 0;
}

零花钱判断高兴

#include<stdio.h>
int main ()
    int a,b,s,max=0,i,day=0;  //a,b是津津
    for (i=1;i<8;i++)    
        scanf("%d%d",&a,&b);    //输入a,b 
        s=a+b;   //计算一天的上课时间 
        if ((s>max)&&(s>8)) max=s,day=i;  //在超过8小时且比之前几天都大的s时,将s赋给最大值,并记录下JJ的这天 
    printf("%d",day); 
    return 0;             
}

下面的题自行完成,不会的欢迎评论区留言:

明明的随机数
数字统计
哥德巴赫猜想