🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.c
Article #4746

Re: HELP!! Beginner's question...

#4746
From: Scott Miller
Date: Fri, 02 Feb 1996 14:52
71 lines
2946 bytes
I compiled your program and ran it on our HP 700 series Unix machine,
entered 5 as the non-negative integer and 7 as the power, and got 78,125.
The program appears to be correct.

This could be a system dependant problem -- different systems may use
different sizes for int and long int.  On  your system, int may be a 
16 bit number in which case it would not be large enough to store 78,125.
(2^16 = 65536, but remember he's using signed numbers so Max int is 
smaller yet).  Your instructor's advice to use long int sounds wise --
try it if you haven't already.

				Scott Miller



Ramon Mariano Jr <rmariano@u.washington.edu> writes:
>Hello everybody!

>I'm a beginning C-programmer and for the past couple of days, I've been
>totally stuck in my program. The purpose of my program is to ask the user
>for an integer 'i' and raise it by a power 'n'. I've been succesful in
>computing 5 to the 6th power, 3 to the 4th power, and other small-sized
>equations. However, when I try to raise 5 to the 7th power, I get "12589" 
>when it really should be "78125". My teacher told me that instead of using
>plain 'int', I should use 'long int'. I tried that, but it's still not
>working. If anyone can help me out here, I'd GREATLY appreciate it! I've
>included my code below... (by the way, I'm not allowed to use the <math.h>
>library)


>------------------------------------------------------------------------

>#include <stdio.h>
>                  
>int main(void)
>{
>   int i,         /* integer */
>       n,         /* power to raise integer */
>       i_total,   /* integer's total value*/
>       count;     /* keeps track of number of loops run */

>   /* asks for an integer and stores it in 'i' */
>   printf("Enter a non-negative integer: ");
>   scanf("%d", &i); 

>   /* asks for a power and stores it in 'n' */
>   printf("What power should we raise it to? ");
>   scanf("%d", &n);

>   /* if 'n' is negative, program will treat it as a '0' */	
>   if (n < 0){
>       n = 0;
>   }            
>                    
>    i_total = 1;       /* gives i_total an initial total of '1' */

>    for (count = 1;  count <= n;  count = count + 1){
>        i_total = i_total * i;
>    }

>    /* prints out the inputs and result */
>    printf("%d raised to the %dth power is %d\n\n", i, n, i_total); 

>    return(0);	
>}
-- 
--
+-----------------------------------------------------------------+
| Scott A. Miller                                                 |
| Unix Integration Services                        scottm@uis.com |
Technical Details
Message-ID: <DM5LC6.M2n@uis.com>
Path: arc1-ca.pugleaf.net!news.netins.net!duke!scottm
References: <Pine.OSF.3.91l.960131005708.7552A-100000@saul3.u.washington.edu>

Show Full Headers
Complete Article Headers
Newsgroups: comp.std.c
Path: arc1-ca.pugleaf.net!news.netins.net!duke!scottm
From: scottm@uis.com (Scott Miller)
Subject: Re: HELP!! Beginner's question...
Message-ID: <DM5LC6.M2n@uis.com>
Date: Fri, 2 Feb 1996 14:52:53 GMT
References: <Pine.OSF.3.91l.960131005708.7552A-100000@saul3.u.washington.edu>
Organization: Unix Integration Services