C/Visual C - [AYUDA] Modelo de Parcial en C

 
Vista:
Imágen de perfil de Facu

[AYUDA] Modelo de Parcial en C

Publicado por Facu (2 intervenciones) el 24/09/2016 22:38:09
En mi facultad estan dando el siguiente modelo de parcial para progamacion en C, yo pude resolver el primer ejercicio pero no de la forma adecuada. Me dijo el profesor que tenia que usar un while en vez de un for pero no logro hacer el tema de los espacios. Ayuda por favor para resolver los 2 ejercicios correctamente !

Simulacro de Parcial
1) Escribir un programa que utilice una función para devolver un valor de verdad indicando si una frase es palindromica (capicúa) o no. El análisis de la frase debe ignorar los espacios que puede contener, es decir que estos no afectaran el resultado. Ejemplos:
espalindomo (“luz azul”); devuelve verdadero
espalindormo (“yo hago yoga hoy”); devuelve verdadero

2) Escribir un programa para generar una matriz NxN con números enteros 1 a N respetando el patrón adjunto. Imprimir la matriz obtenida. El programa debe funcionar para cualquier valor positivo de N, el que se declara mediante una directiva #define. Ejemplo para N=6:

1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6


RESOLUCION INCORRECTA EJERCICIO 1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
 
main (){
	char pal [40], pal2[40];
	int n,i,x,a=0,p=0,e=0;
	printf("Hola por favor introduzca una frase para saber si es capicua o no: ");
	gets(pal);
	n=strlen(pal);
	while (i=0, i<n,i++)
	{
		if (pal!=' ')
			i++;
		pal2[e]=pal[i];
		e++;
	}
	for (x=n-1; x>=0;x--)
	printf("\n %c \t", pal [x]);
	x=0;
	n=strlen(pal2);
	for (x=n-1; x>=0;x--){
		if (pal2[x]==pal2[a])
			p++;
			a++;
	}
	if (p==n)
		printf("\n Su palabra es capicua ");
	else
		printf("\n Su palabra NO es capicua ");
	system ("PAUSE");
}

Desde ya muchas gracias :)!

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

[AYUDA] Modelo de Parcial en C

Publicado por Chema (234 intervenciones) el 25/09/2016 13:16:50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
char string[] =  "   dabale   arroz   a     la   zorra   el abad          ";
 
void PalindromeBis(){
	int len;
	char *a;
	char *b;
 
	len = strlen(string);
	a = string;
	b = a + len-1;
 
	for ( ;a < b ;a++, b--){
 
		for (; a  < b && *a == ' '; a++)
			;
		for (; b > a && *b == ' '; b--)
			;
		if ( *a != *b){
			printf("%c",  *a);
			break;
		}
	}
 
}
 
/*
*Usando While, así el profesor no se enfadará y te pondrá buena nota
*/
void Palindrome(){
	int len;
	char *a;
	char *b;
 
	len = strlen(string);
	a = string;
	b = a + len-1;
 
	while ( a < b){
 
		for (; a  < b && *a == ' '; a++)
			;
		for (; b > a && *b == ' '; b--)
			;
		if ( *a != *b){
			printf("%c",  *a);
			break;
		}
 
		a++;
		b--;
	}
 
}
 
 
int main(void){
 
	Palindrome();
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

[AYUDA] Modelo de Parcial en C

Publicado por Chema (234 intervenciones) el 25/09/2016 17:43:42
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char string[] =  "   DABALE ARROZ A LA      zorra   el Abad         ";
 
int Palindrome(){
	int len;
	char *start;
	char *end;
 
	len = strlen(string);
	start = string;
	end = start + len -1 ;
 
	for ( ;start < end ;start++,end--){
 
		for (; start  < end && *start == ' '; start++)
			;
		if (*start <= 'Z')
			*start += 32;
		for (; end > start && *end == ' '; end--)
			;
		if (*end <= 'Z')
			*end += 32;
		if ( *start != *end){
			return *start;
		}
	}
 
	return 0;
 
}
 
int main(void){
 
	int result;
 
	result = Palindrome();
	printf("%d",  result);
 
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Facu

[AYUDA] Modelo de Parcial en C

Publicado por Facu (2 intervenciones) el 26/09/2016 06:19:06
Muchas gracias, pero no me devuelve ningun valor...

Sabrias si es por el compilador que uso? Estoy usando el Visual Studio 2012 Professional, es el mismo que usamos en clase.

Sabrias como adaptarlo para ese compilador ? porque no me devuelve nada :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[AYUDA] Modelo de Parcial en C

Publicado por Chema (234 intervenciones) el 26/09/2016 10:28:13
Espabila un poco, y piensa que no duele.
El valor devuelto es nada en los primeros ejemplos y cero en el segundo ejemplo, lo cual significa que la cadena es un Palindromo, si colocas un carácter suelto, verás como te devuelve valores.

Yo soy del lado oscuro, Unix/bsd/linux. Del lado brillante , reluciente, de la eterna felicidad, los asistentes, y el "corta y pega" como norma de trabajo, no se absolutamente nada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar