C 减法不';I don’我不能工作,我怎样才能修理它?
嗨,我是c语言的新手,我正在做一个文本冒险游戏。但是我在做while循环时遇到了一个e减法的问题。问题是这个数字并没有改变,在第二个语句中它保持在95或90。有人能帮我解决这个问题,并向我解释减法是如何在循环中工作的吗?另外,我希望循环在敌人的生命为零时结束C 减法不';I don’我不能工作,我怎样才能修理它?,c,C,嗨,我是c语言的新手,我正在做一个文本冒险游戏。但是我在做while循环时遇到了一个e减法的问题。问题是这个数字并没有改变,在第二个语句中它保持在95或90。有人能帮我解决这个问题,并向我解释减法是如何在循环中工作的吗?另外,我希望循环在敌人的生命为零时结束 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <unistd.h> #include <signal
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <signal.h>
struct batman{
int helath,punch,kick,darts;
};
int main(void) {
int s=0,sum=0,r,knife=5,gun1=10,punch,enemy=100;
struct batman b;
b.helath=100;
b.punch=5;
b.kick=10;
b.darts=100;
printf("\nPress 1 for punch and 2 for kick");
srand(time(NULL));
do{
scanf("%d",&punch);
if(punch==1){
sum=b.punch-enemy;
printf("\nEnemy's Helath %d",sum);
}
else if(punch==2){
sum=b.kick-enemy;
printf("\nEnemy's Helath %d",sum);
}
r=rand()%2;
if(r==1){
s=b.helath-knife;
printf("\nBatman's Health%d",s);
}
else if(r==2){
s=b.helath-gun1;
printf("\nBatman's Health%d",s);
}
}while(punch==1||punch>=2);
return 0;
}
#包括
#包括
#包括
#包括
#包括
结构蝙蝠侠{
内击、击、踢、飞镖;
};
内部主(空){
int s=0,sum=0,r,刀=5,枪=10,拳,敌人=100;
结构蝙蝠侠b;
b、 helath=100;
b、 冲压=5;
b、 井涌=10;
b、 省道=100;
printf(“\n按1表示打孔,按2表示打孔”);
srand(时间(空));
做{
scanf(“%d”、&punch);
如果(冲压==1){
sum=b.punch-敌人;
printf(“\nEnemy的直升机路径%d”,总和);
}
否则如果(冲压==2){
sum=b.踢敌人;
printf(“\nEnemy的直升机路径%d”,总和);
}
r=rand()%2;
如果(r==1){
s=b.helath-knife;
printf(“\n阿特曼的健康状况%d”,s);
}
else如果(r==2){
s=b.helath-gun1;
printf(“\n阿特曼的健康状况%d”,s);
}
}而(打孔==1 | |打孔>=2);
返回0;
}
敌人的值永远不会改变,因此除非冲床的值改变,否则这实际上是一个常量。您可能希望执行以下操作:
enemy -= punch;
if (enemy <= 0) {
printf("Batman wins!");
}
敌方-=punch;
如果(敌方敌方的值从未改变,那么除非冲床的值改变,否则这实际上是一个常量。您可能需要执行以下操作:
enemy -= punch;
if (enemy <= 0) {
printf("Batman wins!");
}
敌方-=punch;
如果(请格式化您的代码并解释您的问题),您将不得不为要更新的变量分配新值。“问题是数字没有改变,它在第二个语句中保持在95或90。”哪个数字没有改变?什么是“第二个语句”?while(punch==1 | | punch>=2)
为什么不while(冲压>=1)
?每次分配给sum
时,您并不是从旧的sum
中减去。您只是从b
中的值中减去,该值不变。请格式化您的代码并解释您的问题。您必须为要更新的变量分配新值。“问题是数字没有改变,它在第二个语句中保持在95或90。”哪个数字没有改变?什么是“第二个语句”?while(punch==1 | | punch>=2)
为什么不while(punch>=1)
?每次分配给sum
时,您并不是从旧的sum
中减去。您只是从b
中的值中减去,该值不变。