C语言一号 发表于 2020-1-18 19:29:12

求解呀

代码正确,输出却不对,劳烦大神解决一下。非常感谢!#include<stdio.h>

int main()
{
    int a,b;
    _Bool flag=1;

    printf("请输入一个数:");
    scanf("%d",&a);

    if(a>1)
    {
      for(b=2;b<a/2;b++)
      {
            if(a%b==0)
            {
                flag=0;
            }
      }
      if(flag)
      {
            printf("%d是一个素数\n",&a);
      }
      else
      {
            printf("%d不是一个素数\n",&a);
      }
    }
    else
    {
      printf("请输入大于1的数\n");
    }

    return 0;
}
无论输入什么数字,输出总会出现6356724这几个数字

李星 发表于 2020-1-18 19:34:29

printf("%d是一个素数\n",&a);
这是在打印a的地址

C语言一号 发表于 2020-1-18 19:50:48

李星 发表于 2020-1-18 19:34
printf("%d是一个素数\n",&a);
这是在打印a的地址

请问学长,应该怎么改呢?输出那里有问题,比如输入23,enter 后为“6356724为素数”

zltzlt 发表于 2020-1-18 19:52:20

应该这样改:

#include <stdio.h>

int main()
{
    int a, b;
    _Bool flag = 1;

    printf("请输入一个数:");
    scanf("%d", &a);

    if (a > 1)
    {
      for (b = 2; b < a / 2; b++)
      {
            if (a % b == 0)
            {
                flag = 0;
            }
      }
      if (flag)
      {
            printf("%d是一个素数\n", a);
      }
      else
      {
            printf("%d不是一个素数\n", a);
      }
    }
    else
    {
      printf("请输入大于1的数\n");
    }

    return 0;
}

C语言一号 发表于 2020-1-18 19:57:04

zltzlt 发表于 2020-1-18 19:52
应该这样改:

非常感谢,搞定了,谢谢啦
页: [1]
查看完整版本: 求解呀