Tengo el siguiente problema. Necesito crear un programa que reciba un número del usuario, y que después pida diferentes signos para ir cambiando eventualmente el primer número. Y que al final se muestre de la siguiente manera:
Si el símbolo es -, al valor se le resta 1.
Si el símbolo es +, al valor se le agrega 1.
Si el símbolo es /, al valor se divide entre 2.
Si el símbolo es *, al valor se multiplica por 2.
Tengo el siguiente código:
Sin embargo, no logro descubir el error, además de que el primer bucle while se repite antes de que me deje escribir algo.
Muchas gracias de antemano.
Si el símbolo es -, al valor se le resta 1.
Si el símbolo es +, al valor se le agrega 1.
Si el símbolo es /, al valor se divide entre 2.
Si el símbolo es *, al valor se multiplica por 2.
Código [Seleccionar]
(10)-(9)*(18)/(9)+(10)+(11) y así...
Tengo el siguiente código:
Código (cpp) [Seleccionar]
#include <stdio.h>
int main()
{
int N1[50], d2=0, d=1, i=0, d3=0; char S1[50];
for (int i3=0; i3<50; i3++)
{
N1[i3]=0;
S1[i3]=' ';
}
printf("Inserta un numero entero: ");
scanf("%d", &N1[0]);
while (S1[d2] = '0')
{
printf("Inserta el simbolo + para que aumente su valor en 1.\n");
printf("Inserta el simbolo - para que reduzca su valor en 1. \n");
printf("Inserta el simbolo * para que multiplique su valor por 2.\n");
printf("Inserta el simbolo / para que divida su valor en 2.\n");
printf("Inserta la opcion (simbolo) deseada (0 para terminar): ");
scanf("%c", &S1[d2]);
if (S1[d2]=='0')
break;
switch (S1[d2])
{
case '+' : N1[d]=N1[i]+1; /*CH[d2]='+'*/; break;
case '-' : N1[d]=N1[i]-1; /*CH[d2]='-'*/; break;
case '*' : N1[d]=N1[i]*2; /*CH[d2]='*'*/; break;
case '/' : N1[d]=N1[i]/2; /*CH[d2]='/'*/; break;
default : break;
}
d++; i++; d2++;
}
for (int i2=0; i2<d2; i2++)
{
if (N1[i2]==0)
break;
else
printf("(%d)%c\n", N1[i2], S1[i2]);
}
}
Sin embargo, no logro descubir el error, además de que el primer bucle while se repite antes de que me deje escribir algo.
Muchas gracias de antemano.