我在理解程序状态时遇到问题,我很难用一句话来解释它,所以我将解释整个程序的要点。
因此,对于我的家庭作业,我必须制作一个程序,要求用户输入数字N来表示数组中元素的数量,然后用户输入该数组中的元素(假设用户将输入正确的元素数量)程序然后需要使用XOR(^)运算符将该数组中的每个数字与数字X进行比较。
任务是找到该X的最小值,在该最小值中,所得数组将具有按升序排列的元素。听起来有点复杂,但这是应该的工作方式:
所以我编写了程序,每个例子都能很好地返回良好的值,供我们参考,我的唯一问题是我不知道何时停止寻找该数字X,或者我怎么知道最小值该数字数组的X不存在。在这种情况下,我的程序将永远运行并且不返回任何值,因此基本上是一个无限循环。
我需要使用简单的代码,所以不要太复杂,因为这是一门“编程入门”课程,他们不会接受使用复杂算法或类似方法制作的任何东西。
EDIt:如果没有X,程序应显示-1。
这是代码:
#include <stdio.h>
int main() {
int matrix[100];
int n;
int i;
int index=1;
int x=0;
int start=0;
int end=0;
printf("Enter N: ");
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&matrix[i]);
}
index=1;
x=0;
do {
start=matrix[index]^x;
if((matrix[index+1]^x) >= start)
index=index+1;
else x++;
if(index==n){
printf("X=%d",x);
end=1;
break;
}
} while(end!=1);
return 0; }