发布网友 发布时间:2022-04-23 18:08
共3个回答
热心网友 时间:2022-04-28 09:35
语法上的错误的修改:
void main()
{
int i=2,j,w=0,r;
double k;
while(i<=100)
{
j=2;
k=sqrt(i);
while(j<=k&& w==0)
{
r=(i%j);
if(r==0) //注意if语句条件判断是不是相等用两个==
w=1;
else
j=j+1;
}
}
if(w==0)
printf("素数为:%d",i);
}
上边的代码可以执行了,但是你写的代码逻辑上有错误。
我给你修改如下:
void main()
{
int i,j=2,w=0,r;
double k;
printf("请输入一个数据\n");
scanf("%d",&i);
k=sqrt(i);
while(j<=k&&w==0) //外层的循环没有必要,就算写上也可以,但是你得有跳出循环的语句
{ //否则就成了死循环。
r=i%j;
if(r==0)
{
w=1;
break;
}
else
j++;
}
if(w==0)
printf("%d是素数\n",i);
else
printf("%d不是素数\n",i);
}
热心网友 时间:2022-04-28 10:53
//---------------------------------------------------------------------------
#include<stdio.h>
#include<math.h>
void main()
{int i,b;
float yf=28; /*注意这里*/
float x[13]=; /*注意这里*/
float y[13]=; /*注意这里*/
double a,r[13];
r[0]=sqrt(x[0]*x[0]+y[0]*y[0]/4);
a=r[0];
for(i=1;i<14;i++)
{ yf=yf+y[i]; /*注意这里*/
r[i]=sqrt(x[i]*x[i]+yf*yf); /*注意这里*/
if(a>r[i])
{
a=r[i];
b=i;
}
printf("%d %f\n",b,a);
} /*注意这里*/
}
//---------------------------------------------------------------------------
热心网友 时间:2022-04-28 12:27
还是您自己做吧!!!