案例一:
//用goto语句,实现1加到n的和
#include <stdio.h>
int main( void )
{
int n;
int i =1;
int sum = 0;
printf("n: ");
scanf("%d",&n);
label:
sum += i++;
if(i<=n)
{
goto label;
}
printf("1+...+%d=%d\n",n,sum);
return 0;
}
案例二:
//用goto语句实现99乘法表.
#include <stdio.h>
int main( void )
{
int i=1;
int j=1;
out:
if (i > 9)
goto end;
j=1;
in:
if(j > i)
goto out2;
printf("%dX%d=%d\t",j,i,j*i);
j++;
goto in;
out2:
i++;
printf("\n");
goto out;
end:
return 0;
}
案例三
//用goto语句写输入一个十进制的整数,输出它对应的二进制数:
#include <stdio.h>
int main( void )
{
int num;
int i=0; //移动的位数
const int bits=sizeof(int)*8;
unsigned int mask = 1<<bits-1; //1左移31位。
printf("num:");
scanf("%d",&num);
label:
if (i>=bits)
goto secc;
printf("%c",(num&mask)!=0 ?'1':'0'); //1和任何数按位与都得到任何数。
mask >>= 1; //最终移动31次
i++;
goto label;
secc:
printf("\n");
return 0;
}