.


:




:

































 

 

 

 


.




// 10 :

float **ptrarray = new float* [2]; //

for (int count = 0; count < 2; count++)

ptrarray[count] = new float [5]; //

// ptrarray float

float **ptrarray, float* [2], . for 2 . ptrarray[2][5]. .

// :

for (int count = 0; count < 2; count++)

delete [] ptrarray[count];

// 2

:

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
void main()
{

int *a; //

int i, j, n, m;

system("chcp 1251");

system("cls");

printf(" : ");

scanf("%d", &n);

printf(" : ");

scanf("%d", &m);

//

a = (int*) malloc(n*m*sizeof(int));

//

for(i=0; i<n; i++) //

{

for(j=0; j<m; j++) //

{

printf("a[%d][%d] = ", i, j);

scanf("%d", (a+i*m+j));

}

}

//

for(i=0; i<n; i++) //

{

for(j=0; j<m; j++) //

{

printf("%5d ", *(a+i*m+j)); // 5

}

printf("\n");

}

free(a);

getchar(); getchar();
}

: 3

: 4

a[0][0]=1

a[0][1]=2

a[0][2]=3

a[0][3]=4

a[1][0]=5

a[1][1]=6

a[1][2]=7

a[1][3]=8

a[2][0]=9

a[2][1]=10

a[2][2]=11

a[2][3]=12

1 2 3 4

5 6 7 8

9 10 11 12

- . :
- ;
- , ;
- .

malloc() size, . , .

:

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
void main()
{

int **a; //

int i, j, n, m;

system("chcp 1251");

system("cls");

printf(" : ");

scanf("%d", &n);

printf(" : ");

scanf("%d", &m);

//

a = (int**)malloc(n*sizeof(int*));

//

for(i=0; i<n; i++) //

{

//

a[i] = (int*)malloc(m*sizeof(int));

for(j=0; j<m; j++) //

{

printf("a[%d][%d] = ", i, j);

scanf("%d", &a[i][j]);

}

}

//

for(i=0; i<n; i++) //

{

for(j=0; j<m; j++) //

{

printf("%5d ", a[i][j]); // 5

}

printf("\n");

free(a[i]); //

}

free(a);

getchar(); getchar();
}

.

. (), . , . .

.

, , . , .

:

   , ( ).

   , ( ).

 

   ;

   ;

, . () :

   [near|far] * [=];

, . , :

   ( NULL);

   ;

   ( );

  , ;

  , .

:

#include <stdio.h>

int main()

{

int var; //

int *ptrVar; // (ptrVar int, int)

 

ptrVar = &var; // , var

scanf("%d", &var); // var ,

printf("%d\n", *ptrVar); //

getchar();

}

: 6 6

3.

.

, . . , , .

:

  1. ;

  2. ;

  3. .

, , . :

   ( );

, .

, : , . :

   ( )

:

  int func(int i, double x, double y)

  void func(int ind, char *string)

  double func(void)

-, , . ( ) .

 

:

.

  double factorial(unsigned);

  ...

  double factorial(unsigned num)

  {

   double fact = 1.0;

   for(unsigned i=1;i<=num;i++)

    fact *= (double)i;

   return fact;

  }

.

. .

:

  struct [ ]

  {

   _1;

   _2;

   ...

   _N;

  } [ ];

  . , .

.

- . ( Ȼ):
  ;
  .
:
1. .
2. .
3. .

:
1. .
2. .
3. .
4.

 

r
w . , .
a : , .
r+ ( ).
w+ ( ), , .
a+ .

 


 FILE * freopen(const char *filename, const char *mode, FILE *stream);

:
  ,
 NULL .

 


 int fclose(FILE *stream);
 stream - .

:
 0 .
 1 .


 int feof(FILE *stream);
 stream - .

:
 0 .
 !0 .

 


t ():
 rt, wt, at, rt+, wt+, at+


 int fscanf(FILE *stream, const char * format, [arg]...);

:
 >0 ,
 0 ,
 EOF .

 char * fgets(char * buffer, int maxlen, FILE *stream);

:
 buffer ,
 NULL .

 char * fgets(char * buffer, int maxlen, FILE *stream);

:
 buffer ,
 NULL .

 int fgetc(FILE *stream);
:
  ,
 EOF .

 int ungetc(int c, FILE *stream);
:
  ,
 EOF .


 int fprintf(FILE *stream, const char *format, [arg]...);
:
  ,
  .

 int fputs(const char *string, FILE *stream);
:
  ,
 EOF .

 int fputc(int c, FILE *stream);
:
  ,
 EOF .

  b ():rb, wb, ab, rb+, wb+, ab+

 size_t fread(void *buffer, size_t size, size_t num,FILE *stream);
. num,
.


 size_t fwrite(const void *buffer, size_t size, size_t num, FILE *stream);
. num, .

:
 long int ftell(FILE *stream);
:
 int fseek(FILE *stream, long int offset, int origin);

 SEEK_SET (0) .
 SEEK_CUR (1) .
 SEEK_END (2) .
:
 0 ,
 !0 .
:
 void rewind(FILE *stream);
:
 int fgetpos(FILE *stream, fpos_t *pos);
:
 int fsetpos(FILE *stream, const fpos_t *pos);
:
 0 ,
 !0 .
