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

rendu

parent 6ea1a971
Branches
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(){
typedef struct {
float r;
float d;
} dual;
int size=3;
int arr[size];
for(int i=0;i<size;i++){
scanf("%d",&arr[i]);
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++) {
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;
}
\ No newline at end of file
......@@ -2,16 +2,37 @@
#include <stdlib.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;
int arr[size];
for(int i=0;i<size;i++){
scanf("%d",&arr[i]);
for(int i=0;i<len2;i++){
str2[i]=str[i+len1];
}
for(int i=0;i<size;i++){
printf("%d\n",arr[i]);
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>
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() {
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++) {
scanf("%d",&arr[i]);
scanf("%s %f", dummy, &list[i]);
}
sort(list, size);
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;
}
\ No newline at end of file
......@@ -2,15 +2,35 @@
#include <stdlib.h>
#include <string.h>
int main(){
typedef struct _stalag {
int n; // longueur
int *body;
} stalag;
int size=3;
int arr[size];
for(int i=0;i<size;i++){
scanf("%d",&arr[i]);
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++) {
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;
......
......@@ -2,16 +2,32 @@
#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]);
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=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