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]);
}
}
}
Cuando llamas la funcion Maximo10 estas usando parentesis cuadrados, usa parentesis redondos.
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.
Hola, gracias por responder, el compilador que uso Dev c++ no me detectaba nada, cambiando los [] por {} ya me funciona gracias!
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
#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]);
}
}
}