SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: jusit en Jueves 4 de Febrero de 2010, 12:04
-
Hola,
Hace poco que soy nuevo y tengo un problema con un programa que estoy realizando en C. Se me pide que haga un contador de aquellas letras que aparecen repetidas en una cadena utilizando una matriz bidimensional. La verdad es que con una matriz unidimensional si que lo pude hacer, pero con una de dos no se por donde empezar.
Podríais darme alguna pequeña orientación?
Gracias,
-
Pon al menos el código de la matriz unidimensional para ver si es verdad que sabes. Aquí hay normas que impiden que te hagamos los ejercicios, así que pon como lo harías en una matriz unidimensional y entonces te ayudaré con la bidimensional. "Ayudaré, no haré".
-
Hola,
Le verdad que yo en ningún momento he pedido la respuesta del problema, tan solo que me dierais una orientación, es decir, una explicación de como enfocar el mismo.
Ahí va la solución del problema hecho para un array unidimensional:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100
int i;
int length;
int ascii;
char cipher[N];
int letters[26];
int main()
{
printf("Introduce una cadena: ");
gets(cipher);
fflush(stdin);
length = strlen(cipher);
for (i=0; i<length; i++)
{
ascii = cipher;
if (ascii > 96)
ascii = ascii - 97;
else
ascii = ascii - 65;
letters[ascii]++;
}
printf("a: %d ", letters[0]);
printf("b: %d ", letters[1]);
printf("c %d ", letters[2]);
printf("d: %dn", letters[3]);
printf("e: %d ", letters[4]);
printf("f: %d ", letters[5]);
printf("g: %d ", letters[6]);
printf("h: %dn", letters[7]);
printf("i: %d ", letters[8]);
printf("j: %d ", letters[9]);
printf("k: %d ", letters[10]);
printf("l: %dn", letters[11]);
printf("m: %d ", letters[12]);
printf("n: %d ", letters[13]);
printf("o: %d ", letters[14]);
printf("p: %dn", letters[15]);
printf("q: %d ", letters[16]);
printf("r: %d ", letters[17]);
printf("s: %d ", letters[18]);
printf("t: %dn", letters[19]);
printf("u: %d ", letters[20]);
printf("v: %d ", letters[21]);
printf("w: %d ", letters[22]);
printf("x: %dn", letters[23]);
printf("y: %d ", letters[24]);
printf("z: %d ", letters[25]);
printf("nn");
system("pause");
}
Como dije, si se hacerlo con una/varias tablas unidimensionales, pues las comparas y verificas si esta o no la letra y cuantas veces se repite. En este caso, he usado los valores ASCII para determinar el carácter y almacenar el numero de veces que aparece en una tabla.
-
pone el codigo entre corchetes de codigo por favor. osea entre sin el . asi es mas facil que lo entendamos.
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100
int i;
int length;
int ascii;
char cipher[N];
int letters[26];
int main()
{
printf("Introduce una cadena: ");
for (i=0; i<length; i++)
{
ascii = cipher[i];
if (ascii > 96)
ascii = ascii - 97;
else
ascii = ascii - 65;
letters[ascii]++;
}
printf("k: %d ", letters
[10]); printf("l: %dn", letters
[11]); printf("m: %d ", letters
[12]); printf("n: %d ", letters
[13]); printf("o: %d ", letters
[14]); printf("p: %dn", letters
[15]); printf("q: %d ", letters
[16]); printf("r: %d ", letters
[17]); printf("s: %d ", letters
[18]); printf("t: %dn", letters
[19]); printf("u: %d ", letters
[20]); printf("v: %d ", letters
[21]); printf("w: %d ", letters
[22]); printf("x: %dn", letters
[23]); printf("y: %d ", letters
[24]); printf("z: %d ", letters
[25]);
}