关于作者:
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;
i++;
}
不难看出如果要使得一个循环正常执行,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));
}
else
{
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;
}
下面的题自行完成,不会的欢迎评论区留言: