No encuentro el error ayuda! C

Iniciado por Mozzard, 12 Noviembre 2018, 19:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Mozzard

Se supone que al poner un numero entre  1 y 10 el programa devuelve:
1
2
3
4... hasta el numero que hayamos puesto
Pues funciona, pero si pongo un numero mas grande que 10 hace esto igual, cuando deberia de devolver numero incorrecto.
#include <stdlib.h>
#include <stdio.h>

int Maximo10(int n){
if(n>=1 and n<=10){
return n;
}else{
return 0;
}
}

int main(){
printf("Introduce un numero entrel 1 i el 10: ");
int longitud_array;
scanf("%i",&longitud_array);
int array[longitud_array],n=0;
if (Maximo10[longitud_array]==0){
printf("NUMERO INCORRECTO");
}else{
for(n;n<longitud_array;n++){
array[n] = {n+1};
printf("%i\n", array[n]);
}
}
}
Programalo... sin miedo...

CalgaryCorpus

Cuando llamas la funcion Maximo10 estas usando parentesis cuadrados, usa parentesis redondos.
Aqui mi perfil en LinkedIn, invitame un cafe aqui

MAFUS

Cambia


if(n>=1 and n<=10){
por
if(n>=1 && n<=10){



if (Maximo10[longitud_array]==0){
por
if (Maximo10(longitud_array)==0){



for(n; n<longitud_array; n++){
por
for(; n<longitud_array; n++){



array[n] = {n+1};
por
array[n] = n+1;

Supongo que ves el porqué de estos cambios, a parte de porque todos te los marca el compilador.

Mozzard

Hola, gracias por responder, el compilador que uso Dev c++ no me detectaba nada, cambiando los [] por {} ya me funciona gracias!
Programalo... sin miedo...

Beginner Web

Diablos señor Mozzard, debo decirle que tiene que ser un poco mas ordenado, esa funcion Maximo la usaria como tipo logica que me devolviera true si el numero ingresado es valido, le dejo un ejemplo
Código (cpp) [Seleccionar]
#include <stdlib.h>
#include <stdio.h>

bool Maximo10(int n)
{
return n>0 && n<=10;
}

int main(){

int longitud_array;
printf("Introduce un numero entrel 1 i el 10: ");
scanf("%i",&longitud_array);
int array[longitud_array], n=0;
if (Maximo10(longitud_array)==false)
printf("NUMERO INCORRECTO");
else{
for(n=0;n<longitud_array;n++){
array[n] = {n+1};
printf("%i\n", array[n]);
}
}
}
7w7