c语言程序调试

发布网友 发布时间: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

还是您自己做吧!!!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com