Autor
|
Tema: Problema con programa en lenguaje C (Leído 1,983 veces)
|
RojoVGA
Desconectado
Mensajes: 2
|
#include <conio.h> #include <stdio.h> #include <string.h> //programa de vectores donde muestra el elemento mayor int main(){ int a,b,i,aux; int vector[50]; printf("Ingrese la opcion deseada\n 1.- Generar vector\n 2.- Salir\n Opcion: "); scanf("%5000['32'-'255'%[A-Z%[a-z%[^1-2]]]]d",&a ); if(a=='2'){ }else if(a=='1'){ printf("Ingrese el tamaño del vector: \n"); scanf("%5000['32'-'255'%[A-Z%[a-z%[^0-9]]]]d",&b ); for(i=0;i<b;i++){ do{ printf("Ingrese el elemento del %d elemento: \n",i +1); if(aux<vector[i]){ aux=vector[i]; } }while(aux<aux); } printf("el elemento de mayor valor es: %d",aux ); }else{ printf("el valor ingresado es invalido"); } }
· Los códigos deben ir en etiquetas GeSHi >aquí las reglas del foro -Engel Lex
|
|
« Última modificación: 6 Marzo 2017, 01:31 am por engel lex »
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
A ver, ¿qué intentaste decir con ese argumento del scanf?
|
|
|
En línea
|
|
|
|
RojoVGA
Desconectado
Mensajes: 2
|
Es una simple validación, donde le digo que ingrese solo el numero 1 o 2, aparte le digo que no acepte otro valor como lo son de la a-z y tampoco que la acepte en mayúscula A-Z, y por ultimo que no me agarre símbolos, por ello le pongo el código ascii desde el 32 (que es el espacio) hasta el ultimo símbolo que es 255, y lo de los 5000 es los caracteres q me agarrara, ya que cuando escribía 1s, me agarraba la opción 1 cosa q no debería pasar. (obviamente se ve que ando aprendiendo pero ya he hecho casi de todo, tengo otras formas de validarlo pero no me agarran tampoco :S).
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Ok. La construcción está mal hecha. Intentas anidar expresiones y eso no está permitido, hasta donde yo sé.
Después intentas hacer que scanf recoja y guarde un dato numérico cuando tratas con una cadena. El argumento [ indica a scanf que el dato va a ser una cadena. Esa d al final solo indica a scanf que en el buffer va a haber una d al final de todo que debe ser ignorada.
Usa otra técnica.
Por ejemplo recoge una cadena de X caracteres y después mira si tiene más de 1 caracter, si es así da un mensaje de error. Después miras si ese carácter es un dígito, da un mensaje de error. Al final tendrás el caracter para comparar con el if. O lo conviertes a un número y podrás usar un switch para facilitar futuras ampliaciones del menú.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema con lenguaje de un programa
Ingeniería Inversa
|
sborin
|
2
|
2,306
|
17 Abril 2006, 22:00 pm
por Revolutions
|
|
|
porque no me coplia el programa lenguaje #C
Programación C/C++
|
carlosbds4
|
4
|
2,455
|
2 Diciembre 2012, 17:15 pm
por rir3760
|
|
|
ayuda: programa en lenguaje c
« 1 2 »
Programación C/C++
|
Dayleap
|
12
|
5,793
|
22 Abril 2016, 00:04 am
por MAFUS
|
|
|
Ayuda: programa en lenguaje C
Programación C/C++
|
Dayleap
|
4
|
3,201
|
29 Abril 2016, 09:53 am
por Dayleap
|
|
|
programa en lenguaje c de facturacion.
Programación C/C++
|
jorge.helu
|
0
|
3,043
|
15 Marzo 2018, 22:46 pm
por jorge.helu
|
|