Résultat incorrect
programmation
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
cet algorithme ne me donne pas un résultat correct tous les valeurs sont 0
cet algorithme ne me donne pas un résultat correct tous les valeurs sont 0
#include<stdio.h>
#include <stdlib.h>
# include <math.h>
#include <malloc.h>
void tab (int *tab2, int nb)
{
int i;
for (i = 1; i <= nb; i++)
{printf ("entrer les elements ", tab2[i]);
scanf ("%d", &tab2[i]);
}
}
int main( )
{int n,nb,i,j,B[n],x[n],t[n],v[n];
/*int** h;*/
int m[100]={2,5,4,3,9,8};
printf("enter le nombre des elements \n ",nb);
scanf("%d",&nb);
tab(B,nb);
printf("enter le nombre des elements \n ",n);
scanf("%d",&n);
tab(x,n);
/*h=(int **)malloc(n*sizeof(int*));*/
/* *(h+i)=(int*)malloc(n*sizeof(int));*/
for (i=1;i<=n;i++)
{t[i]=x[i];
printf("%d\n",t[i]);
}
v[1]=t[1];
printf("la pemiére sorite est %d \n",v[1]);
for (i=2;i<=n;i++)
{
for(j=i;j<=n;j++)
for(int k=1;k<=6;k++)
{t[j]=((t[j]-t[i-1])*m[k])%B[j];
}
printf("la sortie est %d \n",t[i]);
}
}
A voir également:
- Résultat incorrect
- Resultat foot - Télécharger - Vie quotidienne
- Lexer resultat - Télécharger - Sport
- Résultat loto bulgarie autriche azerbaïdjan - Forum Loisirs / Divertissements
- Colorspace incorrect ✓ - Forum PDF
- 5/90 resultat ✓ - Forum Excel
2 réponses
Bonjour.
Pourrais-tu :
1- Mettre un peu d'ordre dans ton programme, sauter des lignes, aérer et l'entrer avec les balises code c et /code.
2- Nous expliquer, eventuellement, ce qu'il est censé faire (à travers des commentaires, ou pas).
Merci.
EDIT : Je me suis permis de mettre un minimum d'ordre pour ceux qui voudraient également aider :
<\EchoIsON>
Pourrais-tu :
1- Mettre un peu d'ordre dans ton programme, sauter des lignes, aérer et l'entrer avec les balises code c et /code.
2- Nous expliquer, eventuellement, ce qu'il est censé faire (à travers des commentaires, ou pas).
Merci.
EDIT : Je me suis permis de mettre un minimum d'ordre pour ceux qui voudraient également aider :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <malloc.h>
void tab (int *tab2, int nb)
{
int i;
for (i = 1; i <= nb; i++)
{
printf ("Entrez les elements", tab2[i]);
scanf ("%d", &tab2[i]);
}
}
int main()
{
int n, nb, i, j, B[n], x[n], t[n], v[n];
/*int** h;*/
int m[100]= {2, 5, 4, 3, 9, 8};
printf("Entrez le nombre des elements\n ", nb);
scanf("%d", &nb);
tab(B, nb);
printf("Entrez le nombre des elements\n ", n);
scanf("%d", &n);
tab(x, n);
/*h=(int **)malloc(n*sizeof(int*));*/
/* *(h+i)=(int*)malloc(n*sizeof(int));*/
for (i = 1; i <= n; i++)
{
t[i] = x[i];
printf("%d\n", t[i]);
}
v[1] = t[1];
printf("La premiere sortie est %d\n", v[1]);
for (i = 2; i <= n; i++)
{
for(j = i; j <= n; j++)
for(int k = 1; k <= 6; k++)
{
t[j] = ((t[j]-t[i-1])*m[k])%B[j];
}
printf("la sortie est %d\n", t[i]);
}
}
<\EchoIsON>
Bonjour,
Si tu penses que cette ligne va déclarer le tableau B[n] comme tu le désires, eh bien, c'est pas du gâteau!
Comment veux-tu que B[n] soit correct alors qu'aucune valeur n'a été attribuée à n. Dans un cas de non-initialisation, la valeur de n est quelconque; ainsi la taille de ton tableau est elle aussi quelconque. Il arrivera, dans certains cas, que ton programme plante.
D'autre part, le tableau B doit plutôt avoir la taille de nb.
Pour explorer un tableau de taille n, en C l'indice doit aller de 0 à n-1.
tab2[i] ne sera jamais affiché, il faut plutôt écrire:
printf("Entrez l'element n° %d : \n ", nb);.
Sans doute d'autres erreurs...
Bon courage.
int n, nb, i, j, B[n], x[n], t[n], v[n];
Si tu penses que cette ligne va déclarer le tableau B[n] comme tu le désires, eh bien, c'est pas du gâteau!
Comment veux-tu que B[n] soit correct alors qu'aucune valeur n'a été attribuée à n. Dans un cas de non-initialisation, la valeur de n est quelconque; ainsi la taille de ton tableau est elle aussi quelconque. Il arrivera, dans certains cas, que ton programme plante.
D'autre part, le tableau B doit plutôt avoir la taille de nb.
for (i = 1; i <= n; i++)
Pour explorer un tableau de taille n, en C l'indice doit aller de 0 à n-1.
printf ("Entrez les elements", tab2[i]);
tab2[i] ne sera jamais affiché, il faut plutôt écrire:
printf("Entrez l'element n° %d : \n ", nb);.
Sans doute d'autres erreurs...
Bon courage.
Bonsoir.
Pour explorer un tableau de taille n, en C l'indice doit aller de 0 à n-1.
Ou alors le compteur doit être strictement inférieur à n.
Sinon oui, le programme plante dés le début.
devrais être :
tout simplement non ?
Ou alors ajouter un "%d" pour afficher n, même s'il ne vaut rien à ce point du programme.
Pour l'auteur du sujet, qu'essaies-tu de faire exactement ?
Pour explorer un tableau de taille n, en C l'indice doit aller de 0 à n-1.
Ou alors le compteur doit être strictement inférieur à n.
Sinon oui, le programme plante dés le début.
printf("Entrez le nombre des elements\n ", n);
devrais être :
printf("Entrez le nombre des elements\n ");
tout simplement non ?
Ou alors ajouter un "%d" pour afficher n, même s'il ne vaut rien à ce point du programme.
Pour l'auteur du sujet, qu'essaies-tu de faire exactement ?
Bonjour,
mais mon problème n'est pas dans l'affichage d'un tableau , même que je fais votre méthode le programme m'a donne toujours le même résultat qui est 0
#include<stdio.h>
#include <stdlib.h>
# include <math.h>
#include <malloc.h>
void tab (int *tab2, int nb)/*procedure pour saisir un tableau */
{
int i;
for (i = 1; i <= nb; i++)
{printf ("entrer l'element numero \n ", tab2[i]);
scanf ("%d", &tab2[i]);
}
}
int main( )
{int n,nb,i,j,B[4],x[4],t[4],v[4];
int m[10]={2,5,4,3,9,8};
printf("entrer le nombre des elements \n ");
scanf("%d",&nb);
tab(B,nb);/*saisir un premier tableau*/
printf("entrer le nombre des elements \n ");
scanf("%d",&n);/*saisiir un deuxième tableau*/
tab(x,n);
for (i=1;i<=n;i++)
{
t[i]=x[i];
printf("%d\n",t[i]);/* on met les valeurs du deuxième tableau dans t[i]*/
}
v[1]=t[1];
printf("la premiere sorite est %d \n",v[1]);/*la première sortie égal à t[1]*/
for (i=2;i<=n;i++)
{
for(j=i;j<=n;j++)
{
for(int k=1;k<=6;k++)
{
t[j]=((t[j]-t[i-1])*m[k])%B[j];
}
}
printf("la sortie est %d \n",t[i]);/* afficher t2,t3 et t4 */
}
}
mais mon problème n'est pas dans l'affichage d'un tableau , même que je fais votre méthode le programme m'a donne toujours le même résultat qui est 0
#include<stdio.h>
#include <stdlib.h>
# include <math.h>
#include <malloc.h>
void tab (int *tab2, int nb)/*procedure pour saisir un tableau */
{
int i;
for (i = 1; i <= nb; i++)
{printf ("entrer l'element numero \n ", tab2[i]);
scanf ("%d", &tab2[i]);
}
}
int main( )
{int n,nb,i,j,B[4],x[4],t[4],v[4];
int m[10]={2,5,4,3,9,8};
printf("entrer le nombre des elements \n ");
scanf("%d",&nb);
tab(B,nb);/*saisir un premier tableau*/
printf("entrer le nombre des elements \n ");
scanf("%d",&n);/*saisiir un deuxième tableau*/
tab(x,n);
for (i=1;i<=n;i++)
{
t[i]=x[i];
printf("%d\n",t[i]);/* on met les valeurs du deuxième tableau dans t[i]*/
}
v[1]=t[1];
printf("la premiere sorite est %d \n",v[1]);/*la première sortie égal à t[1]*/
for (i=2;i<=n;i++)
{
for(j=i;j<=n;j++)
{
for(int k=1;k<=6;k++)
{
t[j]=((t[j]-t[i-1])*m[k])%B[j];
}
}
printf("la sortie est %d \n",t[i]);/* afficher t2,t3 et t4 */
}
}
Il y a toujours un problème au niveau de la syntaxe :
Tu veux afficher chaque élément de t ? Alors fait une boucle for avec i variant de du premier au dernier terme, parce-que tu ne peux pas écrire ça comme cela, et même si tu pouvais tu aurais l'affichage d'un seul terme, non de plusieurs
Pareil, tu dois ajouter %d, sinon tab2 ne sera pas affiché
A mon avis tu devrais plutot écrire quelque chose comme : Entrez l'element numero 1 etc. puis l'utilisateur entre les valeurs, parce-que tu ne peux pas demander d'entrer l'element numero tab2[i]...
printf("la sortie est %d \n",t[i]);
Tu veux afficher chaque élément de t ? Alors fait une boucle for avec i variant de du premier au dernier terme, parce-que tu ne peux pas écrire ça comme cela, et même si tu pouvais tu aurais l'affichage d'un seul terme, non de plusieurs
printf ("entrer l'element numero \n ", tab2[i]);
Pareil, tu dois ajouter %d, sinon tab2 ne sera pas affiché
A mon avis tu devrais plutot écrire quelque chose comme : Entrez l'element numero 1 etc. puis l'utilisateur entre les valeurs, parce-que tu ne peux pas demander d'entrer l'element numero tab2[i]...