Vai entrando números e enquanto os números forem maiores que 0 vai somando esses números. Se o número for zero ou negativo, mostra a soma.
Obs.: Para resposta dos exercícios, os programas devem interagir com o usuário. Veja o exemplo de saída do programa:
Aluno: Franciele de Almeida
Nro Matrícula: 18181818181
Programa referente ao exercício 1
Entre com o 10 número: 345
Entre com o
número: 112
O resultado é: 457
Obs.: Para resposta dos exercícios, os programas devem interagir com o usuário. Veja o exemplo de saída do programa:
Nro Matrícula: 18181818181
Programa referente ao exercício 1
Entre com o 10 número: 345
Entre com o
O resultado é: 457
Passo 1
Vamos escrever um programa em C que peça ao usuário seu nome e número de matrícula, exiba um cabeçalho com esses dados e, em seguida, leia números inteiros um a um, somando-os enquanto forem maiores que zero. No momento em que o usuário digitar zero ou um número negativo, o programa encerra a leitura e exibe a soma acumulada.
Passo 2
Declaramos as variáveis necessárias:
char nome[100];
para armazenar o nome do aluno.char matricula[30];
para armazenar o número de matrícula.int n;
para ler cada número inserido.int soma = 0;
para acumular a soma dos números positivos.int contador = 1;
para numerar cada entrada sucessiva.
Passo 3
Lemos o nome e a matrícula usando
fgets
, removendo o
final para formatar corretamente a saída:printf("Aluno: ");
fgets(nome, sizeof(nome), stdin);
if (nome[strlen(nome)-1] \(==\) '
') nome[strlen(nome)-1] = '\0';
printf("Nro Matrícula: ");
fgets(matricula, sizeof(matricula), stdin);
if (matricula[strlen(matricula)-1] \(==\) '
') matricula[strlen(matricula)-1] = '\0';
Passo 4
Exibimos o cabeçalho do programa:
printf("Programa referente ao exercício 1
");
Passo 5
Entramos num loop
while (1)
para ler números até encontrarmos um valor não positivo. A cada iteração:- Mostramos o prompt numerado usando o sufixo
"º"
para indicar o ordinal. - Lemos o valor em
n
comscanf
. - Se
n > 0
, acumulamos emsoma
e incrementamoscontador
. - Caso contrário, saímos do loop com
break
.
while (1) {
printf("Entre com o %dº número: ", contador);
scanf("%d", &n);
if (n > 0) {
soma \(+=\) n;
contador\(++\);
} else {
break;
}
}
Passo 6
Por fim, exibimos o resultado da soma:
printf("O resultado é: %d
", soma);
Resposta
#include <stdio.h>
#include <string.h>
int main(void) {
char nome[100];
char matricula[30];
int n;
int soma \(=0\);
int contador \(=1\);
printf("Aluno: ");
fgets(nome, sizeof(nome), stdin);
if (nome[strlen(nome)-1] \(==\) '
') nome[strlen(nome)-1] = '\0';
printf("Nro Matrícula: ");
fgets(matricula, sizeof(matricula), stdin);
if (matricula[strlen(matricula)-1] \(==\) '
') matricula[strlen(matricula)-1] = '\0';
printf("Programa referente ao exercício 1
");
while (1) {
printf("Entre com o %dº número: ", contador);
scanf("%d", &n);
if (n > 0) {
soma \(+=\) n;
contador\(++\);
} else {
break;
}
}
printf("O resultado é: %d
", soma);
return 0;
}