Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: Just Racso en Mayo 05, 2018, 12:03:12 am

Título: Ayuda Por Favor!!
Publicado por: Just Racso en Mayo 05, 2018, 12:03:12 am
Hola buenas, lo que pasa es que estoy realizando un programa que funcione como una calculadora que realice las operaciones básicas suma, resta, multiplicación y división
de una operación que sera ingresada por teclado y a la vez, se debe de resolver siguiendo el orden de importancia matematico, es decir, mult y div > sum y res, mientras que
mult = div y sum = res, donde también se pueden incluir parentesis (), [], {}, los cuales tienen la misma importancia y son de mayor importancia de la operación, y cuando la
operación a realizar tiene la misma importancia que la otra en su categoria, esta se debe de resolver de izquierda a derecha.
El inicio de mi codigo es el siguiente:


#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define max 100

main()
{
   char operacionPrincipal[max];
   int i,par1,par2;

   printf("Los simbolos permitidos son:\nPara las operaciones: Suma = '+';Resta = '-'; multiplicación = '*' y division = '/'\nPueden ser ordenados con los parentesis ();[],{} como le sea conveniete\n");
   printf("Ingrese la operacion a realizar, recuerde que debe de ser de la forma {a+[b*(c-(d/e))]}: ");
   scanf("%[^\n]",operacionPrincipal); //ingreso datos de entrada

   for (i = 0; i < max; ++i)
   {
      if (operacionPrincipal=='(')
      {
         par1++;
      }
   }
   printf("la operacion tiene %d",par1,"apertura de parentesis");
   return 0;
}

lo que pretendo hacer es contar cuantos "(" (apertura de parentesis) hay en la operación para luego contar los ")" y compararlos para ver un posible error de sintaxis
pero al momento de imprimir la cantidad de "(" el resultado que me arroja no es el que deberia, por ejemplo, si ingreso Ho(la me muestra como resultado 2408449 en ves de
1 que es lo que deberia mostrar; agradezco mucho de antemano a los que puedan aclararme esta duda y darme una ayuda para el programa que intento realizar.
Título: Re:Ayuda Por Favor!!
Publicado por: ravenheart en Mayo 05, 2018, 03:54:08 pm
No estás inicializando la variable, y en C no se inicializa una variable automáticamente, así que coge el valor que tenga la dirección de memoria asignada.

Tendrías que hacer:

int i = 0,par1 = 0,par2 = 0;
Título: Re:Ayuda Por Favor!!
Publicado por: Just Racso en Mayo 05, 2018, 09:31:38 pm
Muchas gracias por la ayuda!! me sirvio y me aclaraste bastante =D