Skip to content
Snippets Groups Projects
Verified Commit bf4583cd authored by orestis.malaspin's avatar orestis.malaspin
Browse files
parents e5ccf77f 73ac79cc
No related branches found
No related tags found
No related merge requests found
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
void print(int n,double tab[n]) {
//à compléter
}
void random_tab(int n,double tab[n]) {
//à compléter
}
int index_min(int n,double tab[n],int i) {
int ind_min = i;
//à compléter
return ind_min;
}
void permut(int n,double tab[n],int i,int j) {
//à compléter
}
void tri_selection(int n,double tab[n]) {
for (int i=0;i<n-1;i++) {
int ind_min = index_min(n,tab,i);
if (tab[i] != tab[ind_min]) {
permut(n,tab,i,ind_min);
}
}
}
bool croissant(int n,double tab[n]) {
//à compléter
return true;
}
int main() {
srand(time(NULL));
int n;
printf("n=");
scanf("%d",&n);
double res[n];
random_tab(n,res);
print(n,res);
tri_selection(n,res);
print(n,res);
if (!croissant(n,res)) {
return EXIT_FAILURE;
}
printf("sorted\n");
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 10
int main() {
srand(time(NULL));
double tab[SIZE];
for (int i = 0; i < SIZE; ++i) {
tab[i] = rand() / (double)RAND_MAX;
}
for (int i = 0; i < SIZE - 1; ++i) {
double min = tab[i];
int ind_min = i;
for (int j = i + 1; j < SIZE; ++j) {
if (min > tab[j]) {
ind_min = j;
min = tab[j];
}
}
double tmp = tab[i];
tab[i] = tab[ind_min];
tab[ind_min] = tmp;
}
for (int i = 0; i < SIZE; ++i) {
printf("%f ", tab[i]);
}
printf("\n");
for (int i = 0; i < SIZE - 1; ++i) {
if (tab[i] > tab[i + 1]) {
return EXIT_FAILURE;
}
}
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
void main() {
char mot1[30];
char mot2[30];
printf("Entrez deux mots:\n");
scanf("%s%s",mot1,mot2);
int lg1 = strlen(mot1), lg2 = strlen(mot2);
printf("Les mots %s et %s",mot1,mot2);
// tri de mot1
for (int i=0;i<lg1-1;i++) {
int ind_min = i;
for (int k=i+1;k<lg1;k++) {
if (mot1[k] < mot1[ind_min]) {
ind_min = k;
}
}
int tmp = mot1[i];
mot1[i] = mot1[ind_min];
mot1[ind_min] = tmp;
}
// tri de mot2
for (int i=0;i<lg2;i++) {
int ind_min = i;
for (int k=i+1;k<lg2;k++) {
if (mot2[k] < mot2[ind_min]) {
ind_min = k;
}
}
int tmp = mot2[i];
mot2[i] = mot2[ind_min];
mot2[ind_min] = tmp;
}
/*bool egal = true;
if (lg1 == lg2) {
for (int i=0;i<lg1;i++) {
if (mot1[i] != mot2[i]) {
egal = false;
break;
}
}
} else {
egal = false;
}*/
bool egal = (strcmp(mot1,mot2) == 0);
if (egal) {
printf(" sont des anagrammes\n");
} else {
printf(" ne sont pas des anagrammes\n");
}
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const unsigned int SIZE = 13;
void main() {
int tab[SIZE];
for (int i=0;i<SIZE;i++) {
tab[i] = i*i;
}
for (int i=0;i<SIZE;i++){
printf("%d ",tab[i]);
}
printf("\n");
// remplissage d'un tableau avec des nombres aléatoires
srand(time(NULL));
for (int i=0;i<SIZE;i++) {
tab[i] = rand()%100;
}
for (int i=0;i<SIZE;i++) {
printf("%d ",tab[i]);
}
printf("\n");
// recherche de l'indice de la valeur min dans un tableau
int val_min = tab[0],ind_min = 0;
for (int i=0;i<SIZE;i++) {
if (tab[i] < val_min) {
ind_min = i;
val_min = tab[i];
}
}
printf("Tab: index du min = %d / valeur min = %d de tab\n",ind_min,tab[ind_min]);
}
#include <stdio.h>
#include <stdbool.h>
const int SIZE = 51;
void main() {
bool tab[SIZE];
for (int i=0;i<SIZE;i++) {
tab[i] = true;
}
for (int i=2;i<SIZE;i++) {
if (tab[i]) {
int j = i;
while (true) {
j += i;
if (j >= SIZE) {
break;
}
tab[j] = false;
}
}
}
for (int i=2;i<SIZE;i++) {
if (tab[i]) {
printf("%d ",i);
}
}
printf("\n");
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
void main() {
printf("Entrez une chaîne de caractères: ");
char mot[30];
scanf("%s",mot);
int lg = strlen(mot);
bool palindrome = true;
int first_idx = 0;
int last_idx = lg-1;
while (first_idx < last_idx) {
if (mot[first_idx] != mot[last_idx]) {
palindrome = false;
break;
}
first_idx += 1;
last_idx -= 1;
}
//alternative
char inverse[30];
for (int i=0;i<lg;i++) {
inverse[i] = mot[lg-1-i];
}
inverse[lg] = '\0';
bool palindrome_alt = (strcmp(inverse,mot) == 0);
printf("Le mot %s",mot);
if (palindrome_alt) {
printf(" est un palindrome\n");
} else {
printf(" n'est pas un palindrome\n");
}
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int SIZE = 13;
// Tri par sélection
void main() {
srand(time(NULL));
float tab[SIZE];
// initialisation du tableau avec des valeurs aléatoires
for (int i=0;i<SIZE;i++) {
tab[i] = 100.0*(rand()/(float)RAND_MAX);
}
// impression du tableau
for (int i=0;i<SIZE;i++) {
printf("%.2f ",tab[i]);
}
printf("\n");
// recherche dans le tableau de l'indice de la plus petite valeur
int ind_min = 0;
for (int k=1;k<SIZE;k++) {
if (tab[k] < tab[ind_min]) {
ind_min = k;
}
}
printf("index du min de tab: %d / valeur min de tab: %.2f\n",ind_min,tab[ind_min]);
// échange de la 1ère valeur avec la plus petite du tableau
float tmp = tab[0];
tab[0] = tab[ind_min];
tab[ind_min] = tmp;
// impression du tableau
for (int i=0;i<SIZE;i++) {
printf("%.2f ",tab[i]);
}
printf("\n");
// tri par sélection
for (int i=0;i<SIZE-1;i++) {
ind_min = i;
for (int k=i+1;k<SIZE;k++) {
if (tab[k] < tab[ind_min]) {
ind_min = k;
}
}
tmp = tab[i];
tab[i] = tab[ind_min];
tab[ind_min] = tmp;
}
// impression du tableau
for (int i=0;i<SIZE;i++) {
printf("%.2f ",tab[i]);
}
printf("\n");
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int SIZE = 13;
// Tri par sélection
void main() {
//déclaration et intialisation du tableau
srand(time(NULL));
double tab[SIZE];
for (int i=0;i<SIZE;i++) {
tab[i] = 100.0*(rand()/(double)RAND_MAX);
}
//impression du tableau
for (int i=0;i<SIZE;i++) {
printf("%.2lf ",tab[i]);
}
printf("\n");
//à compléter
int debut = 0;
for (....) { //à compléter
// recherche du plus petit élément du sous-tableau de début à SIZE
int ind_min = 0; // à remplacer 0 par debut
double val_min = tab[0]; // à remplacer 0 par debut
for (int i = 1; i < SIZE; ++i) { //à remplacer 1 par debut+1
if (val_min > tab[i]) {
val_min = tab[i];
ind_min = i;
}
}
printf("val. min. = %.2lf / index min. = %d\n ",val_min,ind_min);
// permuter le plus petit élément avec le premier élément du tableau
double tmp = tab[0]; // à remplacer 0 par debut
tab[0] = tab[ind_min]; // à remplacer 0 par debut
tab[ind_min] = tmp;
}
//impression du tableau
for (int i=0;i<SIZE;i++) {
printf("%.2lf ",tab[i]);
}
printf("\n");
//validation que le tableau est trié
//à compléter
}
#include <stdio.h>
#include <stdlib.h>
typedef enum _piece {SAFE, VULN, QUEEN} piece;
void print(int n,int m,cell tab[n][m]);
void init_board(int n,int m,cell tab[n][m]);
void couverture(int n,int m,cell tab[n][m],int r_x,int r_y);
void main() {
int n=8;
piece board[n][n];
init(n,n,board,SAFE);
print(n,n,board);
printf("Entrez la colonne de la reine (1..%d): ",n);
int r_j;
scanf("%d",&r_j);
r_j--;
printf("Entrez la ligne de la reine ('a'..'%c'): ",n-1+'a');
char ch[1];
scanf("%s",ch);
couverture(n,n,board,ch[0]-'a',r_j);
print(n,n,board);
}
void print(int n,int m,piece board[n][m]) {
for (int i=n-1;i>=0;i--) {
printf("%c ",'a'+i);
for (int j=0;j<m;j++) {
switch(board[i][j]) {
case VULN: printf(" *"); break;
case SAFE : printf(" o"); break;
case QUEEN: printf(" R");
}
}
printf("\n");
}
printf("\n ");
for (int j=0;j<m;j++) {
printf(" %d",j+1);
}
printf("\n");
}
void couverture(int n,int m,piece board[n][m],int r_i,int r_j) {
for (int k=0;k<n;k++) {
board[k][r_j] = VULN; //colonne de la reine
}
for (int k=0;k<m;k++) {
board[r_i][k] = VULN; //ligne de la reine
int tmp = r_j-k;
if (0 <= r_i+tmp && r_i+tmp < n) { //diagonale montante
board[r_i+tmp][k] = VULN;
}
if (0 <= r_i-tmp && r_i-tmp < n) { //diagonale descendante
board[r_i-tmp][k] = VULN;
}
}
board[r_i][r_j] = QUEEN;
}
void init(int n,int m,piece tab[n][m],piece pce) {
for (int i=0;i<n;i++) {
for (int j=0;j<m;j++) {
tab[i][j] = pce;
}
}
}
#include <stdio.h>
#include <stdlib.h>
typedef enum _piece {SAFE, VULN, QUEEN} piece;
void print(int n,int m,cell tab[n][m]);
void init_board(int n,int m,cell tab[n][m]);
void couverture(int n,int m,cell tab[n][m],int r_x,int r_y);
void main() {
int n=8;
piece board[n][n];
init(n,n,board,SAFE);
print(n,n,board);
printf("Entrez la colonne de la reine (1..%d): ",n);
int r_j;
scanf("%d",&r_j);
r_j--;
printf("Entrez la ligne de la reine ('a'..'%c'): ",n-1+'a');
char ch[1];
scanf("%s",ch);
couverture(n,n,board,ch[0]-'a',r_j);
print(n,n,board);
}
void print(int n,int m,piece board[n][m]) {
for (int i=n-1;i>=0;i--) {
printf("%c ",'a'+i);
for (int j=0;j<m;j++) {
switch(board[i][j]) {
case VULN: printf(" *"); break;
case SAFE : printf(" o"); break;
case QUEEN: printf(" R");
}
}
printf("\n");
}
printf("\n ");
for (int j=0;j<m;j++) {
printf(" %d",j+1);
}
printf("\n");
}
void couverture(int n,int m,piece board[n][m],int r_i,int r_j) {
//colonne de la reine
for (int k=0;k<n;k++) {
board[k][r_j] = VULN;
}
//ligne de la reine
for (int k=0;k<m;k++) {
board[r_i][k] = VULN;
}
//diagonale montante
for (int k=0;r_i+k<n && r_j+k<m;k++) {
board[r_i+k][r_j+k] = VULN;
}
//compléter les autres diagonales
board[r_i][r_j] = QUEEN;
}
void init(int n,int m,piece tab[n][m],piece pce) {
// à compléter
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment