Добавлены задачи, выполненные по мануалу си. Пополнение задач по мере их выполнения и добавления комментариев. [Новые программы]master
commit
fae8efe512
@ -0,0 +1,20 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
/* Бэкспейс не видит. нужно подключать conio.h */ |
||||||
|
int main() |
||||||
|
{ |
||||||
|
int c; |
||||||
|
|
||||||
|
for(;(c=getchar())!= EOF;) |
||||||
|
{ |
||||||
|
if(c=='\t') |
||||||
|
printf("\\t"); |
||||||
|
else if(c=='\b') |
||||||
|
printf("\\b"); |
||||||
|
else if(c=='\\') |
||||||
|
printf("\\s"); |
||||||
|
else |
||||||
|
printf("%c",c); |
||||||
|
} |
||||||
|
|
||||||
|
getch(); |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
/*Ошибка при переносе слова на новую строку*/ |
||||||
|
#define IN 1 /* внутри слова */ |
||||||
|
#define OUT 0 /* вне слова */ |
||||||
|
|
||||||
|
int main() |
||||||
|
{ |
||||||
|
int c, nl, nw, nc, state; |
||||||
|
state = OUT; |
||||||
|
nl = nw = nc = 0; |
||||||
|
|
||||||
|
while ((c = getchar()) != EOF) { |
||||||
|
++nc; |
||||||
|
if (c == '\n') |
||||||
|
++nl; |
||||||
|
if (c == ' ' || c == '\n' || c == '\t') |
||||||
|
state = OUT; |
||||||
|
else if (state == OUT) { |
||||||
|
state = IN; |
||||||
|
++nw; |
||||||
|
} |
||||||
|
} |
||||||
|
printf("%d %d %d\n", nl, nw, nc); |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
|
||||||
|
#define IN 1 /* внутри слова */ |
||||||
|
#define OUT 0 /* вне слова */ |
||||||
|
|
||||||
|
int main() |
||||||
|
{ |
||||||
|
int c, nl, nw, nc, state; |
||||||
|
state = OUT; |
||||||
|
nl = nw = nc = 0; |
||||||
|
|
||||||
|
while ((c = getchar()) != EOF) { |
||||||
|
if (c == ' ' || c == '\n' || c == '\t'){ |
||||||
|
state = OUT; |
||||||
|
printf("%c \n",c); |
||||||
|
} |
||||||
|
else if (state == OUT) { |
||||||
|
state = IN; |
||||||
|
printf("%c",c); |
||||||
|
} |
||||||
|
else { |
||||||
|
printf("%c",c); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
@ -0,0 +1,76 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
/* подсчет цифр, символов-разделителей и прочих символов */ |
||||||
|
int main() |
||||||
|
{ |
||||||
|
int c, i, j, nwhite, nother; |
||||||
|
int ndigit[10]; |
||||||
|
nwhite = nother = 0; |
||||||
|
for (i = 0; i < 10; ++i) |
||||||
|
ndigit[i] = 0; |
||||||
|
while ((c = getchar()) != EOF) |
||||||
|
{ |
||||||
|
if (c >= '0' && c <= '9') |
||||||
|
++ndigit[c - '0']; |
||||||
|
else if (c == ' ' || c == '\n' || c == '\t') |
||||||
|
++nwhite; |
||||||
|
else |
||||||
|
++nother; |
||||||
|
} |
||||||
|
printf("цифры ="); |
||||||
|
for (i = 0; i < 10; ++i) |
||||||
|
printf(" %d", ndigit[i]); |
||||||
|
printf(", символы-разделители = %d, прочие = %d\n", nwhite, nother); |
||||||
|
|
||||||
|
for(i = 0; i<100; ++i){ |
||||||
|
for(j = 0; j<10; ++j){ |
||||||
|
--ndigit[j]; |
||||||
|
if (ndigit[j] >= 0) |
||||||
|
printf("|"); |
||||||
|
else if (ndigit[j] == -1) |
||||||
|
printf("-"); |
||||||
|
else |
||||||
|
printf(" "); |
||||||
|
} |
||||||
|
printf("\n"); |
||||||
|
} |
||||||
|
return 0; |
||||||
|
} |
||||||
|
#include <stdio.h> |
||||||
|
#include <ctype.h> |
||||||
|
|
||||||
|
#define MAXLEN 30 |
||||||
|
|
||||||
|
void resh(char s1[], char s2[]); |
||||||
|
|
||||||
|
int main() |
||||||
|
{ |
||||||
|
char in[MAXLEN] = "-A-Z1-9\0"; |
||||||
|
char out[MAXLEN]; |
||||||
|
|
||||||
|
printf("s1 = %s\n",in); |
||||||
|
resh(in, out); |
||||||
|
printf("s2 = %s\n",out); |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
void resh(char s1[], char s2[]) |
||||||
|
{ |
||||||
|
int i, j; |
||||||
|
for( i = 0, j = 0; s1[i] != 0; i++){ |
||||||
|
if (s1[i] = '-'){ |
||||||
|
if (isdigit(s1[i-1])&&isdigit(s1[i+1])&&s1[i-1] < s1[i+1]|| |
||||||
|
islower(s1[i-1])&&islower(s1[i+1])&&s1[i-1] < s1[i+1]|| |
||||||
|
isupper(s1[i-1])&&isupper(s1[i+1])&&s1[i-1] < s1[i+1]){ |
||||||
|
for(char t = (char)(s1[i-1]+1); t<s1[i+1]; t++){ |
||||||
|
s2[j++] = t; |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
s2[j++] = s1[i]; |
||||||
|
} |
||||||
|
else |
||||||
|
s2[j++] = s1[i]; |
||||||
|
} |
||||||
|
s2[j] ='\0'; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
|
||||||
|
float temp(int fahr); |
||||||
|
|
||||||
|
/* печать таблицы температур по Фаренгейту и Цельсию */ |
||||||
|
int main() |
||||||
|
{ |
||||||
|
int fahr; |
||||||
|
for (fahr = 300; fahr >= 0; fahr = fahr - 20) |
||||||
|
printf("%3d %6.1f\n", fahr, temp(fahr)); |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
float temp(int fahr) |
||||||
|
{ |
||||||
|
return (5.0 / 9.0) * (fahr - 32); |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
/* печать таблицы температур по Фаренгейту и Цельсию для
|
||||||
|
celsius = 0, 20 ... 300; вариант с плавающей точкой */ |
||||||
|
int main() |
||||||
|
{ |
||||||
|
float fahr, celsius; |
||||||
|
int lower, upper, step; |
||||||
|
lower = 0; /* нижняя граница таблицы температур */ |
||||||
|
upper = 300; /* верхняя граница */ |
||||||
|
step = 10; /* шаг */ |
||||||
|
celsius = lower; |
||||||
|
printf ("Таблица перевода цельс. в фар.\n"); |
||||||
|
while (celsius <= upper) { |
||||||
|
fahr = (9.0/5.0) * celsius + 32.0; |
||||||
|
printf ("%3.0f %6.2f\n", celsius, fahr); |
||||||
|
celsius = celsius + step; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,8 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
/* печать таблицы температур по Фаренгейту и Цельсию */ |
||||||
|
int main() |
||||||
|
{ |
||||||
|
int fahr; |
||||||
|
for (fahr = 300; fahr >= 0; fahr = fahr - 20) |
||||||
|
printf ("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32)); |
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
|
||||||
|
int main() |
||||||
|
{ |
||||||
|
int c; |
||||||
|
while ((c = getchar()) != EOF) { |
||||||
|
printf("Значение EOF\n",EOF); |
||||||
|
putchar(c); |
||||||
|
} |
||||||
|
return 0; |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
|
||||||
|
int main() |
||||||
|
{ |
||||||
|
int c; |
||||||
|
int tabulate, ws, new; |
||||||
|
tabulate = ws = new = 0; |
||||||
|
for(;(c=getchar())!= EOF;) |
||||||
|
{ |
||||||
|
if(c=='\t') |
||||||
|
++tabulate; |
||||||
|
else if(c==' ') |
||||||
|
++ws; |
||||||
|
else if(c=='\n') |
||||||
|
++new; |
||||||
|
/*else |
||||||
|
printf("%c",c);*/ |
||||||
|
} |
||||||
|
printf("Пробелов = %d Табуляций = %d Новых строк = %d", ws, tabulate, new); |
||||||
|
getch(); |
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
|
||||||
|
int main() |
||||||
|
{ |
||||||
|
int c; |
||||||
|
int ws = 0; |
||||||
|
|
||||||
|
while ((c = getchar()) != EOF) |
||||||
|
{ |
||||||
|
if (c == ' ') |
||||||
|
{ |
||||||
|
++ws; |
||||||
|
if (ws < 2) |
||||||
|
printf("%c", c); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
printf("%c", c); |
||||||
|
ws = 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
#include <limits.h> |
||||||
|
|
||||||
|
int main() |
||||||
|
{ |
||||||
|
printf("%d <= char <= %d\n", CHAR_MIN, CHAR_MAX); |
||||||
|
printf("%d <= int <= %d\n", INT_MIN, INT_MAX); |
||||||
|
printf("%ld <= long <= %ld\n", LONG_MIN, LONG_MAX); |
||||||
|
printf("%d <= signed char <= %d\n", SCHAR_MIN, SCHAR_MAX); |
||||||
|
printf("%d <= short <= %d\n", SHRT_MIN, SHRT_MAX); |
||||||
|
printf("0 <= unsigned char <= %d\n", UCHAR_MAX); |
||||||
|
printf("0 <= unsigned int <= %u\n", UINT_MAX); |
||||||
|
printf("0 <= unsigned long <= %lu\n", ULONG_MAX); |
||||||
|
printf("0 <= unsigned short <= %d\n", USHRT_MAX); |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
int main() |
||||||
|
{ |
||||||
|
unsigned char x; |
||||||
|
|
||||||
|
for (x = 1; x > x-1; ++x) { |
||||||
|
if (x < 0) |
||||||
|
break; |
||||||
|
printf("%d\n", x); // печатаем для отладки программы |
||||||
|
} |
||||||
|
printf("MIN: %d\n", x); |
||||||
|
printf("MAX: %d\n", --x); |
||||||
|
return 0; |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
int lim = 10; |
||||||
|
int main() |
||||||
|
{ |
||||||
|
int i, c; |
||||||
|
char s[lim]; |
||||||
|
i = 0; |
||||||
|
while (i < lim-1){ |
||||||
|
c = getchar(); |
||||||
|
if (с == EOF) |
||||||
|
break; |
||||||
|
else if (с == '\n') |
||||||
|
break; |
||||||
|
else |
||||||
|
s[i] = c; |
||||||
|
|
||||||
|
++i; |
||||||
|
} |
||||||
|
s[i] = '\0'; |
||||||
|
|
||||||
|
//for (i = 0; i < lim-1 && (с = getchar()) != EOF && с != '\n'; ++i) |
||||||
|
//s[i] = c; |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
#include <ctype.h> |
||||||
|
|
||||||
|
#define MAXLEN 30 |
||||||
|
|
||||||
|
void expand(char s1[], char s2[]); |
||||||
|
|
||||||
|
int main() |
||||||
|
{ |
||||||
|
char in[MAXLEN] = "-A-Z1-9\0"; |
||||||
|
char out[MAXLEN]; |
||||||
|
|
||||||
|
printf("s1 = %s\n", in); |
||||||
|
expand(in, out); |
||||||
|
printf("s2 = %s\n", out); |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
||||||
|
void expand(char s1[], char s2[]) |
||||||
|
{ |
||||||
|
int i, j; |
||||||
|
char t; |
||||||
|
|
||||||
|
for (i = 0, j = 0; s1[i] != '\0'; i++) |
||||||
|
{ |
||||||
|
if ( s1[i] == '-' ) |
||||||
|
{ |
||||||
|
if ( (isdigit(s1[i-1]) && isdigit(s1[i+1]) && (s1[i-1]<s1[i+1])) || |
||||||
|
(islower(s1[i-1]) && islower(s1[i+1]) && (s1[i-1]<s1[i+1])) || |
||||||
|
(isupper(s1[i-1]) && isupper(s1[i+1]) && (s1[i-1]<s1[i+1])) ) |
||||||
|
for (t = (char)(s1[i-1]+1); t < s1[i+1]; t++) |
||||||
|
s2[j++] = t; |
||||||
|
else |
||||||
|
s2[j++] = s1[i]; |
||||||
|
} |
||||||
|
else |
||||||
|
s2[j++] = s1[i]; |
||||||
|
} |
||||||
|
s2[j] = '\0'; |
||||||
|
} |
Loading…
Reference in new issue