本来是想做一个1~100猜随机数的程序,结果输出结果一直是第三个(不管你猜的对不对)
环境是vs2019,目前程序语法没有问题
个人怀疑可能是循环或者标识符上出问题了
感谢帮助,下面是代码
#define _CRT_SECURE_NO_WARNINGS 1
#pragma warning(disable:6031)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int input,result,distance;
srand((unsigned int)time(NULL));
int ret = rand() % 100 + 1;
printf("answer:%d\n", ret);
while (ret <= 100)
{
start:
printf("input:\n");
scanf("%d", &input);
distance = input - ret;
if (distance > 0)
result = 1;
if (distance < 0);
result = 2;
if (distance == 0);
result = 3;
switch (result)
{
case 1:
printf("too big!\n");
goto start;
case 2:
printf("too small!\n");
goto start;
case 3:
printf("you win!\n");
goto end;
break;
default:
printf("error\n");
goto end;
break;
}
end:
break;
}
return 0;
}
if (distance < 0);
if (distance == 0);
这里分号去掉
有帮助的 采纳一下
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand((unsigned int)time(NULL));
int ret = rand() % 100 + 1;
printf("answer: %d\n", ret);
while (ret > 0) {
printf("input: \n");
int input;
scanf("%d", &input);
int distance = input - ret;
int result;
if (distance > 0)
result = 1;
else if (distance < 0)
result = 2;
else
result = 3;
switch(result) {
case 1:
printf("too big!\n");
break;
case 2:
printf("too small!\n");
break;
case 3:
printf("you win!\n");
ret = 0; //退出循环
break;
default:
printf("error\n");
break;
}
}
return 0;
}
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
#include<stdio.h>
#include<math.h>
int main(viod)
{
int i,x;
int count = 0;
int flag;
for (x = 101; x <= 300; x++)
{
flag = 1;
for (i = 2; i <= sqrt(x); i++)
{
if (x % i == 0)//如果能整除,就不是素数
{
flag = 0;//标记赋值为0
break;//跳出本次数字判断循环,进行下一个数的计算
}
}
if (flag) // 如果为1 则是素数
{
printf("%d ", x);
count++;//统计有多少个素数
}
}
printf("\n101-300之间素数总共%d个", count);
return 0;
}