Linguagem C: Faça um programa que leia 10 valores numéricos inteiros em um vetor e três valores inteiros nas variáveis A B e C. Após a leitura, informe o número de vezes que os números A, B e C apareceram no vetor. Buguei tentando fazer x(
Soluções para a tarefa
Respondido por
2
Eu faria assim
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define LIMITE 10
void obtem_vetor( char *mensagem, int vetor[]){
char tecla;
printf("Quer digitar 10 valores ou quer que o computador o faça ? S/n");
scanf("%c",&tecla);
if ( tecla == "S") {
// obten vetor do teclado
printf("%s \n",mensagem);
for( int l=0 ; l<LIMITE ; l++){
printf("Informe o elemento [%i] = ",l);
scanf("%i",&vetor[l]);
};
}
else {
for( int l=0 ; l< LIMITE ; l++){
vetor[l] = (rand() % 100)-30;
};
}
};
int quantas_dentro( int alvo , int vetor[]){
int i;
int achou=0;
for (i=0;i<10;i++){
achou += (vetor[i]==alvo);
};
return(achou);
};
void pega_valor( char *mensagem, int *what ){
int valor;
printf(mensagem);
scanf("%i",&valor);
printf("O valor informado foi %i \n",valor);
*what = valor;
};
void exibe_vetor( char *mensagem, int vetor[], int limite) {
printf("\n %s \n",mensagem);
for (int i=0; i<limite;i++){
printf("Elemento [%i] = %i \n",i,vetor[i]);
};
};
void main() {
int primeira[LIMITE];
int a,b,c;
srand(time(NULL)); // should only be called once
obtem_vetor("Informe dados do primeiro vetor",primeira);
exibe_vetor("Eis o vetor de 10 elementos",primeira,LIMITE);
printf("\n");
pega_valor("Informe o valor de A",&a);
pega_valor("Informe o valor de B ",&b);
pega_valor("Informe o valor de C ",&c);
printf("O valor A = %i foi encontrado %i vezes\n",a,quantas_dentro(a,primeira));
printf("O valor B = %i foi encontrado %i vezes\n",b,quantas_dentro(b,primeira));
printf("O valor C = %i foi encontrado %i vezes\n",c,quantas_dentro(c,primeira));
}
pode rodar aqui
https://repl.it/@bokomoko/3buscas
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define LIMITE 10
void obtem_vetor( char *mensagem, int vetor[]){
char tecla;
printf("Quer digitar 10 valores ou quer que o computador o faça ? S/n");
scanf("%c",&tecla);
if ( tecla == "S") {
// obten vetor do teclado
printf("%s \n",mensagem);
for( int l=0 ; l<LIMITE ; l++){
printf("Informe o elemento [%i] = ",l);
scanf("%i",&vetor[l]);
};
}
else {
for( int l=0 ; l< LIMITE ; l++){
vetor[l] = (rand() % 100)-30;
};
}
};
int quantas_dentro( int alvo , int vetor[]){
int i;
int achou=0;
for (i=0;i<10;i++){
achou += (vetor[i]==alvo);
};
return(achou);
};
void pega_valor( char *mensagem, int *what ){
int valor;
printf(mensagem);
scanf("%i",&valor);
printf("O valor informado foi %i \n",valor);
*what = valor;
};
void exibe_vetor( char *mensagem, int vetor[], int limite) {
printf("\n %s \n",mensagem);
for (int i=0; i<limite;i++){
printf("Elemento [%i] = %i \n",i,vetor[i]);
};
};
void main() {
int primeira[LIMITE];
int a,b,c;
srand(time(NULL)); // should only be called once
obtem_vetor("Informe dados do primeiro vetor",primeira);
exibe_vetor("Eis o vetor de 10 elementos",primeira,LIMITE);
printf("\n");
pega_valor("Informe o valor de A",&a);
pega_valor("Informe o valor de B ",&b);
pega_valor("Informe o valor de C ",&c);
printf("O valor A = %i foi encontrado %i vezes\n",a,quantas_dentro(a,primeira));
printf("O valor B = %i foi encontrado %i vezes\n",b,quantas_dentro(b,primeira));
printf("O valor C = %i foi encontrado %i vezes\n",c,quantas_dentro(c,primeira));
}
pode rodar aqui
https://repl.it/@bokomoko/3buscas
Perguntas interessantes