Thread: need advice/help with the logic.

  1. #1
    Registered User
    Join Date
    Jul 2018
    Posts
    10

    need advice/help with the logic.

    hey i got some homework to do .. with ASCII table ..
    first was to print from 128-254 with 3 rows . void(inRow) will decide how many rows it will be ..

    second mission was to print it with mine choosen numbers.. (to,from)
    and then make it printed Reversed.

    just curios if i did it right before im sending it to mine Teacher. can some one take a look please?
    Code:
    #include<stdio.h>
    
    
    void printABC(int inRow);
    void print_abc_reverse(int from, int to);
    int rev=0;
    
    
    int main()
    {
        int inRow=3;
        printABC(inRow);
        printf("\n");
        printf("============================================================\n");
        int from=55;
        int to=120;
    
    
        print_abc_reverse(from,to);
    
    
    
    
        return 0;
    
    
    }
    
    
    void printABC(int inRow)
    {
        int count;
        int first=128;
        int last=254;
        for(count = 0; first<=last; first++)
        {
            printf("%d ->   %c\t\t",first,first);
            count++;
            if(count==inRow)
            {
                printf("\n");
                count=0;
            }
        }
    
    
    
    
    }
    
    
    void print_abc_reverse(int from, int to)
    {
        int count;
        for(count=0; from<=to; from++)
        {
            for(rev=55;rev<=to; rev++)
            {
                printf("%d ->   %c\t\t",rev,rev);
                if(rev%3==0)
                {
                    printf("\n");
                    count=0;
                }
    
    
            }
            printf("\n============================================================\n");
            for(rev=0; to>=from; to--)
            {
                printf("%d ->   %c\t\t",to,to);
                rev--;
            if(rev%3==0)
            {
                printf("\n");
                count=0;
            }
            }
        }
    }

    mine OutPut :
    Code:
    ============================================================
    128 ->   €		129 ->   ?		130 ->   ‚		
    131 ->   ƒ		132 ->   „		133 ->   …		
    134 ->   †		135 ->   ‡		136 ->   ˆ		
    137 ->   ‰		138 ->   Š		139 ->   ‹		
    140 ->   Œ		141 ->   ?		142 ->   Ž		
    143 ->   ?		144 ->   ?		145 ->   ‘		
    146 ->   ’		147 ->   “		148 ->   ”		
    149 ->   •		150 ->   –		151 ->   —		
    152 ->   ˜		153 ->   ™		154 ->   š		
    155 ->   ›		156 ->   œ		157 ->   ?		
    158 ->   ž		159 ->   Ÿ		160 ->    		
    161 ->   		162 ->   		163 ->   		
    164 ->   		165 ->   		166 ->   		
    167 ->   		168 ->   		169 ->   		
    170 ->   		171 ->   		172 ->   		
    173 ->   ..		174 ->   		175 ->   		
    176 ->   		177 ->   		178 ->   		
    179 ->   		180 ->   		181 ->   		
    182 ->   		183 ->   		184 ->   		
    185 ->   		186 ->   		187 ->   		
    188 ->   		189 ->   		190 ->   		
    191 ->   		192 ->   		193 ->   		
    194 ->   		195 ->   		196 ->   		
    197 ->   		198 ->   		199 ->   		
    200 ->   		201 ->   		202 ->   		
    203 ->   		204 ->   		205 ->   		
    206 ->   		207 ->   		208 ->   		
    209 ->   		210 ->   		211 ->   		
    212 ->   		213 ->   		214 ->   		
    215 ->   		216 ->   		217 ->   		
    218 ->   		219 ->   		220 ->   		
    221 ->   		222 ->   		223 ->   		
    224 ->   		225 ->   		226 ->   		
    227 ->   		228 ->   		229 ->   		
    230 ->   		231 ->   		232 ->   		
    233 ->   		234 ->   		235 ->   		
    236 ->   		237 ->   		238 ->   		
    239 ->   		240 ->   		241 ->   		
    242 ->   		243 ->   		244 ->   		
    245 ->   		246 ->   		247 ->   		
    248 ->   		249 ->   		250 ->   		
    251 ->   		252 ->   		253 ->   		
    254 ->   		
    ============================================================
    55 ->   7		56 ->   8		57 ->   9		
    58 ->   :		59 ->   ;		60 ->   <		
    61 ->   =		62 ->   >		63 ->   ?		
    64 ->   @		65 ->   A		66 ->   B		
    67 ->   C		68 ->   D		69 ->   E		
    70 ->   F		71 ->   G		72 ->   H		
    73 ->   I		74 ->   J		75 ->   K		
    76 ->   L		77 ->   M		78 ->   N		
    79 ->   O		80 ->   P		81 ->   Q		
    82 ->   R		83 ->   S		84 ->   T		
    85 ->   U		86 ->   V		87 ->   W		
    88 ->   X		89 ->   Y		90 ->   Z		
    91 ->   [		92 ->   \		93 ->   ]		
    94 ->   ^		95 ->   _		96 ->   `		
    97 ->   a		98 ->   b		99 ->   c		
    100 ->   d		101 ->   e		102 ->   f		
    103 ->   g		104 ->   h		105 ->   i		
    106 ->   j		107 ->   k		108 ->   l		
    109 ->   m		110 ->   n		111 ->   o		
    112 ->   p		113 ->   q		114 ->   r		
    115 ->   s		116 ->   t		117 ->   u		
    118 ->   v		119 ->   w		120 ->   x		
    
    
    ============================================================
    120 ->   x		119 ->   w		118 ->   v		
    117 ->   u		116 ->   t		115 ->   s		
    114 ->   r		113 ->   q		112 ->   p		
    111 ->   o		110 ->   n		109 ->   m		
    108 ->   l		107 ->   k		106 ->   j		
    105 ->   i		104 ->   h		103 ->   g		
    102 ->   f		101 ->   e		100 ->   d		
    99 ->   c		98 ->   b		97 ->   a		
    96 ->   `		95 ->   _		94 ->   ^		
    93 ->   ]		92 ->   \		91 ->   [		
    90 ->   Z		89 ->   Y		88 ->   X		
    87 ->   W		86 ->   V		85 ->   U		
    84 ->   T		83 ->   S		82 ->   R		
    81 ->   Q		80 ->   P		79 ->   O		
    78 ->   N		77 ->   M		76 ->   L		
    75 ->   K		74 ->   J		73 ->   I		
    72 ->   H		71 ->   G		70 ->   F		
    69 ->   E		68 ->   D		67 ->   C		
    66 ->   B		65 ->   A		64 ->   @		
    63 ->   ?		62 ->   >		61 ->   =		
    60 ->   <		59 ->   ;		58 ->   :		
    57 ->   9		56 ->   8		55 ->   7
    Thanks for all who will replay!
    Last edited by Melkweg; 08-06-2018 at 05:07 PM.

  2. #2
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,608
    The middle table always starts at 55, even if you change the parameters of print_abc_reverse(). When you look at the loop for that table, one sees why that is:
    Code:
            for(rev=55;rev<=to; rev++)
            {
    
                printf("%d ->   %c\t\t",rev,rev);
                if(rev%3==0)
                {
                    printf("\n");
                    count=0;
                }
            }
    rev should probably start at from.

    Also you mix declarations and code on lines 16 and 55, but this is relatively minor, since C99 exists.

  3. #3
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    36,690
    I wonder if the point of the exercise was one of incremental development, where

    void printABC(int inRow);

    became
    void printABC(int inRow, int from, int to);

    and finally
    void printABC(int inRow, int from, int to, int rev);


    I mean, you started with this.
    Code:
            printf("%d ->   %c\t\t",first,first);
            count++;
            if(count==inRow)
            {
                printf("\n");
                count=0;
            }
    But then you reverted back (after copy/pasting) to forcing only 3 elements per line.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Help with logic !
    By noririco in forum C Programming
    Replies: 16
    Last Post: 12-03-2013, 12:20 PM
  2. Logic error: need advice
    By jinjiro in forum C Programming
    Replies: 21
    Last Post: 10-10-2012, 10:47 AM
  3. XOR Logic Help
    By Yabssato in forum C Programming
    Replies: 8
    Last Post: 09-27-2011, 01:29 PM
  4. looking for a little bit of help with my logic
    By kstar in forum C++ Programming
    Replies: 2
    Last Post: 11-25-2006, 09:13 AM
  5. help on logic
    By wiresite in forum C++ Programming
    Replies: 2
    Last Post: 04-28-2004, 03:30 PM

Tags for this Thread