Se connecter / S'enregistrer
Votre question

Cicle For commence que en dérinièreposition.

Tags :
  • string
  • Programmation
Dernière réponse : dans Programmation
3 Juin 2009 21:37:43

quelqu'un saurais-t-il me dire p+ourquoi mon premier ciclefor commence en position 6 et non pas en premiere?
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4. #include <math.h>
  5.  
  6.  
  7. int main (){
  8.  
  9.  
  10.  
  11. struct motas
  12. { char marca [10];
  13. char cor [10];
  14. float cilindrada;
  15. };
  16.  
  17.  
  18.  
  19.  
  20. motas motinhas [5];
  21. float media,total;
  22. int preco, escolha, a, y, x, funcbomdia(int a);
  23. for (x=1; x<6; x++);
  24. {
  25. printf ("Introduzir a marca da %d mota",x);
  26. scanf ("%s", motinhas[x].marca);
  27. printf("Introduzir a cilindrada da %d mota",x);
  28. scanf ("%f", motinhas[x].cilindrada);
  29. media=media+motinhas[x].cilindrada;
  30. }
  31.  
  32.  
  33.  
  34. printf(" ------------------------------");
  35. printf("| Escolher o que querer fazer |\n");
  36. printf(" ------------------------------");
  37. printf("Prima a tecla 1 para introduzir a cor para a sua mota\n");
  38. printf("Prima a tecla 2 para listar as suas motas\n");
  39. printf("Prima a tecla 3 para alterar a cor a sua mota\n");
  40. printf("Prima a tecla 4 para alterar a marca a sua mota\n");
  41. printf("Prima a tecla 5 para alterar a cilindrada a sua mota\n");
  42. scanf ("%d", &escolha );
  43.  
  44.  
  45.  
  46. case1:
  47. printf ("A que mota quer introduzir a cor?");
  48. for (x=1; x<6; x++)
  49. {
  50. printf ("marca", motinhas[x].marca);
  51. scanf ("%d",&y);
  52. for (x=y; x<6; x++)
  53. {
  54. scanf ("%s", motinhas[x].cor);
  55. }
  56. break;
  57. case2:
  58. printf ("Aqui voce vai ver a lista das suas motas");
  59. for (x=1; x<6; x++);
  60. {
  61. printf ("marca", motinhas[x].marca);
  62. printf ("cilindrada", motinhas[x].cilindrada);
  63. printf ("cor", motinhas[x].cor);
  64. break;
  65. case3:
  66. printf ("Indicar a cor que pretende alterar");
  67. for (x=1; x<6; x++);
  68. printf ("Marca", motinhas[x].marca);
  69. printf ("Cor", motinhas[x].cor);
  70. scanf ("%d", &y);
  71. for (x=y; x<6; x++);
  72. {
  73. scanf ("%s", motinhas[x].cor);
  74. }
  75. break;
  76. return 0;
  77. }
  78. int funcquadrada (int soma);
  79. { int d,e,f, media;
  80. printf ("Inserir 3 numeros");
  81. scanf ("%d, %d,%d", &d, &e, &f);
  82. media =(d+e+f)/3;
  83. return media;
  84. }}}

Autres pages sur : cicle for commence deriniereposition

a b L Programmation
4 Juin 2009 19:31:21

  1. motas motinhas [5];
  2. for (x=1; x<6; x++);
  3. {
  4. scanf ("%s", motinhas[x].marca);
  5. }

Buffer overflow !
Les index de tableau commencent à 0
motinhas[5] déclare un tableau de 5 éléments:
- montinhas[0]
- montinhas[1]
- montinhas[2]
- montinhas[3]
- montinhas[4]

montinhas[5] n'existe pas (ça sort de la mémoire du tableau), tu vas écrire dans une autre variable (media, total...)

=> for (x=0; x<5; x++); partout ! :) 

m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS