Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в программирование на С.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
930.82 Кб
Скачать

Void main()

{

char m[100];

int n=0,i;

printf("Ввести строку: ");

scanf("%s",m);

for(i=0;m[i];i++)

{

n*=10; n+=m[i]-'0';

}

printf("\n%d\n",n);

}

  1. Ввести дату в строку следующим образом: 12/05/1956 и программа распечатывает строку следующим образом: 12 мая, 1956 года (использовать оператор switch).

  2. *Ввести число, например 3451 программа должна напечатать три тысячи четыреста пятьдесят один.

  3. Ввести число, посчитать, сумму цифр введенного числа используя char

#include<stdio.h>

Void main()

{

char s[50];

int x,i,sum=0;

printf("Введите число: ");

scanf("%s",s);

for(i=0;s[i]!='\0';i++)

{

if(s[i]=='-' && i==0)

continue;

x=s[i]-'0';//преобразования символа в число

sum+=x;

}

printf("summa=%d\n",sum);

}

10. С помощью данной программы можно определить код символа.

#include<stdio.h>

Void main()

{

int x;

char ch;

x=getchar();

ch=(char)x;

printf("%c=%d\n",ch,x);

}

11. За один просмотр исходного текста определить, сколько раз встречается каждый символ

#include<stdio.h>

Void main()

{

char arr[256],text[500];

int i,j;

for(i=0;i<256;i++)

arr[i]=0;//Обнуляем массив встречаемости символов

printf("\nВведите текст:\n");

gets(text);

for(j=0;text[j];j++)

{

i=(unsigned char)text[j];//аналогично i=(int)text[j];

arr[i]++;

}

for(i=0;i<256;i++)

{

if(arr[i])

printf("\nСимвол '%c' встречается %d раз",i,arr[i]);// если в printf ‘%c’,то i выводится как //символ.

}

}

12. Ввести строку. Написать функцию, которая получает данную строку и выводит на экран результатов каждое слова с новой строки. Например, если ввели

Москва столица России!!! 123 456, то получаем

Москва

столица

России!!!

123

456

5.3 Массив строк

char array[3][50]; объявляется двумерный массив array, состоящий из трех строк по 50 байт.

Примеры:

  1. Ввод и вывод массива строк.

#include<stdio.h>

Void main()

{

char string[5][20];

int i;

for(i=0;i<5;i++)

{

printf("Строка %d\n",i+1);

gets(string[i]);

}

for(i=0;i<5;i++)

puts(string[i]);

}

  1. Ввести массив из пяти строк, рассортировать в алфавитном порядке

#include<stdio.h>

#include<string.h>

Void main()

{

char string[5][20],buf[20];

int i,j,k;

for(i=0;i<5;i++)

{

printf("Строка %d\n",i+1);

gets(string[i]);

}

for(i=0;i<4;i++)

{

for(k=i,j=i+1;j<5;j++)

if(strcmp(string[k],string[j])>0)

k=j;

strcpy(buf,string[i]);

strcpy(string[i],string[k]);

strcpy(string[k],buf);

}

puts("");

for(i=0;i<5;i++)

puts(string[i]);

}

  1. Ввести массив строк, в который записываются целые числа, преобразовать их в массив чисел и вывести.

#include<stdio.h>

Void main()

{

char m[5][100],*s;

int n[5],i;

for(i=0;i<5;i++)

scanf("%s",m[i]);

for(i=0;i<5;i++)

{

for(s=m[i],n[i]=0;*s;s++)

{

n[i]*=10;

n[i]+=*s-'0';

}

}

puts("");

for(i=0;i<5;i++)

printf("%d\n",n[i]);}

§6 Динамическое распределение памяти

Одним из способов хранение информации, является использование системы динамического выделения памяти языка “С”. При этом память выделяется из свободной области памяти по мере надобности и возвращается назад, т.е. освобождается, когда необходимость в ней исчезает. Т.к. память выделяется и освобождается, то можно использовать ту же самую память в другой момент времени и для других целей в другой части программы. Ядром динамического выделения памяти в “С” являются функции, объявленные в стандартной библиотеке в загаловном файле stdlib.h.