fpos_t:
 typedef struct fpos_t {
  long off;
  mbstate_t wstate;
 } fpos_t;

:
 int ferror(FILE *stream);
, .
:
 void clearerr(FILE *stream);
:
 void perror(const char *string);

:
 int fflush(FILE *stream);
:
 0 .
 EOF .
:
 void setbuf(FILE *stream, char * buffer);

BUFSIZ. .

:
 FILE * tmpfile(void);
wb+. , .
:
 char * tmpnam(char *buffer);

:
 int remove(const char *filename);
:
 int rename(const char *fname, const char *nname);
:
 0 ,
 !0 .

4.

.

(stack) , " " (last-in, first-out, LIFO). , . , , , , . , .

. " " (push) " " (pop). : push(), "" , pop(), "" . , . , . , , - . push() pop(), . , .

int stack[MAX];

int tos=0; /* */

 

/* . */

void push(int i)

{

if(tos >= MAX) {

printf(" \n");

return;

}

stack[tos] = i;

tos++;

}

/* . */

int pop(void)

{

tos--;

if(tos < 0) {

printf(" \n");

return 0;

}

return stack[tos];

}

 

tos ("top of stack" " ") . , . tos , tos, - .

.

 
push(A) A
push(B)
push(C) C B A
()
push(F) F
() F
()
()

 

, . , , .

:

/* . */

 

#include <stdio.h>

#include <stdlib.h>

#define MAX 100

int *p; /* */

int *tos; /* */

int *bos; /* */

void push(int i);

int pop(void);

int main(void)

{

int a, b;

char s[80];

p = (int *) malloc(MAX*sizeof(int)); /* */

if(!p) {

printf(" \n");

exit(1);

}

tos = p;

bos = p + MAX-1;

printf(" \n");

printf(" 'q' \n");

 

do {

printf(": ");

gets(s);

switch(*s) {

case '+':

a = pop();

b = pop();

printf("%d\n", a+b);

push(a+b);

break;

case '-':

a = pop();

b = pop();

printf("%d\n", b-a);

push(b-a);

break;

case '*':

a = pop();

b = pop();

printf("%d\n", b*a);

push(b*a);

break;

case '/':

a = pop();

b = pop();

if(a==0) {

printf(" 0.\n");

break;

}

printf("%d\n", b/a);

push(b/a);

break;

case '.': /* */

a = pop();

push(a);

printf(" : %d\n", a);

break;

default:

push(atoi(s));

}

} while(*s!= 'q');

 

return 0;

}

/* . */

void push(int i)

{

if(p > bos) {

printf(" \n");

return;

}

*p = i;

p++;

}

/* . */

int pop(void)

{

p--;

if(p < tos) {

printf(" \n");

return 0;

}

return *p;

}

.

, " " (first-in, first-out); ( ) FIFO. , , .. ; .

, : qstore() qretrieve() ( "store" "", "retrieve" ""). qstore() , qretrieve() . .

 
qstore(A) A
qstore(B)
qstore(C) A B C
qretrieve()
qstore(D) B C D
qretrieve() C D
qretrieve() D

 

, , - . .

. . /.

:

/* - */

 

#include <string.h>

#include <stdlib.h>

#include <stdio.h>

#include <ctype.h>

#define MAX 100

char *p[MAX], *qretrieve(void);

int spos = 0;

int rpos = 0;

void enter(void), qstore(char *q), review(void), delete_ap(void);

int main(void)

{

char s[80];

register int t;

for(t=0; t < MAX; ++t) p[t] = NULL; /*

*/

 

for(;;) {

printf(" (E), (L), (R), (Q): ");

gets(s);

*s = toupper(*s);

 

switch(*s) {

case 'E':

enter();

break;

case 'L':

review();

break;

case 'R':

delete_ap();

break;

case 'Q':

exit(0);

}

}

return 0;

}

/* . */

void enter(void)

{

char s[256], *p;

do {

printf(" %d: ", spos+1);

gets(s);

if(*s==0) break; /* */

p = (char *) malloc(strlen(s)+1);

if(!p) {

printf(" .\n");

return;

}

strcpy(p, s);

if(*s) qstore(p);

} while(*s);

}

/* . */

void review(void)

{

register int t;

for(t=rpos; t < spos; ++t)

printf("%d. %s\n", t+1, p[t]);

}

/* . */

void delete_ap(void)

{

char *p;

if((p=qretrieve())==NULL) return;

printf("%s\n", p);

}

/* . */

void qstore(char *q)

{

if(spos==MAX) {

printf("List Full\n");

return;

}

p[spos] = q;

spos++;

}

/* . */

char *qretrieve(void)

{

if(rpos==spos) {

printf(" .\n");

return NULL;

}

rpos++;

return p[rpos-1];

}

.

, :

struct s{

int data;//

s *next;//

} *first,*curr;//

:

first=new s;

curr=new s;

first->next=curr;

first->data

: curr->next=new s;

curr=curr->next;//

50 :

curr=first;//

for(int i=0;i<50;i++)

{

if(curr->next!=NULL)

{

curr=curr->next;

}

}





:


: 2017-02-11; !; : 985 |


:

:

, , .
==> ...

1523 - | 1432 -


© 2015-2024 lektsii.org - -

: 0.194 .