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 @@
#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;
typedef struct {
float r;
float d;
} dual;
dual dual_init(float r, float d) {
dual new;
new.r = r;
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++) {
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;
}
\ No newline at end of file
......@@ -2,16 +2,37 @@
#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]);
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];
}
for(int i=0;i<size;i++){
printf("%d\n",arr[i]);
str1[len1]='\0';
for(int i=0;i<len2;i++){
str2[i]=str[i+len1];
}
str2[len2]='\0';
}
//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;
}
\ No newline at end of file
......@@ -2,16 +2,46 @@
#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]);
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]);
}
}
for(int i=0;i<size;i++){
printf("%d\n",arr[i]);
}
}
int main() {
float money;
float bill = 0;
int size = 10;
float list[size];
char dummy[80];
scanf("%f", &money);
for (int i = 0; i < size; i++) {
scanf("%s %f", dummy, &list[i]);
}
sort(list, size);
for (int i = 0; i < size; 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,16 +2,36 @@
#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]);
typedef struct _stalag {
int n; // longueur
int *body;
} stalag;
void stalag_init(int crt, stalag *s) {
if (crt < s->n) {
if (s->n < 3) {
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++) {
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;
}
\ No newline at end of file
return EXIT_SUCCESS;
}
......@@ -2,16 +2,32 @@
#include <stdlib.h>
#include <string.h>
int count_longest_down(int size, float arr[size]){
int max=0;
int current=0;
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=3;
int arr[size];
for(int i=0;i<size;i++){
scanf("%d",&arr[i]);
}
int size=15;
float arr[size];
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;
}
\ 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