当前位置: 代码迷 >> C语言 >> 这个break为什么会提示错呀?
  详细解决方案

这个break为什么会提示错呀?

热度:312   发布时间:2008-04-15 21:10:28.0
这个break为什么会提示错呀?
void num(int m, int k, int xx[])
{
    int data=m+1;
    int i,n=0;
    for (i=2;i<sqrt(data);i++)
        if (data%i!=0)
        {
            xx[n]=data;
            n++;
            
        }
        if (n>=k)
               break;        data++;
}
假如m=17,k=5
提示:
Compiling...
0001.cpp
D:\C语言\新建程序\0001.cpp(18) : error C2043: illegal break
执行 cl.exe 时出错.

0001.exe - 1 error(s), 0 warning(s)
搜索更多相关的解决方案: break  int  提示  data  

----------------解决方案--------------------------------------------------------
你出了循环体了。。
----------------解决方案--------------------------------------------------------
对了,我再问个问题吧。
这个题目的意思是求一个数,然后紧跟着它后面的五个整数,这五个数都是素数。
例如:
我输入17 5
应该显示:19 21 23 29 31

我的程序是这样的,但错了咧。。。
#include <conio.h>
#include <stdio.h>
#include <math.h>

void readwriteDat();
void num(int m, int k, int xx[])
{
    int data=m+1;
    int i,n=0;
    for (i=2;i<=sqrt(data);i++)
        if (data%i!=0)
        {
            xx[n]=data;
            n++;
            
        }
        if (n>=k)
              break;
        data++;
}
void main()
{
    int  m, n, xx[1000];
    printf("\nPlease enter two integers:");
    scanf("%d%d", &m, &n);
    num(m, n, xx);
    for (m=0; m<n; m++)
        printf("%d ", xx[m]);
    printf("\n");
    readwriteDat();
}
void readwriteDat()
{
    int  m, n, xx[1000], i;
    FILE  *rf, *wf;
    rf = fopen("in.dat", "r");
    wf = fopen("out.dat", "w");
    for (i=0; i<10; i++)
    {
        fscanf(rf, "%d %d", &m, &n);
        num(m, n, xx);
        for (m=0; m<n; m++)
            fprintf(wf, "%d ", xx[m]);
        fprintf(wf, "\n");
    }
    fclose(rf);
    fclose(wf);
}
----------------解决方案--------------------------------------------------------
#include <conio.h>
#include <stdio.h>
#include <math.h>

void readwriteDat();
void num(int m, int k, int xx[])
{
    int data=m;
    
    int i,n=0;
    int flag,flag1;
    do{
        do{
             flag=0,flag1=0;
               data++;
             for (i=1;i<=sqrt(data);i++)
             if (data%i==0)
                  {
            
                     if(++flag1==2)
                        flag=1;
                   }
            }while(flag);
          xx[n++]=data;
    }while(n<k);
}
void main()
{
    int  m, n, xx[1000];
    printf("\nPlease enter two integers:");
    scanf("%d%d", &m, &n);
    num(m, n, xx);
    for (m=0; m<n; m++)
        printf("%d ", xx[m]);
    printf("\n");
    //readwriteDat();
}
----------------解决方案--------------------------------------------------------
  相关解决方案