C语言1~100猜随机数程序

本来是想做一个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;
}
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7500117
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【C语言经典100题】求1~20阶乘的和
  • 除此之外, 这篇博客: C语言18个经典程序VS2019 源码与展示中的 3、判断101-300之间有多少个素数,并输出所有素数及素数的个数。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 程序分析:判断素数的方法:用一个数分别去除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;
    }
    

    在这里插入图片描述

  • 您还可以看一下 王伟老师的C语言编程入门100题课程中的 第50关 计算数组元素平均值小节, 巩固相关知识点