我试图创建一个代码来删除数组中的相同元素。问题是EXC_BAD_ACCESS(代码= 1,地址= 0x30000008)问题。当我试图运行我的代码时,它在这里。“
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand (time(NULL));
int i, j, b, c;
double A[11];
double B[10];
char choice;
for (i = 0; i < 11; i++)
{
A[i] = rand () %100;
}
for (j = 0; j < 10; j++)
{
B[j] = rand () % 100;
}
printf("Array A[N]: \n");
for (i = 0; i < 10; i++)
{
printf("%.2lf ", A[i]);
}
printf("\n Array B[M]: \n");
for (j = 0; j < 10; j++)
{
printf("%.2lf ", B[j]);
}
for (i = 0; i < 11; i++)
{
for (j = 0; j < 10; i++)
{
** if (A[i]==B[j])
Exception has occurred.
EXC_BAD_ACCESS (code=1, address=0x16fe00000)**
{
for (c = j; c < 10; c++)
{
B[c] = B[c+1];
}
j--;
}
}
}
printf("\n New array B[M]: \n");
for ( j = 0; j < 9; j++)
{
printf ("%.2lf", B[c]);
}
return 0;
}
希望能帮上忙谢谢
我试图定义N11和M10,这样它就能工作了,但不幸的是,没有。
1条答案
按热度按时间6jygbczu1#
在这部分中,如果c = 9(最后一次迭代),则有B[9] = B[10]; B的大小为10,因此索引的最大值必须为9。
我的解决方案如下: