Прокомментировать код - C (СИ) (74867)
Формулировка задачи:
вобщем вот пример из книги кернигана и ритчи.. насколько я знаю все что происходит внутри функции это есть локально и временно.. тогда как из функции getline() помимо значения которая функция отдает через return, просачиваются еще и битком набитый инфой массивы.. они ж не должны в теории.. все должно было остаться в вункции..
и почему массивы могут удирать из функции невредимыми а обычные переменные нет?.. в примере ниже этот прикол не прокатывает..
помогите, а?..
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #define MAXLINE 1000
- int getline(char line[], int lim);
- void copy(char to[], char from[]);
- /*печать самой длинной строки*/
- int main()
- {
- int len; /*длинна текущей строки*/
- int max = 0; /*длинна максимальной из просмотренных строк*/
- char line[MAXLINE]; /*сама строка*/
- char longest[MAXLINE]; /*самая длинная строка из введенных*/
- while((len = getline(line, MAXLINE)) > 0)
- if(len > max){
- max = len;
- copy(longest, line);
- }
- if(max > 0) /*была ли хоть одна строка?*/
- printf("%s", longest);
- return 0;
- }
- /*чтение строки в s, возврат длины*/
- int getline(char s[], int lim){
- int c, i;
- for(i = 0; i < lim-1 && (c = getchar()) != EOF && c != '\n'; ++i)
- s[i] = c;
- if(c == '\n'){
- s[i] = c;
- ++i;
- }
- s[i] = '\0';
- return i;
- }
- /*копирует из 'from' в 'to'; to достаточно большой*/
- void copy(char to[], char from[]){
- int i = 0;
- while((to[i] = from[i]) != '\0')
- ++i;
- }
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- int abc(int, int);
- int main()
- {
- int a = 1;
- int b = 2;
- int c = 0;
- printf("%d, %d, %d\n", a, b, c);
- c = abc(a, b);
- printf("%d, %d, %d\n", a, b, c);
- return 0;
- }
- int abc(int aq, int bq){
- int x = aq + bq;
- aq = 9;
- bq = 9;
- return x;
- }
Решение задачи: «Прокомментировать код»
textual
Листинг программы
- int sum(int, int);
Объяснение кода листинга программы
- В коде определен прототип функции с именем
sum
, которая принимает два целочисленных аргумента. - После прототипа функции нет тела, поэтому можно предположить, что функция определена в другом месте.
- В коде нет других элементов, которые можно было бы прокомментировать.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д