Es Croce 2-2-17
#include <stdlib.h>
#include <stdio.h>
void stampa_croce(FILE *f, size_t dim)
{
if (dim == 0)
return;
int c = 0;
int n = dim * 2 - 1;
for (int i = 0; i < dim * 2; i++) {
for (int j = 0; j < dim * 2; j++) {
if (j == c) {
fprintf(f, "%c", '');
}
else if (j == n) {
fprintf(f, "%c", '/');
}
else {
fprintf(f, "%c", ' ');
}
}
fprintf(f, "
");
c++;
n--;
}
}
Es Rational 2-2-17
rational.h
#ifndef RATIONAL_H
#define RATIONAL_H
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
struct rational {
int num;
unsigned int den;
};
extern struct rational *rational_read(const char *filename, size_t *size);
#endif // !RATIONAL_H
rational.c
#include "rational.h"
#define ever (;;)
struct rational *rational_read(const char *filename, size_t *size)
{
FILE *f = fopen(filename, "rt");
if (f == NULL) { *size = 0; return NULL; }
struct rational *ris = NULL;
size_t cont = 0;
for ever
{
int tmpnum, ret;
unsigned int tmpden;
if ((ret = fscanf(f, "%i /%u", &tmpnum, &tmpden)) == EOF) break;
if (ret != 2) { *size = cont; return ris; }
ris = realloc(ris, (++cont) * sizeof(struct rational));
ris[cont - 1].num = tmpnum;
ris[cont - 1].den = tmpden;
}
*size = cont;
return ris;
}
ES Palindroma 2-2 17
palindroma.c
#include "palindroma.h"
bool palindroma(const char *str)
{
int n = strlen(str);
if (n == 1)
return true;
if (str == NULL)
return false;
if (str[0] == 0)
return false;
//str[i] è uguale a *(str + i)
/*
for (int i = 0; i < l;i++) {
if (str[i] != str[n - 1])
return false;
n--;
}
*/
int i = 0;
while (i <= n) {
if (str[i] != str[n - 1])
return false;
n--;
i++;
}
return true;
}
palindroma.h
#if !defined PALINDROMA_H
#define PALINDROMA_H
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
extern bool palindroma(const char *str);
#endif