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 EJERCICIO 1:
Desde ya muchas gracias !
Saludos[/i]
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 EJERCICIO 1:
Código (c) [Seleccionar]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define MAX 50
int main(int argc, char *argv[])
{
char N[MAX];
int cont;
int cont2;
char C[MAX];
int suma=0;
int lon;
int cont3=0;
cont=0;
printf("Escribir una cadena de caracteres: ");
gets(N);
lon=strlen(N);
cont2=lon-1;
while(cont<MAX){
C[cont]=N[cont2];
cont=cont+1;
cont2=cont2-1;}
C[lon]='\0';
cont=0;
cont=0;
while(cont<lon){
cont2=cont;cont3=0;
if(N[cont]==' '){
while(cont2<lon){
N[cont+cont3]=N[cont+cont3+1];
cont2=cont2+1;
cont3=cont3+1;
}}
cont=cont+1;}
cont=0;
while(cont<lon){
cont2=cont;cont3=0;
if(C[cont]==' '){
while(cont2<lon){
C[cont+cont3]=C[cont+cont3+1];
cont2=cont2+1;
cont3=cont3+1;
}}
cont=cont+1;}
cont=0;
while(cont<lon){
if(N[cont]!=C[cont]){
suma=suma+1;}
cont=cont+1;}
printf("\n");
if(suma!=0){printf("No es palindromo\n");}
else{printf("Es palindromo\n");}
system("PAUSE");
return 0;
}
Desde ya muchas gracias !
Saludos[/i]