Fecha y hora actual: Sábado 23 Mar 2019 16:57
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

dudas algunos conceptos de c

Responder al Tema

Índice del Foro > C, C#, Visual C++ > dudas algunos conceptos de c

Autor Mensaje
joseSOYYO
Usuario Iniciado


Registrado: 01 May 2012
Mensajes: 40
Ubicación: huelva (españa)

Mensaje Publicado: Sábado 09 Jun 2012 13:47

Título del mensaje: dudas algunos conceptos de c

Responder citando

hola buenas a todos, tengo el examen dentro de nada, y tengo algunas dudas de algunos ejercicios tipo examen, se las presento:

A) !,% y <>, cual de estos no es un operador de c?

B) cual de estas palabras son palabras reservadas para c ?
strmp,float,return

c) ¿por que (float)b+2/(a+1), devuelve el valor 6.0? si int a=3 y int b=6
no lo entiendo, debería de devolver 2.0 por que estamos dividiendo

d)

Código:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
void incrementa(int *a);
void multiplica(int a);
void incrementa(int *a){
     *a=*a+2;
     }
void multiplica(int a){
     a=a*2;
     }     


int main(void){

int mat[][3] = {1,2,3,4,5,6,7,8,9};
int i,j,m,c;
i=5;
if (i%2!=2){
            incrementa(&i);
            multiplica(i);
             printf("\n aqui la i 2 del primer if %i \n",i);
            }
            else{
                 multiplica(i);
                 incrementa(&i);
                 printf("\n aqui la i 2 %i \n",i);
                 
                 do{
                                switch(i%3)
                                {
                                           case 0: m=1;break;
                                           case 1: m=2;break;
                                           default: m=0;}
                                           j=0;c=2;
                                           while(j<3){
                                                      mat[j][m]=mat[j][c]+m;
                                                      j++;
                                                      c--;}
                                                      i--;
                                                      }
                                                      while (i>6);
                                                      system("pause");
                                                      }
                 
                 





system("pause");
return 0;
}



esta función, sencillamente no la entiendo, sobre todo las funciones incrementa y multiplica, es decir si yo a estas dos funciones no les meto ningún valor, y luego tampoco retorno ninguno, es como si no me sirviesen de nada no?
pero no se por que esas funciones me alteran el valor de la i...



si me podeis resolver aunque sea solo una o un par os estare muy agradecido por que el examen es dentro de muy poco y estoy algo agobiado


un saludo!! Super [/b]

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
eduar2083
Usuario Activo


Registrado: 14 Nov 2008
Mensajes: 238
Ubicación: Lima - Perú

Mensaje Publicado: Sábado 09 Jun 2012 16:13

Título del mensaje: Re: dudas algunos conceptos de c

Responder citando

Hola Jose:
A)
! es el operador unario de la negación.
% se utiliza generalmente acompañado de los caracteres d, f, h, c, s, etc para formar %d, %f, %h, %c, %s respectivamente que vienen a ser los especificadores de tipo. Sin embargo no es operador.
< es el operador binario relacional menor que
> es el operador binario relacional mayor que
<> como tal no es un operador

B)
strmp no es palabra reservada ni función. Existe una función en el header string.h llamada strcmp.
float si es una palabra reservada utilizada para declarar números en coma flotante de precisión simple.
return también es una plabra reservada utilizada para devolver un valor desde el interior de una función o simplemente para devolver el control.

C)
Código:
int a = 3; int b = 6;
double result = (float)b+2/(a+1)


La expresión toma la siguiente forma:
6.0 + 2 / (3 + 1)
6.0 + 2 / 4
6.0 + 0
6.0

Creo que estás confundiendo con lo siguiente:
(6.0 + 2) / (3 + 1)
8 / 4
2

El operador, de la división tiene mayor precedencia que la suma y es por ello que se realiza antes, para forzar a que realice la suma antes, debes utilizar paréntesis.
(b + 2.0)/(a + 1)

Saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
joseSOYYO
Usuario Iniciado


Registrado: 01 May 2012
Mensajes: 40
Ubicación: huelva (españa)

Mensaje Publicado: Sábado 09 Jun 2012 18:14

Título del mensaje: Re: dudas algunos conceptos de c

Responder citando

muchas gracias por tu respuesta eduar, me ha ayudado bastante, sobre todo la c un saludo!

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Dudas al instanciar clases heredadas

MMCA Java 0 Viernes 26 Ene 2018 21:34 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Dudas sobre un juego que tengo pensado crear

aypheros Programación de juegos o videojuegos 5 Lunes 07 Nov 2016 00:20 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Dudas con optimizacion de código...

WhiteSkull C, C#, Visual C++ 3 Viernes 08 Abr 2016 22:35 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Dudas en un programa

jongalaz Python 2 Martes 24 Nov 2015 13:28 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Editores hexadecilames, dudas.

Tachikomaia Temas generales 0 Miércoles 20 May 2015 04:03 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,