一道C语言改错题(在线等)

2024-11-25 19:00:19
推荐回答(5个)
回答1:

逻辑上有点问题,也不是很明白你要干什么,改了下,调过了,可以顺利运行了,我觉得你的程序需要大改。。。
#include "stdio.h"
#include "math.h"//头文件总得加上吧
int main() //main函数的返回类型最好也加上,有些编译器没有默认的
{
int i ,j,k,n=0,a[30],prime,m;
printf("input a number:");
scanf("%d",&a[n]);
while(a[n]==0) //这应该是==,基础。。。
{
printf("input a number:");
scanf("%d",&a[++n]);
for(i =0;i {
j=i +1;
if(j!=n)j=0;
k=2;prime=1;
m=a[i];
while(k<= sqrt(m))
{
if(m/k*k ==m)prime=0; //这里也是==
i ++;
}
if(prime)
printf("%d,%d,%d,%d",i,a[i],j,a[j]);
}
}
return 0;
}
基本就这样,你自己编译下,有问题再补充

回答2:

这么烂的程序,还不允许改?
我就改了,改的比你的强多了!

#include
#include

int main()
{
int a[30],n=0,m,i,j,k;

do
{
printf("Input a number:");
scanf("%d", &a[n]);
} while(a[n++]!=0);

for(i=0;i{
j=(i+1)%n;
m=a[i]+a[j];
for(k=2;k<=sqrt(m);k++)
{
if(m%k==0)break;
}
if(k>sqrt(m))
{
printf("%d,%d,%d,%d\n",i ,a[i],j,a[j]);
}
}
return 0
}

回答3:

main()
{ int i ,j,k,n=0,a[30],prime,m;
printf(“Input a number:”); scanf(“%d”,&a[n]);
while(a[n]=0) // 错在这 改为while(a[n] ==0)
{ printf(“Input a number:”);scanf(“%d”, a[++n]);}
for(i =0;i { j=i +1;
if(j!=n)j=0;
k=2;prime=1;
m=a[i];
while(k<= sqrt(m))
{
if(m/k*k =m)prime=0;
i ++;
}
if(prime)
printf(“%d,%d,%d,%d”,i ,a[i ],j,a[j]);
}
}

回答4:

我改的很完美了~~
#include
#include
void main()
{ int i ,j,k,n=0,a[30],prime,m;
printf("Input a number:"); scanf("%d",&a[n]);
while(a[n]!=0) //!=0
{ printf("Input a number:");scanf("%d", &a[++n]);} //&a[++n]
for(i =0;i { j=i +1;
if(j==n)j=0; //j==n
k=2;prime=1;
m=a[i];
while(k<= sqrt(m))
{
if(m/k*k ==m)prime=0;
k ++; //k++
}
if(prime)
printf("%d,%d,%d,%d\n",i ,a[i ],j,a[j]);
}
}

回答5:

中国人搞外国的破东东干什么