[SOLUCIONADO] Problema al introducir caracter en programa de C

Iniciado por rfgaz, Agosto 10, 2017, 05:14:05 AM

Tema anterior - Siguiente tema

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

Agosto 10, 2017, 05:14:05 AM Ultima modificación: Agosto 12, 2017, 10:28:34 AM por Stiuvert
Buenas a todos, mi problema es que cuando ejecuto este programa al darle un carácter y presionar enter me sale un mensaje que dice el "programa ha dejado de funcionar", uso Windows 10 con codeblocks y mingw.

Les agradecería que me puedan ayudar con este problema al decirme porque pasa este problema.

El código es el siguiente:

Código: php
#include <stdio.h>
int main(void){
    char letras[10];
    int celdas;
    int contador;

    /*Pedimos caracteres al usuario y lo almacenamos en celdas del array*/
    for(celdas=0; celdas<10; celdas++){
        printf("Tecle los caracteres deseados\n ");
        scanf("%c", letras[celdas]);
        fflush(stdin);
    }

    /*Le damos el valor a contador para encontrar las veces que se repita a o A*/
    contador=0;

    /*Recorremos el array en busca de los caracteres a o A. Si las encontramos
    aumentamos la variable contador, que es la que lleva la cuanta de cuantas hay  */
    for(celdas=0;celdas<10;celdas++){
        if((letras[celdas]=='a') && (letras[celdas]=='A')){
            contador++;
        }
    }

    /*Mostramos cuantas veces los caracters a o A fueron encontrados*/
    printf("las letras  se repiten  %i", contador);
    return 0;
}

Te dejo la solucion al problema en c++, quizas tenga algun problema, no he probado a compilar

Código: cpp
#include <iostream>
#include <string>
using namespace std;

int main() {
int cont = 0;
char car;
do{ //el bucle se rompe al meter 0
    cin >> car;
    if (car == 'A' || car == 'a')
        cont++;
} while (car != 0);
cout << "Las letras se repiten" << cont << "veces" << endl;
return 0;
}


Mi blog: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Si necesitas ayuda, no dudes en mandar MP

Buenas..

en esta linea scanf("%c", letras[celdas]); deberia de ser scanf("%c", &letras[celdas]); ya que necesita  direccion de memoria donde guardar el dato recogido

tienes razón con darle la dirección gracias por los comentarios