Bon ... il y a beaucoup de problèmes ici, mais je vais passer en revue ce que vous avez posté dans les commentaires point par point.
#include <stdio.h>
int main() {
/*Declare the active agents */
int num1=0, num2=0, num3=0, num4=0, op = 1 || 2 ;
INITIALISATION vos variables à zéro ici, à l'exception op, que vous définissez à 1 (1 || 2, qui est le booléen ou, retourne 1 (vrai), pour un résultat que vous définissez op à 1).
num3 = (num1 + num2);
num4 = (num1 * num2);
Ici vous définissez num3 et num4 les deux à zéro, puisque num1 + est num2 0 + 0 et num1 * num2 est 0 * 0. Vous voulez déplacer ce bas après vos années scanf.
/* Information Extraction Method */
printf("YO MOFO!!!Press a number or hit the dirt!!\n");
scanf("%d", &num1);
printf("Since you didn't hit the dirt, how about another number?\n");
scanf("%d", &num2);
/* Menu (AKA Input */
printf("If you want to add, press 1 ,\nIf you want to multiply, press 2 ... \n\n ");
scanf ("%d", &op);
Ces printf et scanf sont bons. Bon travail.
/* PROCESS */
if (op = 1) {num3;};
if (op = 2) {num4;};
Trois choses ici. Premièrement, op = 1 attribue 1 à op. Idem avec op = 2. Vous voulez op == 1 et op == 2 comme vous l'avez ci-dessous. Le résultat de ceci sera que op sera toujours 2 après ces instructions if.
La deuxième chose est que, alors qu'une instruction valide, num3; en soi ne fera rien.Enfin, bien que cela ne nuise à rien, vous n'avez pas besoin de points-virgules après la fermeture de vos accolades.
/* OutPut */
if (op == 1) {
printf("Alone, a toothpick is weak, but as part of a sum, your answer is:\n%d"), &num3;
};
if (op == 2) {
printf("Multiplied as a sum of it's parts, your answer is:\n%d"), &num4;
};
Ici, vous imprimez l'adresse de num3 et num4 au lieu de leurs valeurs. C'est en partie la raison pour laquelle vous voyez de grands nombres qui n'ont pas de sens, c'est l'adresse de num3 et num4 en mémoire. Seul scanf a besoin de l'esperluette (&), contrairement à printf. En outre, dans sa forme actuelle, la valeur réelle de ces éléments sera toujours égale à 0 puisque vos calculs sont effectués avant que vous obteniez les chiffres de l'utilisateur.
EDIT: En fait, il s'avère que la raison pour laquelle vous n'obtenez pas les bons chiffres ici est que vous ne transmettez pas le numéro à printf. Vous avez num3 et num4 en dehors des parenthèses. Il ne devrait toujours pas y avoir d'esperluette avant le nom de la variable, mais cela devrait ressembler à ceci: printf("Multiplied... is:\n%d", num4);
Notez comment num4
se trouve entre parenthèses.
printf("\n\n\n\nMath frum da hud..... Yo. \n\n\nLOL\n >;]");
/* End Of Program */
return 0;
}
Edit: Par souci de clarté, je l'ai re-écrit de manière à ce qu'il devrait fonctionner de la façon dont vous l'intention.
#include <stdio.h>
int main() {
/*Declare the active agents */
int num1=0, num2=0, num3=0, num4=0, op = 0;
/* Information Extraction Method */
printf("YO MOFO!!!Press a number or hit the dirt!!\n");
scanf("%d", &num1);
printf("Since you didn't hit the dirt, how about another number?\n");
scanf("%d", &num2);
num3 = (num1 + num2);
num4 = (num1 * num2);
/* Menu (AKA Input */
printf("If you want to add, press 1 ,\nIf you want to multiply, press 2 ... \n\n ");
scanf ("%d", &op);
/* OutPut */
if (op == 1) {
printf("Alone, a toothpick is weak, but as part of a sum, your answer is:\n%d", num3);
};
if (op == 2) {
printf("Multiplied as a sum of it's parts, your answer is:\n%d", num4);
};
printf("\n\n\n\nMath frum da hud..... Yo. \n\n\nLOL\n >;]");
/* End Of Program */
return 0;
}
HTH.
Quel est l'objectif de ce code? En outre, la dernière virgule sur la première ligne ne devrait pas être là. Cet extrait de code a-t-il même été compilé? –
Plusieurs choses ici ... Quelle est l'erreur? Cela ne compilera pas. Et vous ne semblez pas assigner de valeurs à ces variables, donc arithmétique effectuant sur les variables non initialisées va bien sûr vous donner des nombres sauvages. –
Pourriez-vous donner un contexte pour ce code? Comme la fonction dont elle fait partie et comment elle s'appelle. –