[求助] 编译成功,但运行不了????
关于从数组中找出素数和个数:#include<math.h>
main()
{int j=1,i,m,n,a[5],b[5];
printf("please input the number:");
for(i=1;i<=5;i++)
scanf("%d,",&a[i]);
for(i=1;i<=5;i++)
{for(m=2;m<5;m++)
if(a[i]%m==0)
{b[j]=a[i];j++;}
}
n=j-1;
printf("the total of prime number is:%d\n",n);
printf("the prime number is:");
for(j=1;j<=n;j++)
printf("%d,",b[j]);
}
运行后,出现:
16位MS-DOS子系统
NTVDM CPU 遇到无效的指令。
CS:055c IP:022a OP:ff e8 3f 01 c4 选择“关闭”终止应用程序。
这是为什么?
----------------解决方案--------------------------------------------------------
以下是引用52wd在2005-7-17 0:34:29的发言:
关于从数组中找出素数和个数:
#include<math.h>
main()
{int j=1,i,m,n,a[5],b[5];
printf("please input the number:");
for(i=1;i<=5;i++)
scanf("%d,",&a[i]);
for(i=1;i<=5;i++)
{for(m=2;m<5;m++)
if(a[i]%m==0)
{b[j]=a[i];j++;}
}
n=j-1;
printf("the total of prime number is:%d\n",n);
printf("the prime number is:");
for(j=1;j<=n;j++)
printf("%d,",b[j]);
}
运行后,出现:
16位MS-DOS子系统
NTVDM CPU 遇到无效的指令。
CS:055c IP:022a OP:ff e8 3f 01 c4 选择“关闭”终止应用程序。
这是为什么?
我帮你指出的地方数组越界,当i=5时a[5]无此元素,你声明的int a[5];a包含五个元素,下标从0~4 ----------------解决方案--------------------------------------------------------