Надо написать код Задача такая: в каждой строке поменять местами самое длинное и самое короткое слово Пример: Собака кот мама Будет: кот собака мама Вот Только в каждой строке Я понял, как делать с 1 строкой Получается Все меняется А с 2 и более хз Сам код программы для одной строки: #include<stdio.h> #include<string.h> #define N 100 int main() { char s[N], ar[N][N]; int imax, imin, max=-1,min=100,n=0,i,len; while(scanf("%s",s)==1) { len=strlen(s); if(len>max){ imax=n; max=len; } if(len<min){ imin=n; min=len; } strcpy(ar[n++],s); if(getchar()!=' ') break; } strcpy(s,ar[imin]); strcpy(ar[imin],ar[imax]); strcpy(ar[imax],s); for(i=0;i<n-1;i++) printf("%s ",ar); printf("%s\n",ar[n-1]); return 0; }
#include "stdio.h" #include "string.h" #include "locale.h" #include "stdlib.h" #define ENTRY_LEN = 100; int main() { setlocale(LC_ALL, "rus"); int i; char **text = NULL; char *a; int count = 0, n = 0; char line[256]; char sep[]= "..."; char line2[256]; printf("Введите текст: \n"); do { int arraySize = (count+1)*sizeof(char*); text = (char**)realloc(text,arraySize); //изменение размера массива text до arraySize if(text==NULL) { fprintf(stderr,"Realloc unsuccessful"); exit(EXIT_FAILURE); //Если недостаточно памяти на компьютере – система прервет операцию } printf ("Enter %d string:\n", (count+1)); gets(line); int stringSize = strlen(line)+1; text[count] = (char*)malloc(stringSize); //выделяет блок памяти размером stringSize if(text[count]==NULL) { fprintf(stderr,"Malloc unsuccessful"); exit(EXIT_FAILURE); } strcpy(text[count], (char*)line); //копирует из line в text count++; } while (line[0]!='!', line[1]!='!', line[2]!='!', line[3]!='!',line[4]!='!',line[5]!='!'); //прерываем цикл puts(text[1]); for (i=0; i<count; i++) // выводим на экран результат выполнения программы { puts(text[i]); } return 0; } C #include "stdio.h" #include "string.h" #include "locale.h" #include "stdlib.h" #define ENTRY_LEN = 100; int main() { setlocale(LC_ALL, "rus"); int i; char **text = NULL; char *a; int count = 0, n = 0; char line[256]; char sep[]= "..."; char line2[256]; printf("Введите текст: \n"); do { int arraySize = (count+1)*sizeof(char*); text = (char**)realloc(text,arraySize); //изменение размера массива text до arraySize if(text==NULL) { fprintf(stderr,"Realloc unsuccessful"); exit(EXIT_FAILURE); //Если недостаточно памяти на компьютере – система прервет операцию } printf ("Enter %d string:\n", (count+1)); gets(line); int stringSize = strlen(line)+1; text[count] = (char*)malloc(stringSize); //выделяет блок памяти размером stringSize if(text[count]==NULL) { fprintf(stderr,"Malloc unsuccessful"); exit(EXIT_FAILURE); } strcpy(text[count], (char*)line); //копирует из line в text count++; } while (line[0]!='!', line[1]!='!', line[2]!='!', line[3]!='!',line[4]!='!',line[5]!='!'); //прерываем цикл puts(text[1]); for (i=0; i<count; i++) // выводим на экран результат выполнения программы { puts(text[i]); } return 0; }