Добавлены задачи, выполненные по мануалу си. Пополнение задач по мере их выполнения и добавления комментариев. [Новые программы]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