我正在编写程序来检查集合是否是集合的适当子集。我正在为这两个集合(数组)动态分配内存,但是在我提供了一个元素之后,程序停止执行。
x_low = 0.9*min(list_x)
x_high = 1.1*max(list_x)
x_extended = np.linspace(x_low, x_high, 100)
p1 = np.polyfit(list_x, list_y, 1) # this line refers to line of regression
ax1.xaxis.labelpad = 50
ax1.yaxis.labelpad = 50
plt.plot(x_extended, np.polyval(p1,x_extended),'r-') # this line refers to line of regression
plt.xlim(x_low, h_high)
**我也已在函数中正确传递了参数:printf(“%d \ n”,setID(p,p1,a,b)); **
答案 0 :(得分:1)
这里有一个错误
scanf("%d",p[i]);
应该是
scanf("%d", &p[i]);
,当您使用p1
执行此操作时,这是正确的做法。您说程序在提供了一个元素后就停止了,这与错误是一致的。
可能还有其他人发布的其他错误。
答案 1 :(得分:0)
在 setID 中:
for (int i=0; i<size2;i++)
{
if (arr2[i] == arr[i])
{
counter++;
}
...
您假设 arr 的大小是> = arr2 的大小,但这不是强制性的,因为您会读取它们的大小,而不是在分配时使用相同的大小数组并读取它们的值
如果size < size2
(在 main 中的a < b
),您走出 arr (在中的 p main ),则行为未定义