Votre avis pour ce code
Résolu
sawnet007
Messages postés
3
Statut
Membre
-
sawnet007 Messages postés 3 Statut Membre -
sawnet007 Messages postés 3 Statut Membre -
Bonjour,
je veux inverser les élément d'un tableau de N cases
voilà le code (mais il ne marche pas comme je veux)
#include<stdio.h>
#include<stdlib.h>
int t[100];
int n,temp,i,j;
void main()
{
system("cls");
printf("Entrer la longueur du tableau\n(Ne dépassé pas 99 éléments)\n");
scanf("%d",&n);
for(i=0;i<=n-1;i++)
{
printf("Entrer l'élément N°%d\n",i+1);
scanf("%d",&t[i]);
}
j=n-1;
for(i=0;i<=n-1;i++)
{
temp=t[i];
t[i]=t[j];
t[j]=temp;
j--;
}
printf("Votre suite devient\n");
for(i=0;i<=n-1;i++)
{
printf("%d ",t[i]);
}
printf("\n");
system("pause");
}
je veux inverser les élément d'un tableau de N cases
voilà le code (mais il ne marche pas comme je veux)
#include<stdio.h>
#include<stdlib.h>
int t[100];
int n,temp,i,j;
void main()
{
system("cls");
printf("Entrer la longueur du tableau\n(Ne dépassé pas 99 éléments)\n");
scanf("%d",&n);
for(i=0;i<=n-1;i++)
{
printf("Entrer l'élément N°%d\n",i+1);
scanf("%d",&t[i]);
}
j=n-1;
for(i=0;i<=n-1;i++)
{
temp=t[i];
t[i]=t[j];
t[j]=temp;
j--;
}
printf("Votre suite devient\n");
for(i=0;i<=n-1;i++)
{
printf("%d ",t[i]);
}
printf("\n");
system("pause");
}
A voir également:
- Votre avis pour ce code
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
4 réponses
Je diminuerais la boucle de moitié et introduirais quelques tests et macros:
Tu pourrais éventuellemnt maintenir la variable j, Mais sur un vecteur de 100000 éléments, il n'y a pas de différence sensible dans la durée de traitement.
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
johand@osiris: ~/src/CCM/C $ cat reverse.c ;gcc -Wall -o reverse reverse.c ;gcc -Wall -DWITH_J -o reverse_withj reverse.c
#include<stdio.h>
#include<stdlib.h>
#define MAX 10000
#define min(a,b) (a) < (b) ? (a) : (b)
#define max(a,b) (a) > (b) ? (a) : (b)
int t[MAX];
int n, temp, i, j;
int main(int argc, char* argv[])
{
/*
system("cls");
*/
printf("Entrer la longueur du tableau\n(Ne dépassé pas %d éléments)\n", MAX);
scanf("%d", &n);
n = min(MAX, n);
n = max(0, n);
for(i=0; i < n; i++)
{
printf("Entrer l'élément N°%d\n", i+1);
scanf("%d", &t[i]);
}
#ifdef WITH_J
j= n-1;
for(i=0; i< n/2 ; i++, j--)
{
temp = t[i];
t[i] = t[j];
t[j] =temp;
}
#else
for(i=0; i< n/2 ; i++)
{
temp = t[i];
t[i] = t[n - 1 - i];
t[n - 1 - i] =temp;
}
#endif
printf("Votre suite devient:\n");
for(i=0; i < n; i++)
{
printf("%d ",t[i]);
}
printf("\n");
return EXIT_SUCCESS;
/*
system("pause");
*/
}
johand@osiris: ~/src/CCM/C $ echo 7 10 11 12 13 14 15 16 | ./reverse
Entrer la longueur du tableau
(Ne dépassé pas 10000 éléments)
Entrer l'élément N°1
Entrer l'élément N°2
Entrer l'élément N°3
Entrer l'élément N°4
Entrer l'élément N°5
Entrer l'élément N°6
Entrer l'élément N°7
Votre suite devient:
16 15 14 13 12 11 10
johand@osiris: ~/src/CCM/C $ wc -l data.reverse
100001 data.reverse
johand@osiris: ~/src/CCM/C $ time ./reverse < data.reverse > /dev/null
real 0m0.012s
user 0m0.008s
sys 0m0.004s
johand@osiris: ~/src/CCM/C $ time ./reverse_withj < data.reverse > /dev/null
real 0m0.012s
user 0m0.008s
sys 0m0.000s
Tu pourrais éventuellemnt maintenir la variable j, Mais sur un vecteur de 100000 éléments, il n'y a pas de différence sensible dans la durée de traitement.
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
Bonjour,
Mon avis sur le code :
Ce n'est pas void main() mais : int main(void) ou int main(int argc, char **argv) : avec un return 0; en fin.
Evite le system("cls");
Evite les variables globales.
Plutôt que : <= n-1 on met plutôt en C : < n (c'est pareil, mais c'est d'usage).
Vérifie la valeur n pour t'assurer qu'elle est bien inférieure à 100 : sinon ça bugguera.
Mon avis sur le code :
Ce n'est pas void main() mais : int main(void) ou int main(int argc, char **argv) : avec un return 0; en fin.
Evite le system("cls");
Evite les variables globales.
Plutôt que : <= n-1 on met plutôt en C : < n (c'est pareil, mais c'est d'usage).
Vérifie la valeur n pour t'assurer qu'elle est bien inférieure à 100 : sinon ça bugguera.
Salut,
Je l'aurais vu comme ça (Affichage uniquement) :
Le principe est le même dans la 3ème boucle si on veut enregistrer le résultat.
Musicalement,
DJ Fire-Bl@ck.
Je l'aurais vu comme ça (Affichage uniquement) :
Le principe est le même dans la 3ème boucle si on veut enregistrer le résultat.
#include<stdio.h>
#include<stdlib.h>
int t[100];
int n
void main()
{
system("cls");
printf("Entrez la longueur du tableau\n(Ne dépassez pas 99 éléments)\n");
scanf("%d",&n);
system("cls");
for(i=0;i<=n-1;i++)
{
printf("Entrez l'élément N°%d\n",i+1);
scanf("%d",&t[i]);
system("cls");
}
printf("Votre suite devient :\n");
for(i=n-1;i>=0;i--)
{
printf("%d ",t[i]);
}
printf("\n");
system("pause");
}
Musicalement,
DJ Fire-Bl@ck.