此代码有随机时间的使用,以及while循环
#include <stdio.h>
#include <time.h> //time()
#include <windows.h>//Sleep()休眠
int main()
{
srand(time(NULL));//使用时间作为种子,产生随机数字
printf("随机数字: %d\n",rand());//rand()函数的取值范围是0-32767
/*使用循环模拟实现玩家对战
双方初始HP为100
每次攻击5-15
HP最先为零或复制被KO
*/
int hp1=100,hp2=100;//两个玩家血量初始化
int att1,att2; //两个玩家攻击力
int i=0;
while( hp1 >= 0 && hp2 >= 0)//当都生存时,继续对战
{
//默认1p先攻击
att1 = rand() % 11 + 5; //攻击力在5-15之间
att2 = rand() % 11 + 5;
i++;
//玩家1攻击,玩家2掉血
hp2 -=att1;
//玩家2攻击,玩家1掉血
hp1 -=att2;
if(hp1<=0)
{
printf("玩家1输,玩家2剩余血量:%d\n",hp2);break;
}
if(hp2<=0)
{
printf("玩家2输,玩家1剩余血量:%d\n",hp1); break;
}
printf("第%d轮\n",i);
printf("************************************\n");
printf("玩家1攻击力: %d,玩家2剩余血量: %d\n",att1,hp2);
printf("玩家2攻击力: %d,玩家1剩余血量: %d\n",att2,hp1);
printf("************************************\n\n");
Sleep(1000);//休眠1000毫秒
}
printf("KO\n玩家1的血量:%d 玩家2的血量:%d",hp1,hp2);
}
此代码实现了星星塔的输出,运用for循环及星星塔中‘ ’和‘*’的关系与规律。
#include <stdio.h>
int main()
{
int i;
int j;
int k;
int num;
for(;;)
{
printf("请输入你的星星塔层数:");
scanf("%d",&num);
if(num > 0)
{
break;
}
printf("不符合输入要求,请重新输入\n");
}
for(i = 0;i < num;i ++)
{
for(k =0; k < (num - 1) - i;k++)
{
printf(" ");
}
for(j = 0; j <= 2 * i;j ++)
{
printf("*");
}
printf("\n");
}
for(i = 0;i < num - 1;i++)
{
for(k = 0;k < i + 1;k ++)
{
printf(" ");
}
for(j =0 ; j<=(num * 2 - 1) - 3 - ( i * 2) ;j++) //(2 * num)+1 -(i + 1) * 2 - 3
{
printf("*");
}
printf("\n");
}
return 0;
}