ayuda con c++/no reconoce char

matiasbke
02 de Julio del 2009
bueno este es mi problema me dice el siguiente error Lvalue required y este es el codigo

#include<stdio.h>
#include<conio.h>

void main()
{

float numero;
float promedio=0;
float minimo;
float maximo;
int totalNotas=10;
int posicionY=10;
char nombre[20];
char nombreMinimo[20];
char nombreMaximo[20];
clrscr();

for(int i=0;i<totalNotas;i++){
gotoxy(10,posicionY+i);
printf("Promedio %d:[ ] ",i+1);
scanf("%s",&nombre);
gotoxy(35,posicionY+i);printf("%s",nombre);
gotoxy(22,posicionY+i);
scanf("%f",&numero);
promedio+=numero;

if(i==0){
minimo=numero;
maximo=numero;
nombreMinimo=nombre;
nombreMaximo=nombre;

}else{
if(numero < minimo){
minimo=numero;
nombreMinimo=nombre;
}

if(numero > maximo){
maximo=numero;
nombreMaximo=nombre;
}


}

}


promedio=promedio/totalNotas;
gotoxy(10,posicionY+i);
printf("El promedio es %f",promedio);
gotoxy(10,posicionY+i+1);
printf("La menor nota es %f",minimo);
gotoxy(10,posicionY+i+2);
printf("La menor la tiene %s",nombreMinimo);
gotoxy(10,posicionY+i+3);
printf("La mayor nota es %f",maximo);
gotoxy(10,posicionY+i+4);
printf("La mayor la tiene %s",nombreMaximo);
gotoxy(10,posicionY+i+5);
printf("Presione cualquier tecla para terminar...");

getch();

}

jormar arellano
02 de Julio del 2009
Primero, debes recordar que en C/C++ no puedes copiar cadenas de caracteres con la asignacion ( nombrealgo = nombre); para ello usas la funcion strcpy (definida en string.h).

Aqui tienes una solucion de tu codigo:

[code]
#include<stdio.h>
#include<conio.h>
#include <string.h>

int main()
{

float numero;
float promedio=0;
float minimo;
float maximo;
int totalNotas=10;
int posicionY=10;
char nombre[20];
char nombreMinimo[20];
char nombreMaximo[20];
int i;
clrscr();

for(i=0;i<totalNotas;i++){
gotoxy(10,posicionY+i);
printf("Promedio %d:[ ] ",i+1);
scanf("%s", nombre);
gotoxy(35,posicionY+i);printf("%s", nombre);
gotoxy(22,posicionY+i);
scanf("%f", &numero);
promedio+=numero;

if(i==0){
minimo=numero;
maximo=numero;
strcpy(nombreMinimo, nombre);
strcpy(nombreMaximo, nombre);
} else {
if(numero < minimo){
minimo=numero;
strcpy(nombreMinimo, nombre);
}
if(numero > maximo){
maximo=numero;
strcpy(nombreMaximo, nombre);
}
}
}

promedio=promedio/totalNotas;
gotoxy(10,posicionY+i);
printf("El promedio es %f",promedio);
gotoxy(10,posicionY+i+1);
printf("La menor nota es %f",minimo);
gotoxy(10,posicionY+i+2);
printf("La menor la tiene %s",nombreMinimo);
gotoxy(10,posicionY+i+3);
printf("La mayor nota es %f",maximo);
gotoxy(10,posicionY+i+4);
printf("La mayor la tiene %s",nombreMaximo);
gotoxy(10,posicionY+i+5);
printf("Presione cualquier tecla para terminar...");

getchar();

}
[/code]