In [2]:
// 00_varCar.c
/*
gcc 00_varCar.c -o vc

Programa fet el 29 de setembre de 2021
*/
#include <stdio.h> // .h: Header --> capçalera Com un menú de funcions. Entre d'altres el printf()

int main(){
    char cC; // Declaro cC com a variable de tipus char

    cC = 'J'; // Assignació del valor 'J' = 74 = 0x4A

    printf("c (com a caràcter)                        = %c\n",cC); // 'J'
    printf("c (com a enter -int-)                     = %d\n",cC); // 74
    printf("c (com a hexadecimal en majúscules -int-) = %X = 0x%X\n",cC,cC); // 4A = 0x4A
    printf("c (com a hexadecimal en minúscules -int-) = %x = 0x%x\n",cC,cC); // 4a = 0x4a
    printf("c (com a octal -int-) = %o\n",cC); // 112

    return 0; // Si tot ha anat bé retorno un zero al sistema operatiu
}
c (com a caràcter)                        = J
c (com a enter -int-)                     = 74
c (com a hexadecimal en majúscules -int-) = 4A = 0x4A
c (com a hexadecimal en minúscules -int-) = 4a = 0x4a
c (com a octal -int-) = 112
In [3]:
// 01_basic.c
/*
gcc 01_basic.c -o pb

Programa fet el 29 de setembre de 2021
*/
#include <stdio.h> // .h: Header --> capçalera Com un menú de funcions. Entre d'altres el printf()

int main(){
    printf("Alumne\n\n"); // '\n' és un salt de línia
    
    return 0; // Si tot ha anat bé retorno un zero al sistema operatiu
}
Alumne

In [4]:
// 01_basic_b.c
/*
gcc 01_basic.c -o pb

Programa fet el 29 de setembre de 2021
*/
#include <stdio.h> // .h: Header --> capçalera Com un menú de funcions. Entre d'altres el printf()

int main(){ printf("Alumne\n\n"); return 0; }
Alumne

In [5]:
// 02_enters.c

#include <stdio.h>

int main(){
    int nEnter; // Declaració d'una variable entera (4 bytes)

    nEnter = -18; // Assignació d'un valor a una variable. Sempre de dreta a esquerra.
    printf("nEnter = %d\n",nEnter);

    return 0;
}
nEnter = -18
In [6]:
// 02_enters_01.c

#include <stdio.h>

int main(){
    //int nEnter; // Declaració d'una variable entera (4 bytes)
    //nEnter = -18; // Assignació d'un valor a una variable. Sempre de dreta a esquerra.

    int nEnter = -18; // Instanciem la variable (declaració + assignació)

    printf("nEnter = %d\n",nEnter);

    return 0;
}
nEnter = -18
In [7]:
// 03_float.c

#include <stdio.h>

int main(){
    float fReal = -18.12345; // Instanciem la variable (declaració + assignació)

    printf("fReal = %f\n",fReal); // sense restricció de decimals
    printf("fReal = %.3f\n",fReal); // restricció de 3 decimals

    return 0;
}
fReal = -18.123449
fReal = -18.123
In [8]:
// 04_double.c
// double té 8 bytes. També conegut com long float

#include <stdio.h>

int main(){
    double lfReal = -18.12345; // Instanciem la variable (declaració + assignació)

    printf("lfReal = %lf\n",lfReal); // sense restricció de decimals
    printf("lfReal = %.3lf\n",lfReal); // restricció de 3 decimals

    return 0;
}
lfReal = -18.123450
lfReal = -18.123
In [9]:
// 05_cadenes.c

#include <stdio.h>

int main(){
    char szNom[33] = "Javi"; // Instanciem el vector de caràcters, o cadena, o string.

    printf("szNom: %s\n",szNom);

    return 0;
}
szNom: Javi
In [10]:
// 05_cadenes_02.c

#include <stdio.h>
#define N 33 /* Es defineix N com a 33. És com un copia i enganxa. Veu N i hi posa 33*/

int main(){
    char szNom[N] = "Javi"; // Instanciem el vector de caràcters, o cadena, o string.

    printf("szNom: %s\n",szNom);

    return 0;
}
szNom: Javi
In [11]:
// 05_cadenes_03.c

#include <stdio.h>
#define N 33 /* Es defineix N com a 33. És com un copia i enganxa. Veu N i hi posa 33*/

int main(){
    char szNom[N] = "Javi"; // Instanciem el vector de caràcters, o cadena, o string.

    printf("szNom: %s\n",szNom);
    printf("szNom[0]: %c\n",szNom[0]);
    printf("szNom[1]: %c\n",szNom[1]);
    printf("szNom[2]: %c\n",szNom[2]);

    return 0;
}
szNom: Javi
szNom[0]: J
szNom[1]: a
szNom[2]: v
In [12]:
// 05_cadenes_04.c

#include <stdio.h>
#define N 33 /* Es defineix N com a 33. És com un copia i enganxa. Veu N i hi posa 33*/

int main(){
    char szNom[N] = "Javi"; // Instanciem el vector de caràcters, o cadena, o string.
    int i = 0;

    printf("szNom: %s\n",szNom);
    printf("szNom[%d]: %c\n",i,szNom[i]);
    i = i + 1; // Sumo 1 a i
    printf("szNom[%d]: %c\n",i,szNom[i]);
    i++; // Incrementem el valor de la variable i
    printf("szNom[%d]: %c\n",i,szNom[i]);
    
    return 0;
}
szNom: Javi
szNom[0]: J
szNom[1]: a
szNom[2]: v
In [13]:
// 05_cadenes_04b.c

#include <stdio.h>
#define N 33 /* Es defineix N com a 33. És com un copia i enganxa. Veu N i hi posa 33*/

