1.打一个星号图
2.打一张九九乘法表(for(;;;)打成,导致了编译错误;\n不是/n是右上角的那个向右边偏)
3.break语句
使用break语句时注意以下几点:
1、在没有循环结构的情况下,break不能用在单独的if-else语句中。
2、在多层循环中,一个break语句只跳出当前循环。
找出1-50内所有的素数
思路 两层循环 被除数 和除数 若在(2,自己)开区间间有除数就break 不继续后面的循环了 其实也可以不用break 设个标志位表示有这样的除数存在 但是重点不是有几个 而是有没有 所以只要有就跳出循环 这样可以提高效率
#include <stdio.h>int main()
{
int m, n;
for(m=2; m<=50; m++)
{
for(n=2; n<m; n++)
{
if( m%n==0 ) //什么条件下跳出当前循环
break; //这里应该退出当前循环了
}
if(m == n) //n循环结束后,如果m=n的话就输出m
printf("%d ", m);
}
return 0;
}
4.continue 语句
continue语句的作用是结束本次循环开始执行下一次循环。break语句与continue语句的区别是:break是跳出当前整个循环,continue结束本次循环开始下一次循环。
求不能被3整除的数字之和,这样用continue可以很方便把不需要的循环剔除。如果不用,也可以if(i%3==0 sum不加 若!=0 sum 再加 这样就多了一个 if判断 麻烦)
#include <stdio.h>
int main()
{
int i, sum;
for(i=1, sum=0; i<=20; i++)
{
if( i%3==0 ) //能被3整除这个条件如何写呢?
{
continue; //应该用哪个循环结束语句呢?
}
sum += i;
}
printf("sum=%d\n", sum);
return 0;
}
5.break语句
在使用switch语句时还应注意以下几点:
1、在case后的各常量表达式的值不能相同,否则会出现错误。
2、在case子句后如果没有break;会一直往后执行一直到遇到break;才会跳出switch语句。
这前两个后面没有;所以运行结果是 好好休息
#include <stdio.h>
int main()
{
int score = 87; //考试分数为87分
score=score/10;
switch(score)
{
/*想想以下代码为什么用这种方式;
这种方式的好处?*/
case 10:
case 9:
printf("等级A");
break;
case 8:
printf("等级B");
break; //
case 7:
case 6:
printf("等级C");
break; //
default://表示不是以上的那些选项
printf("等级D");
break;
}
return 0;
}
6.
计算8月8日是第几天
判断闰年:if(year%4==0)&&(year%100!=0)||(year%400==0))
注意 switch 不要拼错 continue只能用在循环体中 break只可以用在循环体和开关中
以下这样写结果正确 但是感觉很傻。。。
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
/*
* 请使用switch语句,if...else语句完成本题
* 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
* 小编还是希望大家独立完成哦~
*/
int Feb;
int monthday;
int days;
if (year % 4 == 0)
{
Feb = 29;
}
else
Feb = 28;
switch(month - 1)
{
case 0:
monthday = 0;
break;
case 1:
monthday = 31;
break;
case 2:
monthday = Feb + 31;
break;
case 3:
monthday = 31 + Feb + 31;
break;
case 4:
monthday = 31 + Feb + 31 + 30;
break;
case 5:
monthday = 31 + Feb + 31 + 30 + 31;
break;
case 6:
monthday = 31 + Feb + 31 + 30 + 31 + 30;
break;
case 7:
monthday = 31 + Feb + 31 + 30 + 31 + 30 + 31;
break;
case 8:
monthday = 31 + Feb + 31 + 30 + 31 + 30 + 31 + 31;
break;
case 9:
monthday = 31 + Feb + 31 + 30 + 31 + 30 + 31 + 31 + 30;
break;
case 10:
monthday = 31 + Feb + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
break;
case 11:
monthday = 31 + Feb + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
break;
}//也可以先算平年的 然后再判断是否是闰年 若是 且 month>2 则+1即可
days = monthday + day;
printf("2008年8月8日是该年的第%d天", days);//这里不对 应该是 %d年%d月%d日
return 0;
}
7.goto语句
goto 语句标号;
其中语句标号是一个标识符,该标识符一般用英文大写并遵守标识符命名规则,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。
goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在特定情况下,可以使用goto语句来提高程序的执行速度,所以还是少用为妙。
例如:
#include <stdio.h>
int main()
{
int sum = 0;
int i;
for(i=1; i<=10; i++)
{
printf("%d\n", i);
if(i==3) //是不是少了一个判断呢?
goto loop; //在这里使用goto语句
}
loop: printf("结束for循环了...."); //请选择合适位置添加标识符
return 0;
}