23臭名昭著的goto语句
goto语句是一种无条件分支语句,goto 语句的使用格式为:goto 语句标号
例如 goto end;
End:prinyf(….
其中语句标号是一个标识符,该标识符一般用英文大写并遵守标识符命名规则,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。
goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在特定情况下,可以使用goto语句来提高程序的执行速度,所以还是少用为妙。
代码例子:
求10以内的和:
#include<stdio.h>
int main()
{
int sum=0;
int i=1;
loop:if(i<=10)
{
sum=sum+i;
i++;
goto loop;
}
printf("sum=%d",sum);
return 0;
}
输出sum=55
今天做的一些题
#include<stdio.h>
int main()
{
int year=2008;
int month=8;
int day=8;
int sum,a;
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("一年只有12个月");break;
}
sum=sum+day;
if(year%400==0||(year%4 == 0 && year%10!=0))
{
a=1;
}
else
{
a=0;
}
if(a==1&&month>2)
sum++;
printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
return 0;
}
很难的一题
从键盘输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时循环结束。
输入格式:
在一行中输入若干个用空格间隔的整数,最后输入负数结束输入,数据之间只能用1个空格间隔。
输出格式:
在一行中按照“max=最高分,min=最低分”的格式输出结果,最高分和最低分均原样输出,没有列宽控制
#include<stdio.h>
int main()
{
int n,max,min;
max=0,min=11111111;
while(scanf("%d",&n))
{
if(n<0)
break;
max=(n>max?n:max);
min=(n<min?n:min);
}
printf("max=%d,min=%d",max,min);
return 0;
}
#include<stdio.h>
int main()
{
int m,n;
int sum=0;
scanf("%d%d",&m,&n);
do
{
sum=sum+m;
m=m+1;
}while(m<=n);
printf("sum=%d",sum);
return 0;
}
#include<stdio.h>
int main()
{
int i;
for(i=1;i<=10;i++)
{
printf("%d\n",i);
if(i==3)
{
goto end;
}
}
end:printf("结束");
return 0;
}