Advertisement
C_Razvan

problema cap2

Nov 22nd, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #include <stdio.h>
  2. #define MAXLINIE 1000 /* dimensiunea maxima a liniei
  3. de intrare */
  4. int preialinie(char linie[ ], int maxlinie);
  5. void copiaza(char in[ ], char din[ ]);
  6. /* tipareste cea mai lunga linie de intrare */
  7. int main()
  8. {
  9. int lung; /* lungimea liniei curente */
  10. int max; /* lungimea maxima intalnita pana acum*/
  11. char linie[MAXLINIE
  12. ]; /* linia de intrare curenta */
  13. char cea_mai_lunga[MAXLINIE
  14. ]; /* pentru salvarea
  15. liniei celei mai lungi */
  16. max = 0;
  17. while ((lung = preialinie(linie, MAXLINIE)) > 0)
  18. if (lung > max) {
  19. max = lung;
  20. copiaza(cea_mai_lunga, linie);
  21. }
  22. if (max > 0) /* s-a gasit o linie */
  23. printf(“%s”, cea_mai_lunga);
  24. return 0;
  25. }
  26. /* preialinie: citeste o linie, o stocheaza in “s” si
  27. returneaza lungimea ei */
  28. int preialinie(char s[ ], int lim)
  29. {
  30. int c, i;
  31. for (i= 0;i < lim-1 && (c=getchar())!=EOF && c!=‘\n’;++i)
  32. s[ i ] = c;
  33. if (c == ‘\n’) {
  34. s[ i ] = c;
  35. ++i;
  36. }
  37. s[ i ] = ‘\0’;
  38. return i;
  39. }
  40. /* copiaza: copiaza “din” in “in”; presupunem
  41. ca “in”
  42. este suficient de mare */
  43. void copiaza(char in[ ], char din[ ])
  44. {
  45. int i;
  46. i=0;
  47. while (( in[ i ] = din[ i ] ) != ‘\0’)
  48. ++i;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement