Terne pitagoriche c

di il
6 risposte

Terne pitagoriche c

NOn capisco perchè questo esercizio nn mi esca. Mi chiede di calcolare tutte le terne pitagoriche non maggiori di 500.

a*a + b*b=c*c ---> terna pitagorica
#include <stdio.h>
int main (void){
    int a;
    int b;
    int c;
    int counter=0;
  
          for (a=1; a<=500; a++){
              for (b=a; b<=500; b++){   /*Imposto b=a perchè una terna è una combinazione di numerie non una 
              disposizione,quindi l'ordine è irrilevante e ponendo b=a non avrò 3 4 5 e 4 3 5*/
                  for (c=1; c<=500; c++){
          
          if (a*a + b*b == c*c) {
         
          printf("%d %d %d\n", a, b, c);
           counter++;
           
                                }
          }
          }
          }
          printf("Ci sono %d combinazioni", counter);
          fflush(stdin);
          getchar();
          return 0;
    }

6 Risposte

  • Re: Terne pitagoriche c

    Qual'è il problema?
  • Re: Terne pitagoriche c

    Vorrei saperlo le terne che mi stampa sono sbagliate
  • Re: Terne pitagoriche c

    Quale terna sbaglia?
  • Re: Terne pitagoriche c

    Molte nn le ho contate perchè sono tante ma ne ho provate 10 e sn errate, e cmq nn deve sbagliarne nessuna se no che programma è?
  • Re: Terne pitagoriche c

    
    #include <stdio.h>
    #define MAX 50
    int main(void)
    {
    	int a;
    	int b;
    	int c;
    	int counter = 0;
    
    	for (a = 1; a <= MAX; a++) {
    		for (b = a; b <= MAX; b++) {	/*Imposto b=a perchè una terna è una combinazione di numerie non una
    						   disposizione,quindi l'ordine è irrilevante e ponendo b=a non avrò 3 4 5 e 4 3 5 */
    			for (c = 1; c <= MAX; c++) {
    
    				if (a * a + b * b == c * c) {
    
    					printf("%d %d %d\n", a, b, c);
    					counter++;
    
    				}
    			}
    		}
    	}
    	printf("Ci sono %d combinazioni", counter);
    	fflush(stdin);
    	getchar();
    	return 0;
    }
    
    Se definisco da 1 a 50 quante ne sbaglia?
  • Re: Terne pitagoriche c

    Non sono ancora arrivato all'istruzione define,cmq cambiando l'ordine dei cicli e mettendo
    #include <stdio.h>
    int main (void){
        int a;
        int b;
        int c;
        int counter=0;
         for (c=1; c<=500; c++){
              for (a=1; a<=500; a++){
                  for (b=a; b<=500; b++){   /*Imposto b=a perchè una terna è una combinazione di numerie non una 
                  disposizione,quindi l'ordine è irrilevante e ponendo b=a non avrò 3 4 5 e 4 3 5*/
                      
              if (a*a + b*b == c*c) {
             
              printf("%d %d %d\n", a, b, c);
               counter++;
               }
              }
              }
              }
              printf("Ci sono %d combinazioni", counter);
              fflush(stdin);
              getchar();
              return 0;
        }
    
    mi esce. L'unico dubbio ora è se sono effettivamente tutte le terne in quanto scorrendole non trovo 3 4 5..
Devi accedere o registrarti per scrivere nel forum
6 risposte