Probleme d'execution en c
Résolu
xko
Messages postés
55
Date d'inscription
Statut
Membre
Dernière intervention
-
cptpingu Messages postés 3840 Date d'inscription Statut Modérateur Dernière intervention -
cptpingu Messages postés 3840 Date d'inscription Statut Modérateur Dernière intervention -
salut j'ai un pgm en c mais il n'execute pas et je ne sais pas prq svp aidez-moi et mercii
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ int i,j,x,s,n;
int t[n];
puts("donner la taille du tableau ");
scanf("%d",&n);
puts("remplir le tableau svp\n");
for(i=1;i<=n;i++){
scanf("%d",&t[i]);}
puts("notre tableau est maintenant trie\n");
for(i=1;i<=n;i++){
for(j=i+1;j<=n;j++){
if(t[i]>t[j]){
x=t[i];
t[i]=t[j];
t[j]=x;}} }
for(i=1;i<=n;i++){
printf("%d\n",t[i]);}
puts("entrer un indice\n ");
scanf("%d",&s);
for (i=1;i<=n;i++){
if(i==s){
for(i=s;i<n;i++){
t[i]=t[i+1];
n=n-1;
} }}
puts("le tableau apres la suppression\n");
for(i=1;i<=n;i++){
printf("%d\n",t[i]);}
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ int i,j,x,s,n;
int t[n];
puts("donner la taille du tableau ");
scanf("%d",&n);
puts("remplir le tableau svp\n");
for(i=1;i<=n;i++){
scanf("%d",&t[i]);}
puts("notre tableau est maintenant trie\n");
for(i=1;i<=n;i++){
for(j=i+1;j<=n;j++){
if(t[i]>t[j]){
x=t[i];
t[i]=t[j];
t[j]=x;}} }
for(i=1;i<=n;i++){
printf("%d\n",t[i]);}
puts("entrer un indice\n ");
scanf("%d",&s);
for (i=1;i<=n;i++){
if(i==s){
for(i=s;i<n;i++){
t[i]=t[i+1];
n=n-1;
} }}
puts("le tableau apres la suppression\n");
for(i=1;i<=n;i++){
printf("%d\n",t[i]);}
system("pause");
return 0;
}
A voir également:
- Probleme d'execution en c
- Le service spouleur d'impression local n'est pas en cours d'exécution - Guide
- Processus d'execution client serveur - Forum Windows 10
- Net user des erreurs ont affecté l'exécution de la commande - Forum Windows
- Il permet l’exécution des logiciels applicatifs et gère l’utilisation des ressources matérielles (mémoire, processeur, périphériques). ✓ - Forum Windows 10
- Au démarrage de l’ordinateur, le d' se lance. il permet l’exécution des logiciels applicatifs et gère l’utilisation des ressources matérielles (mémoire, processeur, périphériques). - Forum Alimentation PC
3 réponses
Ah ouais, en fait il cross post ça partout...
https://codes-sources.commentcamarche.net/forum/affich-10062064-les-tableaux-en-c
C'est bel et bien "&t[i]" qu'il faudrait utiliser (les deux fonctionnent, cela dit), ou alors "t + i" (oui, oui, "t + i" fonctionne, car scanf demande un pointeur).
À noter aussi que la solution proposée par Henry_Merdocul ne fonctionne qu'en C99 et supérieur, et a certaines limitations, cf: https://stackoverflow.com/questions/10675399/why-cant-the-size-of-a-static-array-be-made-variable
Une bonne solution serait de "malloc" la bonne taille ou alors prévoir une taille fixe assez grande (et empêcher l'utilisateur de la dépasser). Le VLA c'est un peu cracra quand même. Je précise en passant que le C++ ne gère pas le VLA, donc si on fait du C en compilant avec un compilo C++ (comme le font la plupart des débutants qui pensent, à tort, que le C++ est un surensemble du C), ça va apporter son lot de surprises :p.
https://codes-sources.commentcamarche.net/forum/affich-10062064-les-tableaux-en-c
Ici c'est t[i] et non &t[i]
C'est bel et bien "&t[i]" qu'il faudrait utiliser (les deux fonctionnent, cela dit), ou alors "t + i" (oui, oui, "t + i" fonctionne, car scanf demande un pointeur).
À noter aussi que la solution proposée par Henry_Merdocul ne fonctionne qu'en C99 et supérieur, et a certaines limitations, cf: https://stackoverflow.com/questions/10675399/why-cant-the-size-of-a-static-array-be-made-variable
Une bonne solution serait de "malloc" la bonne taille ou alors prévoir une taille fixe assez grande (et empêcher l'utilisateur de la dépasser). Le VLA c'est un peu cracra quand même. Je précise en passant que le C++ ne gère pas le VLA, donc si on fait du C en compilant avec un compilo C++ (comme le font la plupart des débutants qui pensent, à tort, que le C++ est un surensemble du C), ça va apporter son lot de surprises :p.
Tu ne déclares pas ton tableau correctement.
Quand on met une variable pour une taille de tableau, elle doit toujours avoir une valeur. De plus, la variable "n" que tu utilises n'a même pas été déclarée.
Dans ta boucle pour le remplir, tu pars de la case numérotée 1, or un tableau commence à la case numérotée 0.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ int i,j,x,s,n;
puts("donner la taille du tableau ");
scanf("%d",&n);
int t[n];//On déclare le tableau avec la valeur de "n" demandée
puts("remplir le tableau svp\n");
for(i=0;i<n;i++){
scanf("%d",&t[i]);}
puts("notre tableau est maintenant rempli\n");
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(t[i]>t[j]){
x=t[i];
t[i]=t[j];
t[j]=x;}} }
for(i=0;i<n;i++){
printf("%d\n",t[i]);}
puts("entrer un indice : ");
scanf("%d",&s);
puts("\n");
for (i=0;i<n;i++){
if(i==s){
for(i=s;i<n;i++){
t[i]=t[i+1];
n=n-1;
} }}
puts("le tableau apres la suppression\n");
for(i=0;i<n;i++){
printf("%d\n",t[i]);}
system("pause");
return 0;
}
Réessaye comme ça;
Quand on met une variable pour une taille de tableau, elle doit toujours avoir une valeur. De plus, la variable "n" que tu utilises n'a même pas été déclarée.
Dans ta boucle pour le remplir, tu pars de la case numérotée 1, or un tableau commence à la case numérotée 0.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{ int i,j,x,s,n;
puts("donner la taille du tableau ");
scanf("%d",&n);
int t[n];//On déclare le tableau avec la valeur de "n" demandée
puts("remplir le tableau svp\n");
for(i=0;i<n;i++){
scanf("%d",&t[i]);}
puts("notre tableau est maintenant rempli\n");
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(t[i]>t[j]){
x=t[i];
t[i]=t[j];
t[j]=x;}} }
for(i=0;i<n;i++){
printf("%d\n",t[i]);}
puts("entrer un indice : ");
scanf("%d",&s);
puts("\n");
for (i=0;i<n;i++){
if(i==s){
for(i=s;i<n;i++){
t[i]=t[i+1];
n=n-1;
} }}
puts("le tableau apres la suppression\n");
for(i=0;i<n;i++){
printf("%d\n",t[i]);}
system("pause");
return 0;
}
Réessaye comme ça;