2
respostas

eu tinha feito em for igual a galera aqui mais decidi fazer em while para ver se funcionava e funciona bem direitinho

#include <stdio.h>

 int main (){

int i = 0;
int b = 1;

while(i <= 100 ){

        printf(" %d + %d \n",i ,b);
        i++;
    }
}
2 respostas

Olá Luis.

Eu tive um entendimento diferente do enunciado desse exercício.

Escreva um programa que imprima a soma de todos os números de 1 até 100. Ou seja, ele calculará o resultado de 1+2+3+4+...+100.

Entendo que a ideia é criar um laço de repetição que vai acumulado a soma. Para fazer isso, peguei o código proposto por você, criei a variável total que vai acumular a nossa soma e a variável i que vai ter os valores de 1 até 100.

#include <stdio.h>

 int main (){

    int i = 1;
    int total = 0;

    while(i <= 100 ){
        total += i;
        i++;
    }

    printf("1+2+3+4+...+100 = %d\n", total);

    return 0;
}

Resultado:

1+2+3+4+...+100 = 5050

Analise o código e me diga se entendeu o código que propus e se concorda com ele.

Bons Estudos.

Apesar de que para somar os números de 1 a 100 eu não usaria um laço, que tem complexidade O(n), mas a fórmula fechada da soma dos termos da PA, que é O(1). O código pressupõe o padrão c99 ou posterior.

#include <stdio.h>

// interfaces

int somaPAGeral(int, int, int);
int somaPA(int, int);

// implementações

inline int somaPAGeral(int primeiro, int ultimo, int numTermos) {
    return ((primeiro + ultimo) * numTermos)/ 2;
}

inline int somaPA(int primeiro, int ultimoInclusivo) {
    return somaPAGeral(primeiro, ultimoInclusivo, ultimoInclusivo - primeiro + 1);
}

int main(int argc, char *argv[]) {
    printf("A soma dos números entre 1 e 100 é: %d", somaPA(1, 100));

    return 0;
}