Attachment 'list2.c'

Download

   1 #include <stdio.h> 
   2 #include <stdlib.h>
   3 
   4 typedef int *int_ptr; /* новое имя типа */
   5 int_ptr pi; /* сокращение для int *pi */
   6 
   7 struct node1 { /* node1 -- тег структуры. используем какое-нибудь ненужное имя*/
   8     int val;
   9     struct node1 *next;
  10 };
  11 
  12 typedef struct node1 node;
  13 typedef node* list; 
  14 
  15 int main (int argc, char **argv)
  16 {
  17   list l;
  18   list i, n;
  19   
  20   int x, max, min;
  21   l = NULL;
  22   scanf("%d", &x );
  23   while(x != 0)
  24   {
  25       n = malloc(sizeof(node));
  26       if(n==NULL){
  27           return 1; /* не хватило памяти! */
  28       }
  29       (*n).val = x;
  30       (*n).next = l;
  31       l = n; /* теперь l указывает на голову удлинненого списка */
  32       scanf("%d", &x );
  33   }
  34   
  35   i = l; 
  36   
  37   /* struct s s;
  38    * struct s *i; 
  39    * 
  40    *    s.       ===  s.
  41    *    (*i).    ===  i->
  42   
  43   * for(i=l; i!=NULL; i=i->next) */
  44   
  45   while(i != NULL) {
  46     printf("entered: %d\n", i->val );
  47     i = i->next; 
  48   }
  49   
  50   
  51   /* поиск максимума */ 
  52   max = l->val; /* первый элемент */
  53   min = l->val;
  54   for(i=l /* начинаем с начала списка */; 
  55       i!=NULL; /* пока не дошли до конца списка */ 
  56       i=i->next /* перейти к следующему элементу */ ) {
  57     
  58     if (i->val > max)
  59       max = i->val;
  60       
  61     if (i->val < min)
  62       min = i->val;
  63   }
  64   
  65   printf( "max = %d\n", max );
  66   printf( "min = %d\n", min );
  67   return 0;
  68 }
  69  

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

You are not allowed to attach a file to this page.