Langage C exos.2
Langage C exos.2
Bonjour,voici encore quelques exercices que j'ai tenté de faire.
Et j'aurai voulu connaitre votre avis si possible ,merci.
1)Ecrire un programme qui saisit un entier et un indice et met cet entier dans le tableau à cet indice.
Il faudra vérifier que l’indice correspond bien à une case du tableau (par exemple 0 ou 3 sont corrects,
-1 ou 123 ne sont pas des indices corrects pour ce tableau). Le programme affichera le contenu
du tableau avant et après cette transformation
#include<stdio.h>
main
{
int tab[A],i;N
printf("Entrez le nombre a insérer: ");
scanf("%d",&N)}
printf("Entrez l’indice: ");
scanf("%d",&i);
if ((indice >= 0) && (indice < A))
{
printf("tableau avant insertion : ");
}
for (int i = 0;i<A; i++);
{
printf("tab");
scanf("%d",&tab)}
}
tab = N;
printf("tableau après insertion : ");
for (int i = 0; i<A; i++){
{
printf(tab);
}
else
{
printf("indice non valide");
return 0;
}
J'ai écris tab[A] parce que les dimensions du tableau ne sont pas données.
2)Ecrire un programme en langage C qui lit les dimensions L et C d'un tableau T à deux dimensions du type int (dimensions maximales: 50 lignes et 50 colonnes). Remplir le tableau par des valeurs entrées au clavier et afficher le tableau ainsi que la somme de tous ses éléments.:
#include <stdio.h>
main()
{
int T[50][50];
int L, C;
int I, J;
long SOM;
printf("Nombre e lignes (max.50) : ");
scanf("%d", &L ); printf("Nombre de colonnes (max.50) : ");
scanf("%d", &C );
for (I=0; I<L; I++)
for (J=0; J<C; J++)
{
printf("Elément[%d][%d] : ",I,J);
scanf("%d", &T[J]);
}
printf("Tableau donné :\n");
for (I=0; I<L; I++)
{
for (J=0; J<C; J++)
printf("%7d", T[J]);
printf("\n");
}
for (SOM=0, I=0; I<L; I++)
for (J=0; J<C; J++)
SOM += T[J];
printf("Somme des éléments : %ld\n", SOM);
return 0;
}
3)Ecrire un programme en langage C qui détermine la plus grande et la plus petite valeur dans un tableau d'entiers A. Afficher ensuite la valeur et la position du maximum et du minimum. Si le tableau contient plusieurs maxima ou minima, le programme retiendra la position du premier maximum ou minimum rencontré.
#include <stdio.h>
main()
{
/* Déclarations */
int A[50]; /* tableau donné */
int N; /* dimension */
int I; /* indice courant */
int MIN; /* position du minimum */
int MAX; /* position du maximum */
/* Saisie des données */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Elément %d : ", I);
scanf("%d", &A);
}
/* Affichage du tableau */
return 0;
}
Et j'aurai voulu connaitre votre avis si possible ,merci.
1)Ecrire un programme qui saisit un entier et un indice et met cet entier dans le tableau à cet indice.
Il faudra vérifier que l’indice correspond bien à une case du tableau (par exemple 0 ou 3 sont corrects,
-1 ou 123 ne sont pas des indices corrects pour ce tableau). Le programme affichera le contenu
du tableau avant et après cette transformation
#include<stdio.h>
main
{
int tab[A],i;N
printf("Entrez le nombre a insérer: ");
scanf("%d",&N)}
printf("Entrez l’indice: ");
scanf("%d",&i);
if ((indice >= 0) && (indice < A))
{
printf("tableau avant insertion : ");
}
for (int i = 0;i<A; i++);
{
printf("tab");
scanf("%d",&tab)}
}
tab = N;
printf("tableau après insertion : ");
for (int i = 0; i<A; i++){
{
printf(tab);
}
else
{
printf("indice non valide");
return 0;
}
J'ai écris tab[A] parce que les dimensions du tableau ne sont pas données.
2)Ecrire un programme en langage C qui lit les dimensions L et C d'un tableau T à deux dimensions du type int (dimensions maximales: 50 lignes et 50 colonnes). Remplir le tableau par des valeurs entrées au clavier et afficher le tableau ainsi que la somme de tous ses éléments.:
#include <stdio.h>
main()
{
int T[50][50];
int L, C;
int I, J;
long SOM;
printf("Nombre e lignes (max.50) : ");
scanf("%d", &L ); printf("Nombre de colonnes (max.50) : ");
scanf("%d", &C );
for (I=0; I<L; I++)
for (J=0; J<C; J++)
{
printf("Elément[%d][%d] : ",I,J);
scanf("%d", &T[J]);
}
printf("Tableau donné :\n");
for (I=0; I<L; I++)
{
for (J=0; J<C; J++)
printf("%7d", T[J]);
printf("\n");
}
for (SOM=0, I=0; I<L; I++)
for (J=0; J<C; J++)
SOM += T[J];
printf("Somme des éléments : %ld\n", SOM);
return 0;
}
3)Ecrire un programme en langage C qui détermine la plus grande et la plus petite valeur dans un tableau d'entiers A. Afficher ensuite la valeur et la position du maximum et du minimum. Si le tableau contient plusieurs maxima ou minima, le programme retiendra la position du premier maximum ou minimum rencontré.
#include <stdio.h>
main()
{
/* Déclarations */
int A[50]; /* tableau donné */
int N; /* dimension */
int I; /* indice courant */
int MIN; /* position du minimum */
int MAX; /* position du maximum */
/* Saisie des données */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Elément %d : ", I);
scanf("%d", &A);
}
/* Affichage du tableau */
return 0;
}
Re: Langage C exos.2
Le dernier est une blague?? Ton code est tellement loin d'un truc ayant un sens...
Allez une petite question :
"return 0;" sais tu exactement pourquoi tu écris ca??
Probablement pas car tu écris "main()".
Allez une petite question :
"return 0;" sais tu exactement pourquoi tu écris ca??
Probablement pas car tu écris "main()".
Oui mais c'est moche car ton code ne compile même pas.J'ai écris tab[A] parce que les dimensions du tableau ne sont pas données.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Langage C exos.2
Bon je me permets de remettre ici le code initial en plus propre, parce que dans le message initial, ça pique les yeux.
Je ne mets que le premier, avec en commentaires ce qui ne va pas.
Là je n'ai fait que le travail du vérificateur syntaxique d'un compilateur. Si tu veux de l'aide sur un programme, la première chose à faire est de vérifier qu'il compile (si ce n'est pas le cas et tu ne sais pas pourquoi, tu peux demander, en donnant le message d'erreur du compilateur), puis s'il fait ce qu'on souhaite (et si ce n'est pas le cas, demander, en expliquant ce qui ne marche pas en particulier).
Je ne mets que le premier, avec en commentaires ce qui ne va pas.
Code : Tout sélectionner
#include<stdio.h>
main // int main(void) plutôt ?
{
int tab[A],i;N // c'est quoi ce N ? pourquoi il n'a pas de type et pourquoi il n'y a pas de ";" après ?
printf("Entrez le nombre a insérer: ");
scanf("%d",&N)} // je suppose que "}" est censé être un ";" ?
printf("Entrez l’indice: ");
scanf("%d",&i);
if ((indice >= 0) && (indice < A)) // indice n'a été défini nul-part. Tu veux dire "i" ?
{
printf("tableau avant insertion : ");
}
for (int i = 0;i<A; i++); // définir "int i = 0" c'est valable en C++, pas en C, et puis tu as déjà une variable qui s'appelle "i".
{
printf("tab[i]");
scanf("%d",&tab[i])} // "}" = ";" ?
}
tab[i] = N;
printf("tableau après insertion : ");
for (int i = 0; i<A; i++){ // voir commentaire boucle précédente
{
printf(tab[i]); // non, tu ne peux pas utiliser printf avec autre chose qu'une chaine en premier paramètre, utilise printf("%d",tab[i]).
}
else
{
printf("indice non valide");
// donc là on est en plein milieu d'un "else", et on atteint la fin de la fonction...
return 0;
}
MPSI (Carnot, Dijon) -> MP* (idem) -> ENS (Info, Ker Lann) -> Doctorat (ENS Rennes, IRISA Rennes) -> Post-doctorat (Argonne National Lab, IL, USA)
http://people.irisa.fr/Matthieu.Dorier
http://people.irisa.fr/Matthieu.Dorier
Re: Langage C exos.2
Merci,mais peut-on compiler du C sans linux?
Re: Langage C exos.2
wtf?Linux c'est un OS. Il te faut juste un compilateur C.
Visual machin de microsoft est gratuit (pas la dernière version mais toujours l'avant dernière je crois). C'est même plus qu'un compilateur. C'est tout un environnement de devel.
Visual machin de microsoft est gratuit (pas la dernière version mais toujours l'avant dernière je crois). C'est même plus qu'un compilateur. C'est tout un environnement de devel.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Langage C exos.2
Ou CodeBlock, ou CygWin (si tu veux un environnement qui ressemble à Linux sous Windows), ou alors tu télécharges VirtualBox et tu installes un linux dans une machine virtuelle...
MPSI (Carnot, Dijon) -> MP* (idem) -> ENS (Info, Ker Lann) -> Doctorat (ENS Rennes, IRISA Rennes) -> Post-doctorat (Argonne National Lab, IL, USA)
http://people.irisa.fr/Matthieu.Dorier
http://people.irisa.fr/Matthieu.Dorier