首页 > 解决方案 > 在数组中查找等于输入值的对

问题描述

我必须找出是否有任何一对 i,j 这样的array[i]^2 + array[j]^2 == x^2 。如果有这样的对,我需要打印所有这样(i,j)的 . 否则,打印“没有这样的对”。

#include <stdio.h>
int main(){

 int size=10, i, x,j;

 int Array[size];
 printf("What is the value of x:");
 scanf("%d",&x);

 for(i=0;i<size;i++){
    printf("Enter array value :");
    scanf("%d",&Array[i]);
 }
 for(i=0;i<size;){
    for(j=i+1;j<size;j++)
        if((Array[i]*Array[i])+(Array[j]*Array[j])==x*x)  //how do I complete this for loop?

 }

    return 0;
 }

标签: c

解决方案


你快到了,你为什么不增加 的价值i?保留 acounter来计算匹配的对,然后打印它们,或者如果没有找到任何你想要的打印。

#include <stdio.h>

int main() {

    int size = 10, i, x, j;

    int Array[size];
    printf("What is the value of x:");
    scanf("%d", &x);

    for (i = 0; i < size; i++) {
        printf("Enter array value :");
        scanf("%d", &Array[i]);
    }
    int counter = 0;
    for (i = 0; i < size; i++) {
        for (j = i + 1; j < size; j++)
            if ((Array[i] * Array[i]) + (Array[j] * Array[j]) == x * x) {
                printf("%d %d\n", Array[i], Array[j]);
                counter++;
            }
    }
    if (!counter) {
        printf("There are no such pairs\n");
    }

    return 0;
}

推荐阅读