Boa tarde, estou com um problema em desenvolver um código, é um programa de cadastro, preciso cadastrar pessoas em seguida mostrar algumas informações para o usuário. A informação que estou com problema em desenvolver é que tenho que mostrar ao usuário os dados da pessoas cadastrada que mais gastou KW isto dentre todos os cadastrados.
Eu consigo imprimir o valor só do maior KW dentro de um vetor, porém não consigo imprimir o nome desta pessoa que é necessário, estou tentando salvar a posição do vetor em que o valor maior foi encontrado com um loop de FOR mas mesmo assim não estou conseguindo, alguém consegue ajudar ?
ME REFIRO AO CASE 4 do meu codigo.
#include <stdio.h>
#include <stdlib.h>
int main() {
char nome[50][50];
int ID[50], KW[50], escolha, cadastrar, cont, media, cont2, cont3 = 0;
int sair = 2, maior = 0, posmaior = 0;
float total[200];
static int linha = 0;
while (sair == 2) {
system("cls");
printf("1- cadastro\n");
printf("2- relatorio geral\n");
printf("3- relatorio de consumo\n");
printf("4- relatorio de consumidores\n");
scanf("%d", &escolha);
switch (escolha)
{
case 1:
system("cls");
printf("quantos deseja cadastrar ?\n");
scanf("%d", &cadastrar);
for (cont = 0; cont < cadastrar; cont++) {
printf("digite o nome: ");
fflush(stdin);
scanf("%[^\n]s", &nome[linha]);
printf("digite o ID: ");
fflush(stdin);
scanf("%d", &ID[linha]);
printf("digite o consumo de KW: ");
fflush(stdin);
scanf("%d", &KW[linha]);
if (KW[linha] > 170){
cont2++;
}
total[linha] += (KW[linha] * 1.75);
media += KW[linha];
system("pause");
linha++;
}
system ("cls");
break;
case 2:
system("cls");
for (cont = 0; cont < cadastrar; cont++) {
printf("nome: %s\nID: %d\nconsumo de KW: %d\ntotal a pagar:%.2f \n", nome[cont], ID[cont], KW[cont], total[cont]);
system("pause");
}
system ("cls");
break;
case 3:
system("cls");
printf("media de consumo da cidade: %d \n", media / linha);
printf("numero de consumidores que consumiram mais de 170 KW: %d\n", cont2);
system("pause");
break;
case 4:
// identificaçao do maior (quem gastou mais)
maior = KW[0];
for (cont3 = 0; cont3 < cadastrar; cont3++) {
if (KW[cont3] > maior){
posmaior = cont3;
printf("%s %d %d\n",nome[posmaior][posmaior], ID[posmaior], KW[posmaior]);
}
system("pause");
break;
}
default:
printf("valor invalido\n");
system("pause");
break;
}
}
}