
21.11.2005, 23:24
|
|
Новичок
Регистрация: 24.10.2005
Сообщений: 6
Провел на форуме: 20362
Репутация:
0
|
|
Нам недавно тож такое задавали, я делал так:
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char *s;
int r,i,j=0,k=0,k1=0,c[50],k2=100,min,max,n,n1,m=0;
clrscr();
printf("Vvedite stroku\n\n ");
fflush(stdin);
gets(s);
r=strlen(s);
for (i=0;i<r;i++)
if (*(s+i)!=' '&&*(s+i)!='.'&&*(s+i)!=','&&*(s+i)!='-') k+=1;
else if (k!=0) {
m+=1;
if (k<k2) {min=k;n=i-min;k2=k;}
if (k>k1) {max=k;n1=i-max;k1=k;}
c[j]=k;j+=1;
k=0;
}
if (k!=0&&k<k2) {min=k;n=i-min;}
if (k>k1) {max=k;n1=i-max;}
if (k!=0) {m+=1;c[j]=k;}
for (i=0;i<m-1;i++)
for (j=i+1;j<m;j++)
if (c[j]<c[i]) {
k=c[i];
c[i]=c[j];
c[j]=k;
}
j=(m-1)/2;
printf("\n...................:::STATISTIKA:::...................\n\n * Koli4estvo slov --- %d\n\n * Minimal'noe slovo --- ",m);
for(i=n;i<n+min;i++) printf("%c",*(s+i));
printf(" (simvolov - %d)\n\n",min);
printf(" * Maximal'noe slovo --- ");
for(i=n1;i<n1+max;i++) printf("%c",*(s+i));
printf(" (simvolov - %d)\n\n",max);
printf(" * Koli4estvo simvolov srednego po dline slova --- %d\n\n......................................................",c[j]);
getch();
}
|
|
|