Помощ - Търси - Регистрирани - Календар
Пълна версия: Проблем на С
UniBG Forums > Дискусии > Dexter's Lab > Програмиране
just_guest
CODE
/* Filename: C19SERCH.C
   Searches a part number array for the input value. If
   the entered part number is not in the array, it is
   added. If the part number is in the array, a message
   is printed. */
#include <stdio.h>
#define MAX 100
int main(void);
int fillParts(long int parts[MAX]);

int main(void)
{
   long int searchPart;            /* Holds user request */
   long int parts[MAX];
   int ctr;
   int numParts=5;          /* Beginning inventory count */

   fillParts(parts);    /* Fills the first five elements */
   do
   {
     printf("\n\nPlease type a part number...");
     printf("(-9999 ends program) ");
     scanf("%ld", &searchPart);
     if (searchPart == -9999)
       { break; }             /* Exits loop if user wants */
     /* Scan array to see whether part is in inventory */
     for (ctr=0; ctr<numParts; ctr++) /* Checks each item */
     { if (searchPart == parts[ctr])       /* If it is in
                                               inventory...*/
          { printf("\nPart %ld is already in inventory",
                    searchPart);
            break;
          }
       else
        { if (ctr == (numParts-1) )      /* If not there,
                                                   adds it */
          { parts[numParts] = searchPart;     /* Adds to
                                              end of array */
            numParts++;
            printf("\n%ld was added to inventory\n",
                    searchPart);
            break;
             }
        }
        }
   } while (searchPart != -9999);     /* Loops until user
                                               signals end */
   return 0;
}

int fillParts(long int parts[MAX])
{
   /* Assigns five part numbers to array for testing */
   parts[0] = 12345;
   parts[1] = 24724;
   parts[2] = 54154;
   parts[3] = 73496;
   parts[4] = 83925;
   return 0;
}



Здравейте, първо искам да попитам в тази част:
Код:
CODE
for (ctr=0; ctr<numParts; ctr++) /* Checks each item */
     { if (searchPart == parts[ctr])       /* If it is in
                                               inventory...*/
          { printf("\nPart %ld is already in inventory",
                    searchPart);

, по какъв начин се проверява дали някоя от стойностите съвпада с тези от масива? Код:
CODE
searchPart == parts[ctr]

- този ред не проверява ли за текущата стойност на 'ctr'? И последния ми въпрос е как тази проверка установява дали числото съществува:Код:
CODE
if (ctr == (numParts-1) )

?
demоnd
QUOTE(just_guest @ May 6 2007, 10:54 AM) *
Здравейте, първо искам да попитам в тази част:
Код:
CODE
for (ctr=0; ctr<numParts; ctr++) /* Checks each item */
     { if (searchPart == parts[ctr])       /* If it is in
                                               inventory...*/
          { printf("\nPart %ld is already in inventory",
                    searchPart);

, по какъв начин се проверява дали някоя от стойностите съвпада с тези от масива? Код:

cikli se posledovatelno prez vseki element i se proveriava dali stojnostta mu e ravna na vyvedenoto chislo
QUOTE
CODE
searchPart == parts[ctr]

- този ред не проверява ли за текущата стойност на 'ctr'?

ne; proveriava za stojnostta na elementa chijto index e tekushtia ctr
QUOTE
И последния ми въпрос е как тази проверка установява дали числото съществува:Код:
CODE
if (ctr == (numParts-1) )

?

kato sravniava dali tekushtia index e dostignal broja na elementite (-1 zashtoto v C indexite zapochvat ot 0, ne ot 1)
justanotherlame
те насякаде май почват от 0ла :р
demоnd
ne; ima ezici v koito indexite na "masivite" zapochvat vinagi ot 1 (Basic, Smalltalk), i drugi v koito dolnata granica mozhe da se definira (Pascal, Fortran, Ada)
justanotherlame
mf_pcwhack.gif
Това е семпла версия на форума. За да видиш пълната версия, която има повече информация, по-добра подредба и снимки, натисни тук.
Invision Power Board © 2001-2008 Invision Power Services, Inc.