Skip to content
Snippets Groups Projects
Commit c014585d authored by thib's avatar thib
Browse files

rendu

parent 6ea1a971
No related branches found
No related tags found
No related merge requests found
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _element {
char c;
struct _element *next;
} element;
void push(element **chain, char data) {
element *tmp = malloc(sizeof(element));
tmp->c = data;
tmp->next = *chain;
*chain = tmp;
}
void fill_chain(element **chain, char *str, int len) {
for (int i = len; i >= 0; i--) {
push(chain, str[i]);
}
}
void chain_split(element **chain1, element **chain2, int len) {
int len1 = len / 2;
int len2 = len - len1;
element *current = *chain1;
for (int i = 0; i < len1-1; i++) {
current = current->next;
}
chain2=&current;
current=NULL;
printf("\n\n\n\n %c \n\n\n\n ",current->c);
}
void chain_delete(element **ch) {
element *delete;
while ((*ch)->next != NULL) {
delete = *ch;
*ch = (*ch)->next;
free(delete);
}
// free(*ch);
}
void print_chain(element *ch) {
while (ch != NULL) {
printf("%c\n", ch->c);
ch = ch->next;
}
printf("\n");
}
int main() {
char str[16];
scanf("%s", str);
int len = strlen(str);
element *chain1;
element *chain2;
fill_chain(&chain1, str, len);
chain_split(&chain1, &chain2, len);
// print_chain(chain);
// chain_delete(&chain);
// for (int i = 0; i < 2; i++) {
// char str[16];
// scanf("%s", str);
// int len = strlen(str);
// element* chain;
// fill_chain(&chain, str, len);
// print_chain(chain);
// }
return EXIT_SUCCESS;
}
\ No newline at end of file
...@@ -2,16 +2,55 @@ ...@@ -2,16 +2,55 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
int main(){ typedef struct {
float r;
float d;
} dual;
int size=3; dual dual_init(float r, float d) {
int arr[size]; dual new;
for(int i=0;i<size;i++){ new.r = r;
scanf("%d",&arr[i]); new.d = d;
return new;
}
dual dual_add(dual a, dual b) {
dual res;
res.r = a.r + b.r;
res.d = b.d + b.d;
return res;
}
dual dual_mult(dual a, dual b) {
dual res;
res.r = a.r * b.r;
res.d = a.r * b.d + a.d * b.r;
return res;
} }
void dual_print(dual a) { printf("%.3f %.3f\n", a.r, a.d); }
dual dual_cube(dual a) {
dual res;
res.r = a.r * a.r * a.r;
res.d = 3 * a.d * a.r * a.r;
return res;
}
int main() {
int size = 2;
dual arr[size];
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
printf("%d\n",arr[i]); float r;
float d;
scanf("%f %f", &r, &d);
arr[i] = dual_init(r, d);
} }
printf("\n");
dual_print(dual_add(arr[0], arr[1]));
dual_print(dual_mult(arr[0], arr[1]));
dual_print(dual_cube(arr[0]));
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
\ No newline at end of file
...@@ -2,16 +2,37 @@ ...@@ -2,16 +2,37 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
int main(){ void split(char* str,char *str1,char *str2){
int len=strlen(str);
int len1=len/2;
int len2=len-len1;
for(int i=0;i<len1;i++){
str1[i]=str[i];
}
str1[len1]='\0';
int size=3; for(int i=0;i<len2;i++){
int arr[size]; str2[i]=str[i+len1];
for(int i=0;i<size;i++){
scanf("%d",&arr[i]);
} }
for(int i=0;i<size;i++){ str2[len2]='\0';
printf("%d\n",arr[i]);
} }
//j'ai fini par faire avec des tableaux
int main(){
char str1[2][80];
char str2[2][80];
for(int i=0;i<2;i++){
char str[81];
scanf("%s",str);
split(str,str1[i],str2[i]);
}
printf("\n");
for(int i=0;i<2;i++){
printf("1: %s 2: %s\n",str1[i],str2[i]);
}
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
\ No newline at end of file
...@@ -2,16 +2,46 @@ ...@@ -2,16 +2,46 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
void swap(float *a, float *b) {
float tmp = *a;
*a = *b;
*b = tmp;
}
void sort(float *arr, int nitems) {
for (int j = nitems - 1; j > 1; j--) {
for (int i = 0; i < j; i++) {
if (arr[i] > arr[i + 1]) {
swap(&arr[i], &arr[i + 1]);
}
}
}
}
int main() { int main() {
float money;
float bill = 0;
int size = 10;
float list[size];
char dummy[80];
scanf("%f", &money);
int size=3;
int arr[size];
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
scanf("%d",&arr[i]); scanf("%s %f", dummy, &list[i]);
} }
sort(list, size);
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
printf("%d\n",arr[i]); if (list[i] < money) {
bill += list[i];
money -= list[i];
}
} }
printf("\n%.1f\n", bill);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
\ No newline at end of file
...@@ -2,15 +2,35 @@ ...@@ -2,15 +2,35 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
int main(){ typedef struct _stalag {
int n; // longueur
int *body;
} stalag;
int size=3; void stalag_init(int crt, stalag *s) {
int arr[size]; if (crt < s->n) {
for(int i=0;i<size;i++){ if (s->n < 3) {
scanf("%d",&arr[i]); s->body[crt] = 1;
} else {
s->body[crt] = s->body[crt - 1] + s->body[crt - 2] + s->body[crt - 3];
}
stalag_init(crt + 1, s);
} }
}
int main() {
int size = 10;
int input[size];
stalag st[size];
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
printf("%d\n",arr[i]);
scanf("%d", &input[i]);
st[i].body = malloc(input[i] * sizeof(int*));
st[i].n=input[i];
stalag_init(0, &st[i]);
//print, pas le temps de deboguer...
} }
return EXIT_SUCCESS; return EXIT_SUCCESS;
......
...@@ -2,16 +2,32 @@ ...@@ -2,16 +2,32 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
int main(){
int size=3; int count_longest_down(int size, float arr[size]){
int arr[size]; int max=0;
for(int i=0;i<size;i++){ int current=0;
scanf("%d",&arr[i]); for(int i=0;i<size-1;i++){
if(arr[i]>arr[i+1]){
current++;
}else{
if(current>max){
max=current;
}
current=0;
}
}
return max;
} }
int main(){
int size=15;
float arr[size];
for(int i=0;i<size;i++){ for(int i=0;i<size;i++){
printf("%d\n",arr[i]); scanf("%f",&arr[i]);
} }
printf("\nnombre: %d\n",count_longest_down(size, arr));
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
\ No newline at end of file
main.x: main.o
gcc -o $@ $< -fsanitize=address -fsanitize=leak
main.o: main.c
gcc -c -Wall -Wextra -pedantic -fsanitize=address -fsanitize=leak $<
clean:
rm -f *.o *.x
rebuild: clean main
\ No newline at end of file
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int size=3;
int arr[size];
for(int i=0;i<size;i++){
scanf("%d",&arr[i]);
}
for(int i=0;i<size;i++){
printf("%d\n",arr[i]);
}
return EXIT_SUCCESS;
}
\ No newline at end of file
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Ce programme prend en argument 2 chaînes de caractères sur des lignes
// séparées (longueur max de 80), les sépare au milieu et retourne les 4
// chaînes chacune sur une nouvelle ligne (si la longueur N est paire on
// sépare en 2 chaînes de longueur N/2, sinon la première aura une longueur
// de N/2 et la seconde N/2+1).
// abcdefgh
// asdfghjkl
// abcd
// efgh
// asdf
// ghjkl
void split(char* str,char *str1,char *str2){
int len=strlen(str);
int len1=len/2;
int len2=len-len1;
for(int i=0;i<len1;i++){
str1[i]=str[i];
}
str1[len1]='\0';
for(int i=0;i<len2;i++){
str2[i]=str[i+len1];
}
str2[len2]='\0';
}
int main(){
char str1[2][80];
char str2[2][80];
for(int i=0;i<2;i++){
char str[81];
scanf("%s",str);
split(str,str1[i],str2[i]);
}
printf("\n");
for(int i=0;i<2;i++){
printf("%s\n%s\n",str1[i],str2[i]);
}
return EXIT_SUCCESS;
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment