entrar com o numero da conta e o saldo de varias pessoas,imprimir todas as contas,os respectivos saldos e uma das mensagens positivo/negativo.Ao final, o percentencual de pessoas com saldo negativo o algaritmo acaba quando se digita um numero negativo para a conta
/*
* File: main.cpp
* Author: joao
* Entrar com o numero da conta e o saldo de varias pessoas,
* imprimir todas as contas,os respectivos saldos com uma das mensagens
* positivo/negativo.
* Ao final, o percentencual de pessoas com saldo negativo
* O algaritmo acaba quando o usuário digita um numero negativo para a conta
* Created on 28 de Julho de 2017, 16:26
*/
#include <cstdlib>
#include<stdio.h>
#define MAX 100
using namespace std;
int main(int argc, char** argv) {
int matConta[MAX][2];//Matriz 100x2 100 linhas e duas colunas(nºconta[0] e saldo[1])
int cont = 0, negativo = 0;//contadores
double percent = 0;
char flag = 0;
//-----
printf("Entre com os dados:\n");
//Captura os valores de entrada do usuário até que um
//nº de conta negativo seja informado
while (!flag) {
printf("\nConta Nº:(-1 para encerrar)");
scanf("%d", &matConta[cont][0]);
if (matConta[cont][0] < 0) {
flag = 1;
}
printf("\nValor Saldo:");
scanf("%d", &matConta[cont][1]);
if (matConta[cont][1] < 0) {
negativo++;
}
if (!flag)
cont++;
}
//exibindo relatório
printf("Conta Nº\t Saldo Atual \t Status \n");
for (int i = 0; i < cont; i++) {
printf("[%d] \t [%d] \t [%s]\n", matConta[i][0], matConta[i][1],(matConta[i][1]<0)?"NEGATIVO":"POSITIVO");
}
//(matConta[i][1]<0)?"NEGATIVO":"POSITIVO" operador ternário-(condiçao)?retorne se positivo:retorne se negativo;
percent = ((negativo * 100) / cont);//calculando percentual de contas com saldo negativo
printf("Total de Contas registradas:[%d]\n", cont);
printf("Percentual de contas com Saldo Negativo: [%.2f]%% \n", percent);
}
espero que ajude, este arquivo está no meu material na materia de algoritimos, se preferir pode me adicionar e pegar direto da minha lista de materiais. A resolução ébem simples, utilizei uma matriz de inteiros de 100 linhas por duas colunas, e fui preenchendo os valores dentro de um loop while com dois contadores. Um para avançar as linhas (cont) e outro para efetuar a contagem de contas com saldo negativo.
Dentro do loop faço a verificação com um if tanto para o valor informado de saldo como de conta, um incrementa o contador de negativos e outro seta o flag para o encerramento do programa.
ao final utilizo um for para exibir cada linha da matriz 0 até cont, e testo o valor do saldo com um operador ternário (codição)?valor se verdadeiro:valor se falso , para exibir a string (positivo/negativo)
efetuo o calculo da porcentagem atribuindo a uma variavel double e exibo o resultado.
Podemos resolver das seguintes maneiras:
Com vetores, vamos adicionando as contas e os saldos e logo após processar todos os dados e exibir as porcentagem de cada tipo de conta, com saudo positivo e saldo negativo.
Uma abordagem mais simples e ficar lendo a conta e o saldo e exibir as mesma, e no mesmo momento que lemos os dados, já verificamos qual a condição da conta, se esta positiva ou negativa.
#include<stdio.h>
const int TAM = 20;
int main(){
float qtd_positiva, qtd_negativa, qtd_zerada, i;
float conta, saldo;
//
qtd_negativa = qtd_positiva = qtd_zerada = i = 0;
while(conta > 0){
printf("Informe numero da conta: ");
scanf("%f", &conta);
printf("\n");
/////////////
if(conta > 0){
/////////////
printf("Informe o saldo da conta: ");
scanf("%f", &saldo);
printf("\n");
//Vejo qual a condição da conta
if(saldo < 0){
qtd_negativa++;
} else if(saldo > 0) {
qtd_positiva++;
} else {
qtd_zerada++;
}
i++;
printf("Conta numero: %.0f com saldo de: %.0f\n", conta, saldo);
}
}
//
printf("\n\nContas negativas: %.0f%%\n", (100*qtd_negativa)/i);
printf("\n\nContas positivas: %.0f%%\n", (100*qtd_positiva)/i);
printf("\n\nContas zeradas: %.0f%%\n", (100*qtd_zerada)/i);
return 0;
}
Para escrever sua resposta aqui, entre ou crie uma conta
Algoritmos e Técnicas de Programação I
•FAMETRO
Compartilhar