Advertisement
Adytzu04

l10p2

Apr 24th, 2012
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.66 KB | None | 0 0
  1. //header
  2. #ifndef L10P2_H_
  3. #define L10P2_H_
  4.  
  5. void *xmalloc(size_t nrOcteti);
  6. int *citireVector(int n);
  7. void afisareVector(int *a, int n);
  8. int sumaCifre(int k);
  9. int maxSir(int *v,int n);
  10. int* determinareW(int *w,int n);
  11.  
  12. #endif /* L10P2_H_ */
  13.  
  14. //c
  15.  
  16.  
  17. #include <stdio.h>
  18. #include <stdlib.h>
  19. #include "l10p2.h"
  20.  
  21.     void *xmalloc(size_t nrOcteti)
  22.     {
  23.         void *p;
  24.         p = malloc(nrOcteti);
  25.         if(p==0)
  26.         {
  27.             fprintf(stderr,"Memorie insuficienta\n");
  28.             exit(EXIT_FAILURE);
  29.         }
  30.         return p;
  31.     }
  32.  
  33.     int *citireVector(int n)
  34.     {
  35.         int i;
  36.         int *p;
  37.         p=(int *)xmalloc(n*sizeof(int));
  38.         for(i=0;i<n;i++)
  39.  
  40.             {
  41.                 printf("a(%d)= ",i);
  42.                 scanf("%d",p+i);
  43.             }
  44.         return p;
  45.     }
  46.  
  47.     void afisareVector(int *a, int n)
  48.     {
  49.         int i;
  50.         for(i=0;i<n;i++)
  51.  
  52.             {
  53.                 printf("%3d ",a[i]);
  54.             }
  55.     }
  56.  
  57.     int sumaCifre(int k)
  58.     {
  59.         int s=0;
  60.  
  61.         while(k!=0)
  62.         {
  63.             s=k%10 +s;
  64.             k=k/10;
  65.         }
  66.         return s;
  67.     }
  68.  
  69.     int maxSir(int *v,int n)
  70.     {
  71.         int max,i,imax;
  72.         max=v[0];
  73.         imax=0;
  74.         for(i=1;i<n;i++)
  75.         {
  76.             if(v[i]>max)
  77.             {
  78.                 max=v[i];
  79.                 imax =i;
  80.             }
  81.         }
  82.         return imax;
  83.     }
  84.  
  85.     int* determinareW(int *v,int n)
  86.     {
  87.         int i,*w;
  88.         w=(int *)xmalloc(n*sizeof(int));
  89.         for(i=0;i<n;i++)
  90.         {
  91.             w[i]=sumaCifre(v[i]);
  92.         }
  93.         return w;
  94.     }
  95.  
  96. //main
  97.  
  98. #include <stdio.h>
  99. #include <stdlib.h>
  100. #include "l10p2.h"
  101.  
  102.     int main(void)
  103.     {
  104.         int n,*v,w;
  105.  
  106.         printf("n=");
  107.         scanf("%d",&n);
  108.  
  109.         printf("Dati primul vector:\n");
  110.         v=citireVector(n);
  111.         afisareVector(v,n);
  112.  
  113.         printf("\n");
  114.         w=determinareW(v,n);
  115.         afisareVector(w,n);
  116.  
  117.         printf("\n");
  118.         int m=maxSir(w,n);
  119.  
  120.         printf("%d",m);
  121.  
  122.         free(v);
  123.         v=0;
  124.         free(w);
  125.         w=0;
  126.  
  127.  
  128.  
  129.         return 0;
  130.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement