请问我这样用GOTO语句对不对?
#include"stdio.h"main(){inta;intb;intc;intd;inte;intf;intg;inth;inti;intj;intk;printf...
#include"stdio.h"
main()
{int a;int b;int c;int d;int e; int f;int g;int h;int i;int j;int k;
printf("现在即将开始进行测验!\n退出程序请按1,继续请按任意键\n");
scanf("%d",&a);
if(a=1) goto end;
else printf("现在开始测验啦!!!!!!\n");
printf("\n");
scanf("%d",&b);
if(b=1) goto lp2;
else {if(b=2) goto lp3;
else goto lp4;}
lp2: printf("2.\n");
scanf("%d",&c);
if(c=1) goto lp4;
else goto lp3;
lp3: printf("3.\n");
scanf("%d",&d);
if(d=1) goto lp4 ;
else {if(d=2) goto lp5;
else goto lp6;}
lp4:printf("4.否\n");
scanf("%d",&e);
if(e=1) goto lp5;
else goto lp6;
lp5:printf("5.\n");
scanf("%d",&f);
if(f=1) goto lp6;
else {if(f=2) goto lp7;
else goto lp8;}
lp6:printf("6\n");
scanf("%d",&g);
if(g=1) goto lp7;
else goto lp8;
lp7:printf("72否\n");
scanf("%d",&h);
if(h=1) goto lp9;
else goto lp10;
lp8:printf("8谓");
scanf("%d",&i);
if(i=1) goto lp9;
else{if(i=2) goto lp10;
else goto lp14;}
lp9:printf("不是\n");
scanf("%d",&j);
if(j=1) goto lp12;
else goto lp11;
lp10: printf("是2否\n");
scanf("%d",&k);
if(k=1) goto lp12;
else goto lp13;
lp11:printf("A");
lp12:printf("B");
lp13:printf("C");
lp14:printf("D");
}
如果不对请专家指正,另外编译时有点问题说error C2094: label 'end' was undefined 请教啊 我是菜鸟请详细回答 谢谢了
谢谢了谢谢了谢谢了谢谢了 电脑上显示最多只能给100分,我想多给不知道怎么整啊 展开
main()
{int a;int b;int c;int d;int e; int f;int g;int h;int i;int j;int k;
printf("现在即将开始进行测验!\n退出程序请按1,继续请按任意键\n");
scanf("%d",&a);
if(a=1) goto end;
else printf("现在开始测验啦!!!!!!\n");
printf("\n");
scanf("%d",&b);
if(b=1) goto lp2;
else {if(b=2) goto lp3;
else goto lp4;}
lp2: printf("2.\n");
scanf("%d",&c);
if(c=1) goto lp4;
else goto lp3;
lp3: printf("3.\n");
scanf("%d",&d);
if(d=1) goto lp4 ;
else {if(d=2) goto lp5;
else goto lp6;}
lp4:printf("4.否\n");
scanf("%d",&e);
if(e=1) goto lp5;
else goto lp6;
lp5:printf("5.\n");
scanf("%d",&f);
if(f=1) goto lp6;
else {if(f=2) goto lp7;
else goto lp8;}
lp6:printf("6\n");
scanf("%d",&g);
if(g=1) goto lp7;
else goto lp8;
lp7:printf("72否\n");
scanf("%d",&h);
if(h=1) goto lp9;
else goto lp10;
lp8:printf("8谓");
scanf("%d",&i);
if(i=1) goto lp9;
else{if(i=2) goto lp10;
else goto lp14;}
lp9:printf("不是\n");
scanf("%d",&j);
if(j=1) goto lp12;
else goto lp11;
lp10: printf("是2否\n");
scanf("%d",&k);
if(k=1) goto lp12;
else goto lp13;
lp11:printf("A");
lp12:printf("B");
lp13:printf("C");
lp14:printf("D");
}
如果不对请专家指正,另外编译时有点问题说error C2094: label 'end' was undefined 请教啊 我是菜鸟请详细回答 谢谢了
谢谢了谢谢了谢谢了谢谢了 电脑上显示最多只能给100分,我想多给不知道怎么整啊 展开
5个回答
展开全部
1.这样用goto语句很不好!
2.错误的原因是为设置end标签.
3.程序中有低级错误,比较数据是否相等要用"==","="是用于赋值.
4.采用开关结合循环实现跳转程序如下:
#include"stdio.h"
int main()
{
int a,b,c,d,e,f,g,h,i,j,k;
char ch='0';
printf("现在即将开始进行测验!\n退出程序请输入1\n");
printf("a=");
scanf("%d",&a);
if(a==1) exit(1);/*退出*/
printf("现在开始测验啦!!!!!!\n");
ch='b';
while(ch!='0')
{
switch(ch)
{
case 'b':
{
scanf("%d",&b);
switch(b)
{
case 1: { ch='c'; break; }
case 2: { ch='d'; break; }
default: { ch='e'; break; }
}
}
case 'c':
{
printf("2.\n");
scanf("%d",&c);
switch(c)
{
case 1: { ch='e'; break; }
default: { ch='d'; break; }
}
break;
}
case 'd':
{
printf("3.\n");
scanf("%d",&d);
switch(d)
{
case 1: { ch='e'; break; }
case 2: { ch='f'; break; }
default: { ch='g'; break; }
}
break;
}
case 'e':
{
printf("4.否\n");
scanf("%d",&e);
switch(e)
{
case 1: { ch='f'; break; }
default: { ch='g'; break; }
}
break;
}
case 'f':
{
printf("5.\n");
scanf("%d",&f);
switch(f)
{
case 1: { ch='g'; break; }
case 2: { ch='h'; break; }
default: { ch='i'; break; }
}
break;
}
case 'g':
{
printf("6\n");
scanf("%d",&g);
switch(g)
{
case 1: { ch='h'; break; }
default: { ch='i'; break; }
}
break;
}
case 'h':
{
printf("72否\n");
scanf("%d",&h);
switch(h)
{
case 1: { ch='i'; break; }
default: { ch='j'; break; }
}
break;
}
case 'i':
{
printf("8谓");
scanf("%d",&i);
switch(i)
{
case 1: { ch='j'; break; }
case 2: { ch='k'; break; }
default: { ch='D'; break; }
}
break;
}
case 'j':
{
printf("不是\n");
scanf("%d",&j);
switch(j)
{
case 1: { ch='B'; break; }
default: { ch='A'; break; }
}
break;
}
case 'k':
{
printf("是2否\n");
scanf("%d",&k);
switch(g)
{
case 1: { ch='B'; break; }
default: { ch='C'; break; }
}
break;
}
case 'A': printf("A");
case 'B': printf("B");
case 'C': printf("C");
case 'D': printf("D");
default: { printf("\n测试结束\n"); exit(0); }
}
}
}
2.错误的原因是为设置end标签.
3.程序中有低级错误,比较数据是否相等要用"==","="是用于赋值.
4.采用开关结合循环实现跳转程序如下:
#include"stdio.h"
int main()
{
int a,b,c,d,e,f,g,h,i,j,k;
char ch='0';
printf("现在即将开始进行测验!\n退出程序请输入1\n");
printf("a=");
scanf("%d",&a);
if(a==1) exit(1);/*退出*/
printf("现在开始测验啦!!!!!!\n");
ch='b';
while(ch!='0')
{
switch(ch)
{
case 'b':
{
scanf("%d",&b);
switch(b)
{
case 1: { ch='c'; break; }
case 2: { ch='d'; break; }
default: { ch='e'; break; }
}
}
case 'c':
{
printf("2.\n");
scanf("%d",&c);
switch(c)
{
case 1: { ch='e'; break; }
default: { ch='d'; break; }
}
break;
}
case 'd':
{
printf("3.\n");
scanf("%d",&d);
switch(d)
{
case 1: { ch='e'; break; }
case 2: { ch='f'; break; }
default: { ch='g'; break; }
}
break;
}
case 'e':
{
printf("4.否\n");
scanf("%d",&e);
switch(e)
{
case 1: { ch='f'; break; }
default: { ch='g'; break; }
}
break;
}
case 'f':
{
printf("5.\n");
scanf("%d",&f);
switch(f)
{
case 1: { ch='g'; break; }
case 2: { ch='h'; break; }
default: { ch='i'; break; }
}
break;
}
case 'g':
{
printf("6\n");
scanf("%d",&g);
switch(g)
{
case 1: { ch='h'; break; }
default: { ch='i'; break; }
}
break;
}
case 'h':
{
printf("72否\n");
scanf("%d",&h);
switch(h)
{
case 1: { ch='i'; break; }
default: { ch='j'; break; }
}
break;
}
case 'i':
{
printf("8谓");
scanf("%d",&i);
switch(i)
{
case 1: { ch='j'; break; }
case 2: { ch='k'; break; }
default: { ch='D'; break; }
}
break;
}
case 'j':
{
printf("不是\n");
scanf("%d",&j);
switch(j)
{
case 1: { ch='B'; break; }
default: { ch='A'; break; }
}
break;
}
case 'k':
{
printf("是2否\n");
scanf("%d",&k);
switch(g)
{
case 1: { ch='B'; break; }
default: { ch='C'; break; }
}
break;
}
case 'A': printf("A");
case 'B': printf("B");
case 'C': printf("C");
case 'D': printf("D");
default: { printf("\n测试结束\n"); exit(0); }
}
}
}
展开全部
先帮你把程序给改了。首先,你的end没有写,我补充了end: return ;
其次,if语句中的判断符号==你写成了=。就这两个错误。其他没什么问题。
然后强烈建议不要使用goto语句,goto语句能实现的功能用其他的语句都能实现的。使用goto语句只会让读程序的人(包括自己)头昏眼花的。
#include"stdio.h"
void main()
{
int a;int b;int c;int d;int e; int f;int g;int h;int i;int j;int k;
printf("现在即将开始进行测验!\n退出程序请按1,继续请按任意键\n");
scanf("%d",&a);
if(a==1) goto end;
else printf("现在开始测验啦!!!!!!\n");
printf("\n");
scanf("%d",&b);
if(b==1) goto lp2;
else {if(b==2) goto lp3;
else goto lp4;}
lp2: printf("2.\n");
scanf("%d",&c);
if(c==1) goto lp4;
else goto lp3;
lp3: printf("3.\n");
scanf("%d",&d);
if(d==1) goto lp4 ;
else {if(d==2) goto lp5;
else goto lp6;}
lp4:printf("4.否\n");
scanf("%d",&e);
if(e==1) goto lp5;
else goto lp6;
lp5:printf("5.\n");
scanf("%d",&f);
if(f==1) goto lp6;
else {if(f==2) goto lp7;
else goto lp8;}
lp6:printf("6\n");
scanf("%d",&g);
if(g==1) goto lp7;
else goto lp8;
lp7:printf("72否\n");
scanf("%d",&h);
if(h==1) goto lp9;
else goto lp10;
lp8:printf("8谓");
scanf("%d",&i);
if(i==1) goto lp9;
else{if(i==2) goto lp10;
else goto lp14;}
lp9:printf("不是\n");
scanf("%d",&j);
if(j==1) goto lp12;
else goto lp11;
lp10: printf("是2否\n");
scanf("%d",&k);
if(k==1) goto lp12;
else goto lp13;
lp11:printf("A");
lp12:printf("B");
lp13:printf("C");
lp14:printf("D");
end: return ; //加的
}
其次,if语句中的判断符号==你写成了=。就这两个错误。其他没什么问题。
然后强烈建议不要使用goto语句,goto语句能实现的功能用其他的语句都能实现的。使用goto语句只会让读程序的人(包括自己)头昏眼花的。
#include"stdio.h"
void main()
{
int a;int b;int c;int d;int e; int f;int g;int h;int i;int j;int k;
printf("现在即将开始进行测验!\n退出程序请按1,继续请按任意键\n");
scanf("%d",&a);
if(a==1) goto end;
else printf("现在开始测验啦!!!!!!\n");
printf("\n");
scanf("%d",&b);
if(b==1) goto lp2;
else {if(b==2) goto lp3;
else goto lp4;}
lp2: printf("2.\n");
scanf("%d",&c);
if(c==1) goto lp4;
else goto lp3;
lp3: printf("3.\n");
scanf("%d",&d);
if(d==1) goto lp4 ;
else {if(d==2) goto lp5;
else goto lp6;}
lp4:printf("4.否\n");
scanf("%d",&e);
if(e==1) goto lp5;
else goto lp6;
lp5:printf("5.\n");
scanf("%d",&f);
if(f==1) goto lp6;
else {if(f==2) goto lp7;
else goto lp8;}
lp6:printf("6\n");
scanf("%d",&g);
if(g==1) goto lp7;
else goto lp8;
lp7:printf("72否\n");
scanf("%d",&h);
if(h==1) goto lp9;
else goto lp10;
lp8:printf("8谓");
scanf("%d",&i);
if(i==1) goto lp9;
else{if(i==2) goto lp10;
else goto lp14;}
lp9:printf("不是\n");
scanf("%d",&j);
if(j==1) goto lp12;
else goto lp11;
lp10: printf("是2否\n");
scanf("%d",&k);
if(k==1) goto lp12;
else goto lp13;
lp11:printf("A");
lp12:printf("B");
lp13:printf("C");
lp14:printf("D");
end: return ; //加的
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
专家建议:不要用goto!
error C2094: label 'end' was undefined
标签“end”没有定义。
goto,是跳转的指令,必须指明跳转的位置,也就是标签,比如:
#include <stdio.h>
int main()
{
int sum=0,i=0;
loop:///////////这里就是一个标签
i++;
sum=sum+i;
if(i<100)
goto loop;/////这里是要跳到loop这个标签
printf("sum=%d\n",sum);
return 0;
}
error C2094: label 'end' was undefined
标签“end”没有定义。
goto,是跳转的指令,必须指明跳转的位置,也就是标签,比如:
#include <stdio.h>
int main()
{
int sum=0,i=0;
loop:///////////这里就是一个标签
i++;
sum=sum+i;
if(i<100)
goto loop;/////这里是要跳到loop这个标签
printf("sum=%d\n",sum);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include"stdio.h"
main()
{int a;int b;int c;int d;int e; int f;int g;int h;int i;int j;int k;
printf("现在即将开始进行测验!\n退出程序请按1,继续请按任意键\n");
scanf("%d",&a);
if(a=1) goto end;
else printf("现在开始测验啦!!!!!!\n");
printf("\n");
scanf("%d",&b);
if(b=1) goto lp2;
else {if(b=2) goto lp3;
else goto lp4;}
lp2: printf("2.\n");
scanf("%d",&c);
if(c=1) goto lp4;
else goto lp3;
lp3: printf("3.\n");
scanf("%d",&d);
if(d=1) goto lp4 ;
else {if(d=2) goto lp5;
else goto lp6;}
lp4:printf("4.否\n");
scanf("%d",&e);
if(e=1) goto lp5;
else goto lp6;
lp5:printf("5.\n");
scanf("%d",&f);
if(f=1) goto lp6;
else {if(f=2) goto lp7;
else goto lp8;}
lp6:printf("6\n");
scanf("%d",&g);
if(g=1) goto lp7;
else goto lp8;
lp7:printf("72否\n");
scanf("%d",&h);
if(h=1) goto lp9;
else goto lp10;
lp8:printf("8谓");
scanf("%d",&i);
if(i=1) goto lp9;
else{if(i=2) goto lp10;
else goto lp14;}
lp9:printf("不是\n");
scanf("%d",&j);
if(j=1) goto lp12;
else goto lp11;
lp10: printf("是2否\n");
scanf("%d",&k);
if(k=1) goto lp12;
else goto lp13;
lp11:printf("A");
lp12:printf("B");
lp13:printf("C");
lp14:printf("D");
end:
}
end没定义。。。在末尾加一个end标签,的确goto语句不建议使用,请用另一种编程方式。
main()
{int a;int b;int c;int d;int e; int f;int g;int h;int i;int j;int k;
printf("现在即将开始进行测验!\n退出程序请按1,继续请按任意键\n");
scanf("%d",&a);
if(a=1) goto end;
else printf("现在开始测验啦!!!!!!\n");
printf("\n");
scanf("%d",&b);
if(b=1) goto lp2;
else {if(b=2) goto lp3;
else goto lp4;}
lp2: printf("2.\n");
scanf("%d",&c);
if(c=1) goto lp4;
else goto lp3;
lp3: printf("3.\n");
scanf("%d",&d);
if(d=1) goto lp4 ;
else {if(d=2) goto lp5;
else goto lp6;}
lp4:printf("4.否\n");
scanf("%d",&e);
if(e=1) goto lp5;
else goto lp6;
lp5:printf("5.\n");
scanf("%d",&f);
if(f=1) goto lp6;
else {if(f=2) goto lp7;
else goto lp8;}
lp6:printf("6\n");
scanf("%d",&g);
if(g=1) goto lp7;
else goto lp8;
lp7:printf("72否\n");
scanf("%d",&h);
if(h=1) goto lp9;
else goto lp10;
lp8:printf("8谓");
scanf("%d",&i);
if(i=1) goto lp9;
else{if(i=2) goto lp10;
else goto lp14;}
lp9:printf("不是\n");
scanf("%d",&j);
if(j=1) goto lp12;
else goto lp11;
lp10: printf("是2否\n");
scanf("%d",&k);
if(k=1) goto lp12;
else goto lp13;
lp11:printf("A");
lp12:printf("B");
lp13:printf("C");
lp14:printf("D");
end:
}
end没定义。。。在末尾加一个end标签,的确goto语句不建议使用,请用另一种编程方式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
end没定义阿,你写哪了?
你这个用法的goto还是不要得好…goto会把堆栈弄乱,如果是return前goto一下也就罢了,你这个来回跳,还不断循环跳…
你这个用法的goto还是不要得好…goto会把堆栈弄乱,如果是return前goto一下也就罢了,你这个来回跳,还不断循环跳…
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询