Faits:
Faits:
A. A.a En 1992, A._ a décidé d'entreprendre d'importantes transformations et rénovations dans un chalet dont elle est propriétaire à Crans (Valais). Elle a confié les travaux de ferblanterie, de couverture, d'installations sanitaires et de chauffage à B._ qui exploite une entreprise spécialisée dans ces domaines.
Pour des raisons budgétaires, A._ a voulu réaliser ces rénovations par étapes sur plusieurs années. B._ a exécuté les travaux convenus de 1992 à fin 1996, sous réserve de travaux de réfection qui se sont prolongés durant l'année 1997 et une partie de l'année 1998.
A.b Au cours de l'exécution des travaux, A._ s'est plainte de plusieurs malfaçons qui ont causé des dégâts au chalet. Elle a notamment imputé les malfaçons suivantes à B._:
- Le 3 septembre 1997, A._ a informé le prénommé que les radiateurs de deux chambres à coucher et d'une salle de bains ne fonctionnaient pas. Après dix jours de recherches avec un collaborateur, B._ a déterminé, en janvier 1998, que le dysfonctionnement provenait du fait que les tubes d'arrivée et de départ d'eau de l'ancienne installation de chauffage avaient été inversés lors de la construction du chalet. Comme A._ avait informé B._ que des locataires devaient occuper le chalet à partir du 20 janvier 1998, celui-ci a mis à disposition des radiateurs électriques. L'entrepreneur a dû casser la chape de béton de deux chambres à coucher et démonter le plafond de l'étage inférieur pour remédier au problème. Le 12 janvier 1998, l'intéressé a informé la propriétaire que l'installation de chauffage fonctionnait normalement. B._ n'a pas facturé son intervention.
- Le 29 mai 1998, B._ a annoncé à A._ que la vanne d'un radiateur était fissurée. Cela a provoqué une inondation tant dans la chambre concernée que sur le plafond et le plancher de la chambre de l'étage inférieur. Il n'a pas été établi si cette fissure avait pour origine un défaut du radiateur lui-même ou si elle était apparue au cours de l'installation de l'appareil ou postérieurement, en raison du fait d'un tiers.
B._ a payé une partie des frais de remise en état; le solde a été payé par l'assurance de A._.
A.c Au fur et à mesure de l'avancement des travaux, soit entre le 18 août 1992 et le 6 février 1997, B._ a adressé à A._ toute une série de factures pour un montant total, après rabais, arrêté à 137'429 fr. 75. Jusqu'au 29 avril 1996, A._ a versé à B._, par acomptes, un montant total de 108'000 fr.
A.d Au printemps 1997, A._ a cherché à louer son chalet à un couple, qui y a renoncé en raison du prix demandé.
Le 12 février 1998, B._ a adressé à A._ un décompte duquel ressortait un solde impayé de 29'429 fr. 75. Malgré de nombreux rappels, A._ a refusé de s'acquitter de ce montant.
Le 12 février 1998, B._ a adressé à A._ un décompte duquel ressortait un solde impayé de 29'429 fr. 75. Malgré de nombreux rappels, A._ a refusé de s'acquitter de ce montant.
B. Après lui avoir fait notifier une poursuite, frappée d'opposition, B._ a assigné le 19 février 1999 A._ en paiement de 29'429 fr. 75 avec suite d'intérêts.
Dans ses dernières conclusions, la défenderesse a émis des prétentions reconventionnelles en paiement d'un total de 173'000 fr., soit 128'000 fr. à titre de dédommagement pour la perte locative du chalet, 25'000 fr. pour la remise en état de salles de bains et 20'000 fr. d'indemnité forfaitaire pour le travail facturé à double par B._. Elle a conclu à ce que "la somme ainsi que les intérêts réclamés par (le demandeur soient) purement annulées" et a encore invoqué la compensation.
Par jugement du 24 septembre 2003, la IIe Cour civile du Tribunal cantonal valaisan a condamné la défenderesse à verser au demandeur la somme de 29'429 fr. 75 avec intérêts à 5% sur 16'000 fr. dès le 25 février 1998 et sur 13'429 fr. 75 dès le 20 mai 1998; la cour cantonale a prononcé la mainlevée définitive de l'opposition au commandement de payer notifié à la défenderesse et déclaré irrecevables les prétentions reconventionnelles formées par celle-ci.
En substance, l'autorité cantonale a retenu que la créance de l'entrepreneur pour le solde de ses travaux était établie. Si la défenderesse - pour des motifs liés aux règles de la procédure cantonale - n'était pas en droit d'émettre des prétentions reconventionnelles, elle pouvait en revanche opposer en compensation la perte de gain qu'elle prétendait avoir subie du fait des défauts de l'ouvrage; cependant, d'une part, le dommage invoqué n'était pas consécutif à un défaut imputable à une faute de l'entrepreneur; d'autre part, le maître n'avait pas établi l'existence d'un préjudice. Enfin, les magistrats valaisans ont retenu que le demandeur n'avait pas été en demeure par sa faute d'exécuter des travaux ou de remédier à des défauts.
En substance, l'autorité cantonale a retenu que la créance de l'entrepreneur pour le solde de ses travaux était établie. Si la défenderesse - pour des motifs liés aux règles de la procédure cantonale - n'était pas en droit d'émettre des prétentions reconventionnelles, elle pouvait en revanche opposer en compensation la perte de gain qu'elle prétendait avoir subie du fait des défauts de l'ouvrage; cependant, d'une part, le dommage invoqué n'était pas consécutif à un défaut imputable à une faute de l'entrepreneur; d'autre part, le maître n'avait pas établi l'existence d'un préjudice. Enfin, les magistrats valaisans ont retenu que le demandeur n'avait pas été en demeure par sa faute d'exécuter des travaux ou de remédier à des défauts.
C. Parallèlement à un recours de droit public qui a été déclaré irrecevable par arrêt de ce jour, A._ exerce un recours en réforme au Tribunal fédéral. Elle conclut au déboutement du demandeur de toutes ses conclusions.
L'intimé propose le rejet du recours.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. 1.1 Interjeté par la partie défenderesse qui a succombé dans ses conclusions libératoires et dirigé contre un jugement final rendu en dernière instance cantonale par un tribunal supérieur (art. 48 al. 1 OJ) sur une contestation civile dont la valeur litigieuse atteint le seuil de 8'000 fr. (art. 46 OJ), le recours en réforme est en principe recevable, puisqu'il a été déposé en temps utile (art. 54 al. 1 OJ) dans les formes requises (art. 55 OJ).
1.2 Le recours en réforme est ouvert pour violation du droit fédéral (art. 43 al. 1 OJ). Il ne permet en revanche pas d'invoquer la violation directe d'un droit de rang constitutionnel (art. 43 al. 1 2e phrase OJ) ou la violation du droit cantonal (<ref-ruling> consid. 2c et les arrêts cités).
Saisi d'un recours en réforme, le Tribunal fédéral doit conduire son raisonnement sur la base des faits contenus dans la décision attaquée, à moins que des dispositions fédérales en matière de preuve n'aient été violées, qu'il y ait lieu à rectification de constatations reposant sur une inadvertance manifeste (art. 63 al. 2 OJ) ou qu'il faille compléter les constatations de l'autorité cantonale parce que celle-ci n'a pas tenu compte de faits pertinents et régulièrement allégués (art. 64 OJ; <ref-ruling> ibidem). Dans la mesure où une partie recourante présente un état de fait qui s'écarte de celui contenu dans la décision attaquée, sans se prévaloir avec précision de l'une des exceptions qui viennent d'être rappelées, il n'est pas possible d'en tenir compte (<ref-ruling> consid. 2c). Il ne peut être présenté de griefs contre les constatations de fait, ni de faits ou de moyens de preuve nouveaux (art. 55 al. 1 let. c OJ). Le recours n'est pas ouvert pour se plaindre de l'appréciation des preuves et des constatations de fait qui en découlent (<ref-ruling> consid. 2b/aa p. 277; <ref-ruling> consid. 2c; <ref-ruling> consid. 2a).
Le Tribunal fédéral ne saurait aller au-delà des conclusions des parties, mais il n'est pas lié par les motifs qu'elles invoquent (art. 63 al. 1 OJ), ni par l'argumentation juridique retenue par la cour cantonale (art. 63 al. 3 OJ; <ref-ruling> consid. 2e/cc in fine).
Le Tribunal fédéral ne saurait aller au-delà des conclusions des parties, mais il n'est pas lié par les motifs qu'elles invoquent (art. 63 al. 1 OJ), ni par l'argumentation juridique retenue par la cour cantonale (art. 63 al. 3 OJ; <ref-ruling> consid. 2e/cc in fine).
2. Dans une argumentation des plus succinctes, la recourante invoque une violation par la cour cantonale de l'art. 368 CO. Elle prétend que le demandeur aurait commis une faute en branchant les radiateurs sur les conduites existantes sans vérifier qu'elles étaient conformes aux règles de l'art; l'entrepreneur aurait commis une seconde faute en ne remédiant pas dans des délais raisonnables au défaut constaté. La défenderesse reproche également à l'autorité cantonale d'avoir exclu d'emblée tout manquement du demandeur dans la fissure de la vanne d'un radiateur, alors que ce dernier n'aurait pas réussi à prouver son absence de faute. Enfin, le dommage découlant du retard prétendument pris pour éliminer le défaut de l'ouvrage représenterait au moins 40'000 fr., correspondant à quatre mois où toute location du chalet était impossible.
2.1 A teneur de l'art. 368 CO, le maître dispose en matière de garantie des défauts de l'ouvrage de trois droits formateurs: il peut exiger la résolution du contrat (al. 1), la diminution du prix (al. 2 1ère hypothèse) ou la réfection de l'ouvrage (al. 2 2ème hypothèse). L'exercice de ces droits ne suppose pas de faute de l'entrepreneur, mais l'existence d'un défaut de l'ouvrage (Tercier, Les contrats spéciaux, 3e éd., n. 4089 p. 598). De surcroît, le maître doit avoir respecté ses incombances de vérification de l'ouvrage et d'avis des défauts en temps utile (art. 367 al. 1 CO). Enfin, le défaut ne doit pas être imputable à un fait du maître (art. 369 CO) et l'ouvrage ne doit pas avoir été accepté par ce dernier (art. 370 CO).
Le droit du maître de demander des dommages-intérêts doit toujours être exercé cumulativement avec l'un des droits à la garantie susrappelés. Outre que cela ressort déjà de la formulation de la loi (emploi des conjonctions de coordination "et"), cette solution est également consacrée par la jurisprudence et la doctrine largement majoritaire (<ref-ruling> consid. 2c; Bühler, Commentaire zurichois, n. 166 ad art. 368 CO; Gauch, Le contrat d'entreprise, adaptation française par Benoît Carron, n. 1850, p. 513; Chaix, Commentaire romand, n. 4 et 56 ad art. 368 CO; Honsell, Schweizerisches Obligationenrecht, Besonderer Teil, 7e éd., p. 287; Zindel/Pulver, Commentaire bâlois, n. 68 ad art. 368 CO; contra: Kohler, Commentaire bernois, n. 187 ad art. 363 CO). On ne peut cependant déduire de cette affirmation que le maître qui se borne à requérir des dommages-intérêts - sans exercer l'un des droits formateurs prévus par la loi - est entièrement déchu de ses droits de garantie. Dans une situation de ce genre, le maître ne sera cependant habilité à réclamer que la réparation du dommage consécutif au défaut ("Mangelfolgeschaden"); autrement dit, il ne pourra obtenir par le biais de l'action en dommages-intérêts l'équivalent d'une diminution du prix de l'ouvrage ou le remboursement de frais de réfection qu'il aurait pu réclamer en application de l'art. 368 al. 2, 1ère ou 2ème hypothèse, CO (Gauch, op. cit., n. 1851 s.).
2.2 En l'espèce, la recourante se contente de faire valoir un dommage qu'elle aurait subi. Ce préjudice consisterait en une perte locative, consécutive à l'impossibilité de disposer du chalet durant une certaine période. Un tel gain manqué constitue typiquement un dommage consécutif au défaut allégué (Bühler, op. cit., n. 180 ad art. 368 CO; Chaix, op. cit., n. 59 ad art. 368 CO; Gauch, op. cit., n. 1870; Tercier, op. cit., n. 4235 p. 616). Dès lors, la recourante est en principe habilitée à réclamer la réparation de ce dommage-là.
2.2.1 La cour cantonale a retenu - de manière à lier le Tribunal fédéral (art. 63 al. 2 OJ) - que le dysfonctionnement du chauffage dont s'est plainte la recourante provenait d'une inversion des conduites d'eau froide et d'eau chaude posées lors de la construction du chalet. Toujours selon les constatations cantonales, ce type de dysfonctionnement était inhabituel et il était très difficile de l'identifier, du fait que les tuyaux concernés étaient invisibles, coulés dans une chape de béton.
Si la mauvaise qualité du matériau livré par le maître ou du terrain qu'il a désigné conduit à des défauts de l'ouvrage, ceux-ci sont imputables au maître et la responsabilité de l'entrepreneur est exclue (art. 369 in fine CO; Bühler, op. cit., n. 34-36 ad art. 369 CO; Chaix, op. cit., n. 19 ad art. 369 CO; Gauch, op. cit., n. 1979; Tercier, op. cit., n. 4111, p. 601).
Cependant, la déchéance des droits du maître n'intervient en principe pas de ce seul fait: la loi impose en effet à l'entrepreneur - partie supposée la plus expérimentée au contrat (<ref-ruling> consid. 2c/cc p. 309) - d'informer immédiatement le maître s'il rencontre des problèmes d'exécution liés à la matière livrée. En tant que spécialiste, il doit également examiner la matière ou le terrain avant de commencer l'ouvrage. II a l'incombance de communiquer au maître toutes les circonstances qu'il connaît ou celles qu'il aurait dû connaître en faisant preuve de la diligence qu'on peut attendre de tout entrepreneur capable (ATF 26 II 660; Baurecht/Droit de la construction 1/86, p. 16 ch. 9; Bühler, op. cit., n. 52 ad art. 369 CO; Chaix, op. cit., n. 22 ad art. 365 CO; Gauch, op. cit., n. 1999).
Comme on l'a déjà mentionné, l'inversion des conduites d'eau lors de la construction du chalet constituait une anomalie inhabituelle dans les installations de chauffage. L'identification de ce vice de construction était de surcroît rendue très difficile par le fait que les conduites étaient coulées dans la chape de béton. Dans de telles circonstances, on ne pouvait attendre de l'intimé qu'il signale ce défaut de l'installation préexistante lorsqu'il a entrepris les travaux de raccordement litigieux.
Au vu de ce qui précède, la recourante est déchue de ses droits de garantie en ce qui concerne le dysfonctionnement du chauffage et ne peut prétendre à la réparation du dommage consécutif au défaut.
2.2.2 La fissure d'un des radiateurs du chalet constitue un défaut de l'ouvrage, puisque celui-ci ne présentait plus les qualités convenues par les parties ou auxquelles le maître pouvait s'attendre selon les règles de la bonne foi (arrêt C. 211/1987 du 27 juin 1988, in SJ 1989 p. 309, consid. 3). L'existence de ce défaut autorise la recourante à faire valoir une prétention en dommages-intérêts, si l'entrepreneur est en faute. Conformément à la règle de l'art. 97 al. 1 CO, cette faute est présumée et il appartient à l'entrepreneur de se disculper (<ref-ruling>).
La cour cantonale n'a pas pu déterminer l'origine du défaut. Elle n'a pas non plus retenu de faits susceptibles de disculper l'intimé. Dès lors, la responsabilité de ce dernier apparaît engagée, pour autant que la recourante démontre l'existence d'un préjudice en relation de causalité naturelle et adéquate avec le défaut (Tercier, op. cit., n. 4236 p. 616).
A cet égard, la recourante se borne à alléguer qu'elle a été empêchée de louer l'immeuble pendant plusieurs mois de l'hiver 1997-1998. Or, d'une part, la Cour civile a retenu que le chalet avait été loué dès le mois de janvier 1998; d'autre part, la fissure du radiateur dont il est question n'a été signalée qu'à la fin du mois de mai 1998, de sorte que ce défaut n'a pu avoir aucune influence sur les locations antérieures. Enfin, il ne ressort pas de l'état de fait déterminant que la recourante aurait été privée d'un produit locatif pendant une période postérieure au 29 mai 1998.
Par conséquent, faute d'avoir démontré l'existence d'un préjudice en relation de causalité avec le défaut, la recourante ne peut pas prétendre à des dommages-intérêts.
Par conséquent, faute d'avoir démontré l'existence d'un préjudice en relation de causalité avec le défaut, la recourante ne peut pas prétendre à des dommages-intérêts.
3. Au vu de ce qui précède, la recourante n'est titulaire d'aucune créance contre l'intimé, laquelle viendrait en compensation du travail qu'il a exécuté. Dès lors, le recours doit être rejeté.
Compte tenu de l'issue du litige, la recourante supportera l'émolument de justice et versera à l'intimé une indemnité de dépens (art. 156 al. 1 et 159 al. 1 OJ).

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
1. Le recours est rejeté.
2. Un émolument judiciaire de 2'000 fr. est mis à la charge de la recourante.
2. Un émolument judiciaire de 2'000 fr. est mis à la charge de la recourante.
3. La recourante versera à l'intimé une indemnité de 2'500 fr. à titre de dépens.
3. La recourante versera à l'intimé une indemnité de 2'500 fr. à titre de dépens.
4. Le présent arrêt est communiqué en copie aux mandataires des parties et à la IIe Cour civile du Tribunal cantonal du canton du Valais.
Lausanne, le 20 février 2004
Au nom de la Ire Cour civile
du Tribunal fédéral suisse
Le président: Le greffier: