Pb de déclarations ?

[Résolu]
Signaler
Messages postés
15
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
27 mars 2006
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
bonjour à tous, j'espère que vous pourrez m'aider.
J'ai souvent des problèmes de calculs de nombre, voici un extrait de mon programme.

int x, y;
char var[5];
var[1] = 36;
x = x + 2 ;
y = y - 2 ;
var[2] = var[1] + 99998*log10(3);
printf("%i\n", var[2]);
system("PAUSE");

Hélas j'obtiens -58 à la place du bon résultat :(...

Merci de votre aide.

9 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
bé déjà ya beaucoup de bidule à changer lol

char var[5]; <= Tableau de caractères.
var[1] = 36; Pourquoi tu stocks un nombre donc ???

et pourquoi tu commences pas par 0 ? car les tableaux commencent à 0.

x = x + 2;
x n'as pas de valeur d'initialisation, et tu lui ajoutes 2... Il risques pas trop de comprendre
De même pour y = y-2
Bon et pour le reste, bah ça implique la discution d'au dessus.

Ainsi :::

int var[5];
var[0] = 36;
C'est déjà ça, après le reste, je sais pas ce que tu veux faire, mais bon...
Corrige déjà ça


void Aurevoir( void ); //Bonne journée
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
à bon ???
On peut faire char a = 12 ???
Ben j'apprend lol


void Aurevoir( void ); //Bonne journée
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
Bien sur, un caractère veut juste dire en fait "1 octet"

Et qu'est ce que tu diras quand tu verras DWORD d = 'Joky';
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Hum Hummmm, c'est étrange tous ces types lol. Desfois je les utilise sans même savoir à quoi il serve.
Par exemple DWORD, on en parle pas trop dans msdn de ce truc
après il y a les LPSTR qui sont des long pointeur sur des chaines de caractère je suppose, mais quand faut-il les utilisés ??? Bref, si quelqu'un aurait un tableau, avec tous les types possible ca serait cool

Et DWORD d = 'Joky' n'a rien d'étonnant, je pense même qu'il devrait avoir cette variable dans tous les programmes :).
A bon entendeur :) Salut;)


void Aurevoir( void ); //Bonne journée
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
DWORD = unsigned int, c'est 4 octets en gros.

Tu dois trouver le genre de tableau que tu cherches dans Petzold j'imagine...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
Je ne le retrouve pas, je pensais pourtant l'avoir vu quelque part

Dans windef.h tu en as déja pas mal, tu peux regarder. De toutes facons
à force de les utiliser, tu finira par t'habituer, leurs noms sont
assez explicites: cuex qui commencent par LP sont des pointeur, et LPC
des pointeurs constants.

Il n'y en a aucune que tu est obligé d'utiliser (puisque ce sont des
simples typedef), mais certaines sont très utiles car permettent de
marcher aussi bien en ANSI qu'en unicode: LPCTSTR veut dire const char*
en ANSI et const wchar_t* en UNICODE.
Messages postés
15
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
27 mars 2006

Déja merci d'avoir répondu.
Petite explication, tous les trucs que tu m'as dit à initialiser plus de commencer le tableau à var[0], c'est fait quand même, j'ai juste poster ce que me paraissait utile pour que vous compreniez.

"char var[5]; <= Tableau de caractères.
var[1] = 36; Pourquoi tu stocks un nombre donc ???"
Hum je viens d'apprendre un truc de très important apparement ( étant quand même débutant en C/C++).
Alors là j'aimerais bien savoir comment mettre des nombres de la taille suffisante dans un tableau ?
Je pense pas que int var[10000] ca existe. bon assez parler je vais essayer de faire marcher tout çà.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
tu peux évidemment faire un tableau de int aussi, donc int var[10000] marche bien
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
var[2] est un char, et peut donc prendre des valeurs en -128 et 127, la
valeur que tu obtiens n'est donc pas bonne, car supérieure à 127.