int main(){
    char szNom[N] = "Javi"; // Instanciem el vector de caràcters, o cadena, o string.
    int i = 0;

    printf("szNom: %s\n",szNom);
    printf("szNom[%d]: %c\n",i,szNom[i]);
    i = i + 1; // Sumo 1 a i
    printf("szNom[%d]: %c\n",i,szNom[i]);
    i++; // Incrementem el valor de la variable i
    printf("szNom[%d]: %c\n",i,szNom[i]);
    i++; // Incrementem el valor de la variable i
    printf("szNom[%d]: %c\n",i,szNom[i]);
    
    return 0;
}
szNom: Javi
szNom[0]: J
szNom[1]: a
szNom[2]: v
szNom[3]: i
In [14]:
// 06_entraNumEnter.c
#include <stdio.h>

int main(){
    int nNum;

    printf("Entra un número enter (sense decimals): ");
    scanf("%d",&nNum); // Es posa el símbol et (&) per a indicar l'adreça de la variable
    printf("Heu introduït el número %d.\n",nNum);

    return 0;
}
Entra un número enter (sense decimals): 
Heu introduït el número 23.
In [15]:
// 07_entraNumRealFloat.c
#include <stdio.h>

int main(){
    float fNum;

    printf("Entra un número real (amb decimals): ");
    scanf("%f",&fNum); // Es posa el símbol et (&) per a indicar l'adreça de la variable
    printf("Heu introduït el número %f.\n",fNum);

    return 0;
}
Entra un número real (amb decimals): 
Heu introduït el número 1.234568.
In [16]:
// 08_entraNumRealDouble.c
#include <stdio.h>

int main(){
    double lfNum;

    printf("Entra un número real (amb decimals): ");
    scanf("%lf",&lfNum); // Es posa el símbol et (&) per a indicar l'adreça de la variable
    printf("Heu introduït el número %lf.\n",lfNum);

    return 0;
}
Entra un número real (amb decimals): 
Heu introduït el número 1.234568.
In [17]:
// 09_entraCadena.c
#include <stdio.h>
#define MOLT_GROS 99

int main(){
    char szCadena[MOLT_GROS]; // Empro notació hongaresa

    printf("Entra una cadena (sense espais): ");
    scanf("%s",&szCadena[0]); // Es posa el símbol et (&) per a indicar l'adreça de la variable
    printf("Heu introduït: %s.\n",szCadena);

    return 0;
}
Entra una cadena (sense espais): 
Heu introduït: Barcelona.
In [18]:
// 09_entraCadena02.c
#include <stdio.h>
#define MOLT_GROS 99

int main(){
    char szCadena[MOLT_GROS]; // Empro notació hongaresa

    printf("Entra una cadena (sense espais): ");
    //scanf("%s",&szCadena[0]); // Es posa el símbol et (&) per a indicar l'adreça de la variable
    scanf("%s",szCadena); // Sense &. De fet szCadena i &szCadena[0] és el mateix
    printf("Heu introduït: %s.\n",szCadena);

    return 0;
}
Entra una cadena (sense espais): 
Heu introduït: Barcelona.
In [19]:
// 10_entraNomEdat.c
#include <stdio.h>
#define MOLT_GROS 99

int main(){
    char szNom[MOLT_GROS]; // Empro notació hongaresa
    int nEdat;

    printf("Entra el teu nom (sense espais): ");
    //scanf("%s",&szNom[0]); // Es posa el símbol et (&) per a indicar l'adreça de la variable
    scanf("%s",szNom); // Sense &. De fet szCadena i &szCadena[0] és el mateix
    printf("Entra la teva edat: ");
    scanf("%d",&nEdat);
    printf("En/na %s té %d anys\n",szNom,nEdat);

    return 0;
}
Entra el teu nom (sense espais): 
Entra la teva edat: 
En/na Jordi té 23 anys
In [20]:
// 10_entraNomEdat_profeNoVa.c
#include <stdio.h>
#define MOLT_GROS 99

int main(){
    char szNom[MOLT_GROS]; // Empro notació hongaresa
    int nEdat;
    char cCar;

    printf("Entra la teva edat: ");
    scanf("%d",&nEdat);
    printf("Entra un caràcter: ");
    scanf("%c",&cCar);
    printf("Entra el teu nom (sense espais): ");
    //scanf("%s",&szNom[0]); // Es posa el símbol et (&) per a indicar l'adreça de la variable
    scanf("%s",szNom); // Sense &. De fet szCadena i &szCadena[0] és el mateix
    printf("En/na %s té %d anys. El caràcter entrat és %c\n",szNom,nEdat,cCar);

    return 0;
}
Entra la teva edat: 
Entra un caràcter: 
Entra el teu nom (sense espais): En/na * té 23 anys. El caràcter entrat és 

In [21]:
// 10_entraNomEdat_profeSiVa.c
#include <stdio.h>
#define MOLT_GROS 99

int main(){
    char szNom[MOLT_GROS]; // Empro notació hongaresa
    int nEdat;
    char cCar;

    printf("Entra la teva edat: ");
    scanf("%d",&nEdat);
    printf("Entra un caràcter: ");
    scanf("%c",&cCar); // Aquest scanf es menja un Enter ('\n')
    scanf("%c",&cCar);
    printf("Entra el teu nom (sense espais): ");
    //scanf("%s",&szNom[0]); // Es posa el símbol et (&) per a indicar l'adreça de la variable
    scanf("%s",szNom); // Sense &. De fet szCadena i &szCadena[0] és el mateix
    printf("En/na %s té %d anys. El caràcter entrat és %c\n",szNom,nEdat,cCar);

    return 0;
}
Entra la teva edat: 
Entra un caràcter: 
Entra el teu nom (sense espais): 
En/na Jordi té 23 anys. El caràcter entrat és *
In [ ]: