Ayudeme por lo que mas quieran

Iniciado por vidalpet, 23 Agosto 2015, 05:03 AM

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

vidalpet


#include <stdio.h>

int main(){
int n ;
double precio , total=0;
do{
do{
printf("introduzca la cantidad vendida\n");
scanf("%d",&n);
if (n<0) printf("cantidades no valida\n");
}while(n<0);
if (n>0){
printf("introduzca el precio:");
do{
scanf("%lf",&precio);
if (precio<0) printf("PRECIO NO VALIDO\n");
else
total+=n*precio;
}while (precio<0);
}

}while(n!=0);

printf("FIN\n");
printf("total vendido = %.2f",total);
return 0;
}

necesito que por favor  nuevamente me ayuden a validar no se , hace dias me dieron una recomendacion aqui pero no entendi, perdon por ser fastidioso , este programa me corre bien la funcion es calcular cantidades y precio y termina justo cuando marque 0 , ok bien como hago para cuando alguien marque caracter y marde aviso y viceversa en digito y caracter





engel lex

que no entendiste del metodo y por qué no preguntaste?

Modifica el titulo, el mismo debe ser descriptivo al problema, los ruegos están de más, ya que vas a recibir ayuda
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Ur1cchio

Yo no leeria en ese formato, yo leeria un string, a ese string lo pasaria por ejemplo por una funcion " validar " que haga toda la magia ( por ejemplo si encuentra algo que no sea numero devuelva un false y si todo esta bien un true )
Y listo, en vez del n < 0 poner el validar( entrada ) y todo ok!

furciorifa

1.-Tú programa no termina cuando presionas cero porque estas comparando n<0 y las demás variables, entonces termina cuando pones un número real negativo.

2.- Si es lo que pienso que estás pidiendo porque no entendí nada de que realmente quieres hacer pero tengo una idea, creo que debes usar algo así:

char* cadena;

int tam;   

scanf("%d",&tam); //tamaño de cadena

cadena=(char*)malloc(sizeof(char)*tam)
validar(cadena);

en donde validar sería:

int validar(char* cad){
int i;
for(i=0;cad[i]!='\0';i++){
if(!isdigit(cad[i])) return 0;
cad++;
}
return 1;
}

Obviamente necesitas #include<ctype.h> y #include<stdlib.h> esta creo yo sería una buena opción para hacer esto, según entendí tu petición trata de ser más claro a la próxima