编写函数,从键盘输入m,输出大于m且紧随m的素数。

题目如下:编写函数,从键盘输入m,输出大于m且紧随m的素数。我的代码为什么输出不了啊。

#include 
#include 
int main()
{int m;
printf("请输入一个数");
scanf("%d",m);
void sushu(int m);
return 0;
}
void sushu(int m)
{int i,a;
for(i=m+1;i<10000;i++)
{for(a=2;a<=sqrt(i);a++)
if(i%a==0) break;
if(a>sqrt(i))
{printf("该素数为:%d",i);
break;
}
}
}

  • scanf那边输入 m,要加上 取地址 &
  • 主函数 只是声明了 sushu函数,没有调用
  • 修改如下:
#include <stdio.h>
#include <math.h>
int main()
{
    int m;
    printf("请输入一个数");
    scanf("%d", &m);
    void sushu(int m);
    sushu(m);
    return 0;
}
void sushu(int m)
{
    int i,a;
    for(i=m+1;i<10000;i++)
    {
        for(a=2;a<=sqrt(i);a++)
            if(i%a==0) break;
        if(a>sqrt(i))
        {
            printf("该素数为:%d",i);
            break;
        }
    }
}

修改如下,供参考:

#include <stdio.h>
#include <math.h>
void sushu(int m);   //函数声明
int main()
{
    int m;
    printf("请输入一个数");
    scanf("%d",&m); //scanf("%d",m); 修改
    sushu(m);   //void sushu(int m); 函数调用

    return 0;
}
void sushu(int m)
{
    int i,a;
    for(i=m+1;i<10000;i++)
    {
        for(a=2;a<=sqrt(i);a++)
            if(i%a==0) break;
        if(a>sqrt(i))
        {
            printf("该素数为:%d",i);
            break;
        }
    }
}

#include <stdio.h>
#include <math.h>

int main() // 主函数
{
    int m;
    printf("请输入一个数"); // 提示输入
    scanf("%d", &m); // 从键盘输入一个数并存储在变量m中
    void sushu(int m); // 调用sushu函数,传入m作为参数
    return 0;
}

void sushu(int m) // 判断素数的函数
{
    int i, a;
    for (i = m + 1; i < 10000; i++) // 从m+1开始遍历到10000
    {
        for (a = 2; a <= sqrt(i); a++) // 遍历2到i的平方根
        {
            if (i % a == 0) // 如果i能被a整除
                break; // 跳出循环
        }
        if (a > sqrt(i)) // 如果a>i的平方根,说明i是素数
        {
            printf("该素数为:%d", i); // 输出i是素数
            break; // 跳出循环
        }
    }
}