【发布时间】:2019-12-27 19:03:01
【问题描述】:
我编写了一个程序来比较 2 个不同大小的数组,程序应该比较数组并返回第一个数组的索引,其中开始相等,但是对于某些语法或逻辑问题,程序无法正常工作。所以请查看代码并告诉我问题出在哪里。谢谢。
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int subArray( int first[], int size1, int second[], int size2)
{
int key = second [0] ; //init key of first element in second array
int i;
int y;
int found,count;
for (i = 0 ;size1 < i; i++)
{
if (first[i] == key)
count ++;
found = 1;
}
if (found== 1) // should compare first and second array and return -1 if not equal
{
for (y = 0 ;size2 < y; y++)
{
if (first[i] != second[y])
result =-1;
else
{
i++;
}
}
return result=count; //return index of first array where equal startring
}
int main()
{
int result;
int sizeArr1;
int sizeArr2;
int arr1[40]={0};
int arr2[40]={0};
// taking input and storing it in first array
scanf_s("%d", &sizeArr1);
for(int i = 0; i < sizeArr1; ++i)
{
scanf_s("%d", &arr1[i]);
}
// taking input and storing it in second array
scanf_s("%d", &sizeArr2);
for(int i = 0; i < 5; ++i)
{
scanf_s("%d", &arr2[i]);
}
result = subArray(arr1,sizeArr1,arr2,sizeArr2);
printf("%d",result);
}
【问题讨论】:
-
“不工作”从来都不是一个好的问题描述。发生什么了?它会崩溃吗?它什么都不打印吗?它有时会得到正确的答案吗?等给出输入、预期输出和实际输出。还有你做了什么来调试它 - 例如在调试器中运行和/或添加更多调试打印?
-
@Alexander Bazikalo 你想判断第二个数组是否是第一个数组的子数组吗?
-
学习正确缩进你的代码。良好的缩进可以帮助找到细微的错别字,例如下面的答案所指出的错别字。