B ) только две одинаковые цифры. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

B ) только две одинаковые цифры.



Пример №2. Ввести число и определить, оно больше нуля, меньше или равно.

# include <conio.h>                                      

# include <stdio.h> 

Int main ()

{ Int n;

printf(“vvedite n\n”);

scanf(“%d”,&n);

if(n>0) printf(“n>0\n”);

else if (n<0) printf(“n<0\n”);

else printf(“n=0\n”);

return 0; }

Пример №3. Программа, которая запрашивает у пользователя № месяца и затем выводит соответ-ее название времени года. # include <conio.h>                                         # include <stdio.h> 

Int main ()

{ Int n;

printf(“vvedite nomer mesyaca\n”);

scanf(“%d”,&n);

if (n==1 || n==2 || n==12) printf(“zima\n”);

else if (n>=3 && n<=5) printf(“vesna\n”);

else if (n>=6 && n<=8) printf(“leto\n”);

else printf(“osen\n”);

return 0; }

Пример №4. Введите трехзначное число. Подсчитайте кол-во четных цифр в числе.

# include <conio.h>                                       

 # include <stdio.h> 

Int main ()

{ Int a,b,c, n,z=0;//z-счётчик кол-ва

printf(“vvedite 3-znachnoe chislo:\n”);

scanf(“%d”,&n);

a=n%10;

b=n/10%10; c=n/100;

if(a%2==0) z++; if(b%2==0) z++;

if(c%2==0) z++;

printf(“v chisel %d kol-vo chetnih cifr %d\n”, n,z); return 0; }                          

  Пример №5. Вычислить x, y, z.

#include <conio.h>

# include <stdio.h>

int main ()

{

int x,y,z,w;

x=-1; y=2; z=3; w=1;

printf("\n x=%d y=%d z=%d w=%d",x,y,z,w);

w/=z+=y*=x-=1;

printf("\n x=%d y=%d z=%d w=%d",x,y,z,w);

getch();

} ответ: x=-1 y=2 z=3 w=1

     x=-2 y=-4 z=-1 w=-1

Пример №6. Вычислить x,y,z.

#include <conio.h>

#include <stdio.h>

int main ()

{

int x,y,z;

x=2; y=1; z=0;

x=x&&!--y&&z++||y>x||(y=z);

printf("\n x=%d y=%d z=%d",x,y,z);

y=--z+2;

printf("\n x=%d y=%d z=%d",x,y,z);

z-=y!=++x||z&&++y*x;

printf("\n x=%d y=%d z=%d",x,y,z);

getch();

} ответ: x=1 y=1 z=1

     x=1 y=2 z=0

     x=1 y=2 z=0

Пример№7. Если остаток от деления Х на 5 равен 2, то присвоить Х значение 0, если остаток равен 3, то умножить Х на

–1. # include <conio.h>

# include <stdio.h>

 int main()

{

 int x;

 scanf("%d",&x);

 if (x%5==2)

 x=0;

 if (x%5==3)

 x*=-1;

 printf("x=%d",x);

 getch();

}

Пример №8. Если Х равно 5, то присвоить Y квадрат Х, если 7, то У присвоить остаток от деления Х на 2, в остальных случаях значение Y увеличить на 1.

#include <conio.h>

#include <stdio.h>

int main()

{ int x,y;

x=3;y=0;

switch(x)

{

case 5:y=x*x;break;

case 7:y=x%2;break;

default:++y;

}

 printf("%d",y);

getch();

}

Пример №9. Если Х больше 5, то увеличить его значение на 1, иначе вывести на печать У. Х и Y целые.

#include <conio.h>

#include <stdio.h>

int main()

{ int x,y;

x=6;y=1;

if (x>5) x++;

else printf("%d",y);

getch();

}

 

 

Пример №10. Определить, имеется ли среди заданных целых чисел A, B, C хотя бы одно чётное.

  #include <conio.h>

#include <stdio.h>

int main()

{ int a,b,c;

 printf("vvedite 3 chisla:\n");

 scanf("%d%d%d",&a,&b,&c);

 if (a%2==0 || b%2==0 || c%2==0) printf("imeetca\n");

 else printf("neimeetca\n");

getch();

}

Пример №11. Даны три числа. Вывести на экран те из них, которые принадлежат заданному отрезку [ e, f ].

#include <conio.h>

#include <stdio.h>

int main()

{ int a,b,c,e,f;

a=2; b=7; c=8; e=1; f=5;

if (a>=e && a<=f) printf("a\n");

if (b>=e && b<=f) printf("b\n");

if (c>=e && c<=f) printf("a\n");

getch();

}

Пример №12. Определить, есть ли среди цифр заданного целого трёхзначного числа одинаковые.

#include <conio.h>

#include <stdio.h>

int main ()

{

 int n,a,b,c,d;

 printf("Vvedite 3-znachnoe chislo\n");

 scanf("%d",&n);

 a=n%10;

 b=n/10%10;

 c=n/100;

 if (a==b || a==c || b==c)

 printf("imeetcia\n");

 else printf("ne imeetcia\n");

 getch();

}

Пример №13. Определить номер квадранта, в котором находится точка с заданными координатами (x, y).

#include <conio.h>

#include <stdio.h>

int main()

{ int x,y,a;

printf("vvedite x,y\n");

scanf("%d%d",&x,&y);

if (x>=0 && y>=0) a=1;

else if (x<0 && y>=0) a=2;

else if (x<=0 && y<0) a=3;

else a=4;

printf("a= %d", a);

getch();

 

 Пример 14. Выбрать наибольшее из трёх заданных чисел

#include <conio.h>

#include <stdio.h>

int main()

{ int a,b,c,max;

printf("Vvedite 3 chisla:\n");

scanf("%d%d%d",&a,&b,&c);

if(a>b && a>c) max=a;

 else if(b>c) max=b;

 else max=c;

printf("max= %d",max);

getch();

}

Пример 15. Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: «Увы – рабочий день!», «Ура! Суббота!», «Ура! Воскресенье!».

#include <conio.h>

#include <stdio.h>

int main()

{ int n;

printf("Vvedite nomer nedeli\n");

scanf("%d",&n);

if (n==1 || n==2 || n==3 || n==4 || n==5)

printf("Yvi-rabochii day!\n");

else if (n==6) printf("Yra!Saturday\n");

else if (n==7) printf("Yra!Sunday\n");

getch();

}

Пример 16. Записать у переем х 5-ый и 7-ый разряды инвертировать, а 10-й разряд обнулить. #include <conio.h>

#include <stdio.h>

int main()

{ int x=11;

x ^= 1 << 4;

x ^= 1 << 6;

x &= ~(1 << 9);

printf("x=%d",x);

getch();

}

Пример 17. Подсчитать количество натуральных чисел n (111 £ n £ 999), в записи которых есть

а) две одинаковые цифры;

Пример 18. Записать переем х, которая принимает значение против-ое 6-му разряду переменной а.

#include <conio.h>

#include <stdio.h>

int main()

{ int x,а=2;

Х=!(а&(1<<5));

printf("x=%d",x);

getch();   }    

  Пример 19. Написать программу, вычисляющую стоимость междугороднего разговора в соответствии с таблицей:

Город Код Цена руб/мин
Владивосток 432 9,20
Москва 095 4,10
Краснодар 861 2,05
Волгоград 844 2,50

Входными данными должны являться код города и число минут.На выходе мы должны иметь сообщение о стоимости минуты и сумме за разговор.

#include <conio.h>

#include <stdio.h>

int main()

{ int kod, minut;

float cena, stoimost;

printf("Vvedite dannie:\n");

printf("Kod goroda: ");

scanf("%i", &kod);

printf("Dlitelnost razgovora: ");

scanf("%i", &minut);

switch(kod)

{ printf("Gorod: Vladivostok.\n");   

   printf("Stoimost minyt razgovora: 9.2 rub.\n");

   stoimost = minut * 9.2; break;

Case 95:

   printf("Gorod: Moscov.\n");   

   printf("Stoimost minyt razgovora: 4.1 rub.\n");

   stoimost = minut * 4.1; break;

case 861:

   printf("Gorod: Krasnodar.\n");   

  printf("Stoimost minyt razgovora: 2.05 rub.\n");

   stoimost = minut * 2.05; break;

Case 844:

    printf("Gorod: Volgograd.\n");   

   printf("Stoimost minyt razgovora: 2.5 rub.\n");

   stoimost = minut * 2.5; break;

default:

   printf("nevernii kod.\n");   

   stoimost = 0.0; break;

}

 printf("Stoimost razgovora: %5.2f rub.", stoimost); }

Пример 20. Подсчитать количество натуральных чисел n (102 £ n £ 987), в которых все три цифры различны.

#include<stdio.h>

#include<conio.h>

main()

{

 int a,b,c,x=0,y=0;

for (int i=102; i<987; i++)

{

a=i/100;

b=i%100/10;

c=i%10;

if (a!=b&&a!=c&&b!=c) x++;

}

 printf("Kolichestvo chesel gde vse tri tsifri razlichi\n %d",x);

getch();

}

Пример 21. Подсчитать количество натуральных чисел n (11 £ n £ 999), являющихся палиндромами, и распечатать их. #include<stdio.h>

#include<conio.h>

main()

{

int x=0;

for(int i=11; i<=999;i++)

         if(i<100)

         {

                  if(i%10==i/10){ x++; printf("%d ",i); }

         }

         else if (i/100==i%10) { x++; printf("%d ",i); }

printf("\n Kolichestvo chisel palindromov %d",x);

getch();

}

Пример 22. Подсчитать количество цифр в десятичной записи целого неотрицательного числа n. #include<stdio.h>

#include<conio.h>

main()

{

 int i=0,n;

 printf ("vvedite lyboe chislo\n");

 scanf("%d",&n);

while (n>0)

{ n/=10;

i++;

}

 printf("kolichestvo chifr\n %d",i);

getch(); }

Пример 23 Определить, верно ли, что куб суммы цифр натурального числа n равен n2.

#include<stdio.h>

#include<conio.h>

main()

{

 int i=0,n,n1;

 printf ("vvedite luboe chislo\n");

 scanf("%d",&n);

 n1=n*n;

while (n>0)

{

i+=n%10;  

n/=10;

}

i=i*i*i;

 if (n1==i) printf("verno");

 else printf("ne verno'");

getch();

}

Пример 24. Определить, является ли натуральное число n степенью числа 3.

#include<stdio.h>

#include<conio.h>

main()

{          

        int n;

printf("Enter n: ");

        scanf("%d", &n);

        if (n%3 == 0)

                       printf("Yes");

        else

printf("No");

getch();

}

Пример 25. Для данного вещественного положительного числа a найти наименьшее натуральное положительное n такое, что 1 + 1/2 +1/3+... + 1/n > a.

#include<stdio.h>

#include<conio.h>

main()

{

int n=0; float a,z=0,x=0;

scanf("%f",&a);

while (x<a)

{  n++; z++;

       x=x+1/z;

}

printf("%d",n);

getch(); }

Пример 26. Дано натуральное число n. Получить все его натуральные делители.  #include<stdio.h>

#include<conio.h>

main()

{ int n, i;

        n = i = 0;

printf("Enter n: ");

        scanf("%d", &n);

        printf("Dividers is: ");

        for(i = 1; i <= n; i++) {

if (n % i == 0)

        printf("%d ", i); }

Пример 27 Дано целое число m > 1. Получить наибольшее целое k, при котором 4k < m.

#include<stdio.h>

#include<conio.h>

main()

{

int m,k=1,i=0;

printf ("vvedite luboe chislo\n");

scanf("%d",&m);

while(k<m)

{

           i++;

           k*=4;

}

printf("naiboshee tseloe k=%d",i-1);

getch();

}

Пример 28. Распечатать первые n (n - задано) простых чисел (p - простое число, если p >= 2 и делится только на 1 и на себя).

#include<stdio.h>

#include<conio.h>

main()

{

int n,p=0,k;

printf ("vvedite luboe chislo\n");

scanf("%d",&n);

for (int i=2; i<=n; i++)

{

     k=1;

     for (int j=2; j<i-1; j++)

         if (i%j==0) { k=0; break; } 

     if (k==1)

     printf("%d ",i);       

}

getch();

}

Пример 29. Вычислить значение å i! для i, изменяющихся от 1 до n. Воспользоваться соотношением å i! = 1 + 1 * 2 + 1 * 2 * 3 +...+ 1 * 2 * 3 *... * n = 1+2 * (1+3 * (1+ +n * (1)...)).

#include<stdio.h>

#include<conio.h>

main()

{

int s=1,n;

scanf("%d",&n);

for (int i=1; i<=n; i++)

s=1+((n+1-i)*s);

s--;   

printf("%d",s);

getch();

}

 

Пример 30. Для данного вещественного числа x и натурального n вычислить:

a) sin x + sin2x +... + sinnx

b) sin x + sinx2 +... + sinxn

c) sin x + sin(sin x) +... + sin (sin (... sin(sin x)...))

#include <stdio.h>

#include <conio.h>

#include <math.h>

main()

{

 

int n,i;

float a=1,b=0,bb=1,c=0,x;

printf("Vvedite chislo x: ");

scanf("%f",&x);

printf("Vvedite chislo n: ");

scanf("%d",&n);

c=x; 

for (i=1; i<=n; i++)

{

a+=a*sin(x);

bb*=x;

b+=sin(bb);

c+=sin(c);

}      

printf("rezultat\nsin x + sinx2 +... + sinxn=%f",a-1,b,c-x); 

getch();

}

Пример 31. Натуральное число называется совершенным, если оно равно сумме всех своих делителей, за исключением самого себя. Дано натуральное число n. Получить все совершенные числа, меньшие n.

 #include<stdio.h>

#include<conio.h>

main()

{

int x,r,kol=0;

printf ("vvedite luboe natyral'noe chislo\n");

scanf("%d",&x);

for(int i=2; i<x; i++)

{

         r=0;

         for(int j=1; j<i/2+1; j++)

                 if (i%j==0) r+=j;

                     

         if (i==r) {kol++; printf("\nsoveshennoe chislo:%d ",r); }

}

printf("\nkolichestvo:\n%d",kol);

getch();

}

 

 

Пример 32. Если p и q - простые числа и q = p+2, то они называются простыми сдвоенными числами или “близнецами” (twin primes). Например, 3 и 5 - такие простые числа. Распечатать все простые сдвоенные числа, меньшие N.

#include<stdio.h>

#include<conio.h>

main()

{ int prev=1,now,N,r;

printf ("vvedite luboe chislo\n");

scanf("%d",&N);

 for (int i=1; i<N;i++)

{

     r=0;

     for (int j=2; j<i; j++)

         if (i%j==0){r=1; break;}

     if (r==0)now=i;

     {

        if(now-prev==2) printf(" \nprostie sdvoennie chisla:\n %d %d ",prev,now);

        prev=now;

     }

} getch(); }

Пример 33. Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой (кодировка ASCII). Вывести в выходной поток последовательность символов, измененную следующим образом:

a) заменить все символы ‘?’ на’!’;

#include <stdio.h>

#include <conio.h>

int regist (int ch)

{

 if(ch == '?') return '!';

 return ch;

} int main()

{

 int ch;

 while((ch=getchar())!=EOF)

 {

 if(ch == '-') continue;

 if(ch == '&') putchar(ch);

 putchar(ch);

 }  getch();

 }

Пример 34. Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой. Вывести в выходной поток последовательность символов, измененную следующим образом:

b) удалить все символы ‘-‘ и удвоить все символы ‘&’;

#include <stdio.h>

#include <conio.h>

int regist (int ch)

{ if(ch == '?') return '!';

 return ch;

} int main()

{  int ch;

 while((ch=getchar())!=EOF)

 { if(ch == '-') continue;

 if(ch == '&') putchar(ch);

 putchar(ch);

 }

 getch(); }

Пример 35. Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой (кодировка ASCII). Вывести в выходной поток последовательность символов, измененную следующим образом:

заменить все прописные латинские буквы строчными (другие символы копировать в выходной поток без изменения);

#include <stdio.h>

#include <conio.h>

int main()

{ int ch;

 while((ch = getch())!=EOF)

 {

 if (ch >= 'A' && ch <= 'Z') ch += 'a' - 'A';

 putchar(ch);

 }

 getch(); }

Пример 36. Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой (кодировка ASCII). Вывести в выходной поток последовательность символов, измененную следующим образом:

f) каждую группу рядом стоящих символов ‘+’ заменить одним таким символом;

#include <stdio.h>

#include <conio.h>

int main()

{  int ch;

 while((ch = getchar())!=EOF)

 {

 if(ch == '+')

 {  int ch2 = getchar();

 if(ch2!= EOF)

 {

 if(ch2 == '+') putchar(ch2);

 else

 {  putchar(ch);

 putchar(ch2);

 }

 } else putchar(ch);

 } }

 getch(); }

Пример 37. Пусть во входном потоке находится последовательность с имволов, заканчивающаяся точкой. Вывести в выходной поток последовательность символов, измененную следующим образом:

удалить все символы, не являющиеся строчными латинскими буквами;

#include <stdio.h>

#include <conio.h>

int regist (int ch)

{

 if(ch == '?') return '!';

 return ch;

} int main()

{

 int ch;

 while(ch = getchar())!=EOF)

 {

 if(ch >= 'a' && ch <= 'z') putchar(ch);

 }  getch(); }

 

Пример 38. Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой (кодировка ASCII). Вывести в выходной поток последовательность символов, измененную следующим образом:

заменить все строчные латинские буквы прописными #include <stdio.h>

#include <conio.h>

int main()

{

 int ch;

 while(ch = getchar())!=EOF)

 {

 if (ch >= 'a' && ch <= 'z') ch -= 'a' - 'A';

 putchar(ch);

 }

 getch(); }

Пример 39. Длина не превысит 100 элементов. Пусть во входном потоке находится (Строка символов). Вывести в выходной поток последовательность литер, измененную следующим образом: a) заменить все символы ‘?’ на’!’;

# include <stdio.h>

# include <iostream.h>

# include <conio.h>

# include <string.h>

char s[100];

char a, l, b;

int i, j, k;

int main()

{ puts("Vvedite stroku texta: \n");

gets(s);

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

if (s[i]=='?') s[i]='!';

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

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

if (s[j]=='-')

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

s[k]=s[k+1];

j=0;

do  { if (s[j]=='&')

{ for (k=strlen(s)+1; k>j; k--)

s[k+1]=s[k];

s[j+1]=s[j];

j+=2;

}  elsej++;

 } while(s[j]!='\0');

puts(s);

getch();

return 0; }

Пример 40. Длина не превысит 100 элементов. Пусть во входном потоке находится (Строка символов). Вывести в выходной поток последовательность литер, измененную следующим образом:

b) удалить все символы не явл-еся строчными латинскими буквами;

# include <iostream.h>

# include <stdio.h>

# include <conio.h>

char s[100];

int i, j, k;

void main()

puts("Vvedite stroku texta: \n");

gets(s);

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

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

if ((s[j]<'a')||(s[j]>'z'))

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

s[k]=s[k+1];

puts(s);

getch();

}

Пример 41. Длина не превысит 100 элементов. Пусть во входном потоке находится (Строка символов). Вывести в выходной поток последовательность литер, измененную следующим образом:

Пример 44. Вывести в выходной поток последовательность симв.

g)каждую группу из n рядом стоящих символов ‘ * ’ заменить группой из n/2 рядом стоящих символов ‘+’ (n >= 2); одиночные ‘ * ’ копировать в выходной поток без изменения;

# include <stdio.h>

# include <iostream.h>

# include <conio.h>

# include <string.h>

char s[100];

char a, b;

int i, j, l, k;

int main()

{ puts("Vvedite stroku texta: \n");

gets(s);

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

if (s[l]=='*')/*&&(s[l+1]=='*'))*/

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

           s[i]=s[i+1];

s[l]='+';}

puts(s);

getch();

return 0; }

Пример 45. Вывести в выходной поток последовательность симв.

h) удалить из каждой группы подряд идущих цифр все начальные незначащие нули (если группа состоит только из нулей, то заменить эту группу одним нулем);

# include <stdio.h>

# include <iostream.h>

# include <conio.h>

# include <string.h>

char s[100];

char a, b;

int i, j, l, k, S, m, n;

int main()

{ puts("Vvedite stroku texta: \n");

gets(s);

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

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

if ((s[l]=='0')&&(s[l-1]==' '))

{  S=0;

n=0;

for (k=l; s[k+1]!=' '; k++)

           {  S+=int(s[k]);

           n++; }

if (S==0)

  for (m=l; m<l+n-1; m++)

           s[m]=s[m+1];

else

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

           s[i]=s[i+1]; }

puts(s);

getch();

return 0; }

 

 

Пример 46. Вывести в выходной поток последовательность симв.

Пример 48. Вывести в выходной поток последовательность симв.

k) заменить все комбинации символов child комбинациями символов children;

# include <stdio.h>

# include <iostream.h>

# include <conio.h>

# include <string.h>

char s[100];

char a, b;

int i, j, l, k;

void main()

{ puts("Vvedite stroku texta: \n");

gets(s);

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

if ((s[l]=='c')&&(s[l+1]=='h')&&(s[l+2]=='i')&&(s[l+3]=='l')&&(s[l+4]=='d'))

{  k=l+4;

for (i=strlen(s)+1; i>k; i--)

s[i+1]=s[i];

s[k+1]='r';

k=l+5;

for (i=strlen(s)+1; i>k; i--)

s[i+1]=s[i];

s[k+1]='e';

k=l+6;

for (i=strlen(s)+1; i>k; i--)

s[i+1]=s[i];

s[k+1]='n';

} puts(s);

getch(); }

Пример 49. Вывести в выходной поток последовательность симв.

 l) удалить группы символов, расположенные между фигурными скобками { и }. Скобки тоже должны быть удалены.

# include <stdio.h>

# include <iostream.h>

# include <conio.h>

# include <string.h>

char s[100];

char a, b;

int i, j, l, m, k, n;

void main()

{ puts("Vvedite stroku texta: \n");

gets(s);

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

if (s[i]=='{')

{ for (k=i; s[k-1]!='}'; k++)

    if (s[k]=='}')

    m=k;

for (k=i; k!=m+1; k++)

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

    s[j]=s[j+1];

} puts(s);

getch(); }

Пример 50. a) удалить из каждой группы подряд идущих цифр, в которой более двух цифр и которой предшествует точка, все цифры, начиная с третьей.

# include <stdio.h>

# include <iostream.h>

# include <conio.h>

# include <string.h>

char s[100], z[100];

char a, b;

int i, j, l, k=-1, x, m, n;

int main()

{ puts("Vvedite stroku texta: \n");

gets(s);

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

 {  m=0;  j=x;

do

{ j++;

if (s[j]=='.')

m=j; //index tochki

}

while (s[j]!='.');

l=0;

do

{  j++;

if ((s[j]>='0')&&(s[j]<='9'))

l++; //kol-vo cifr posle tochki

}

while((s[j]>='0')&&(s[j]<='9'));

if (l>2) //esli cifr posle tochki bolshe 2, to

{   //sdvigat' cifri, poka oni cifri, nachinai s elementa s indexom (m+3)

for (n=1; n<l-1; n++)

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

s[i]=s[i+1];

} }

puts(s);

getch();

return 0;

Пример 51. b) удалить из каждой группы цифр, которой не предшествует точка, все начальные нули (кроме последнего, если за ним идет точка либо в этой группе нет других цифр, кроме нулей

# include <stdio.h>

# include <iostream.h>

# include <conio.h>

# include <string.h>

char s[100], z[100];

char a, b;

int i, j, l, k, x=-1, m, n;

void main()

{ puts("Vvedite stroku texta: \n");

gets(s);

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

{

do

 {   x++;

if (s[x]=='0')

{  m=0;

n=0;

for (i=x+1; ((s[i]>='0')&&(s[i]<='9')); i++)

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

        m++; //kol-vo nulevih el-tov posle naidennogo nulia

        else

        n++; //kol-vo nenulevih el-tov posle naidennogo nulia

}  }

while (s[x]!='0');

if (s[x-1]!='.')

{ if (n==0)

for (k=1; k<=m; k++)

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

s[j]=s[j+1];

else

for (k=1; k<=m+1; k++)

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

s[j]=s[j+1];

} }

puts(s);

getch(); }

 

 

Пример 52. Исследование последствий выхода индекса элемента за границу массива.

Организовать цикл, в котором парами (х [0], у [0], затем х [1], у [1] и т.д.) вводятся значения элементов массивов х и b.

#include <stdio.h>

#include <conio.h>

int main()

{ int n=-1,x[3],y[3],i;

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

{ printf("Vvedite x[%d]:",i);

scanf("%d",&x[i]);

printf("Vvedite y[%d]:",i);

scanf("%d",&y[i]);

}

 printf("Vvedite x[%d]:",i);

 scanf("%d",&x[3]);

 printf("Vvedite y[%d]:",i);

 scanf("%d",&y[i]);

getch();

return 0; }

Пример 53. Определение длины одномерного массива. В функции main описан (без указания количества элементов) и инициализирован массив arrDbl из значений типа double. Результатом применения операции sizeof к имени массива является размер массива в байтах.

#include <stdio.h>

#include <conio.h>

void main()

{ double arrDbl[]={1.3,1.5,2.8,1.7,1.1,2.1,2.2};

 int i,size;

 size=sizeof(arrDbl)/sizeof(arrDbl[i]);

 printf("Razmer dannogo massiva=%d\n",size);

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

printf("arrDbl[%d]=%.3f\t razmer=%f\n",i,*(arrDbl+i),sizeof(*(arrDbl+i)));

getch();

}

Пример 54. Использование указателей для доступа к элементам массива. Описать одномерный массив arr из 5 элементов типа int.

Ответ:4.4,9,4,9,21,8,8

Пример56. Написать программу, которая в отдельных строках выводит информацию о размере каждого из базовых типов языка (char, short, int, long, float, double, long double).

#include <stdio.h>

#include <conio.h>

int main()

{  char *p_char,*cd;

 short *p_short;

 int *p_int;

 long *p_long;

 float *p_float;

 double *p_double, *dc;

 long double *p_long_double;

printf("sizeof:\n");

printf("-char=%u\n",sizeof(char));

printf("-short=%u\n",sizeof(short));

printf("-int=%u\n",sizeof(int));

printf("-long=%u\n",sizeof(long));

printf("-float=%u\n",sizeof(float));

printf("-double=%u\n",sizeof(double));

printf("-long double=%u\n\n\n",sizeof(long double));

Пример 57. Написать программу, в которой определяются переменные типов char, int, double.

Для каждой переменной программа выводит (в строку) ее адрес и значения выражений " адрес + 2 " и " адрес – 1 "

#include <stdio.h>

#include <conio.h>

int main()

{ char c;

int i;

double d;

printf("tip peremennoi \t adres perem\t adres+2 \t adres-1\n");

printf("char \t\t %p \t\t %p \t\t %p\n",&c,&c+2,&c-1);

printf("int \t\t %p \t\t %p \t\t %p\n",&i,&i+2,&i-1);

printf("double \t\t %p \t\t %p \t\t %p\n",&d,&d+2,&d-1);

getch();

return 0; }

Пример 58. Какие результаты будут получены при выполнении следующего фрагмента программы и почему?

int x=8, y=3;

float z1, z2;

z1=x/y;

z2=(float)x/y;

printf("x/y=%f\n",z1);

printf("(float)x/y=%f\n",z2);

Ответ:2, 2,666

Пример 59. Написать программу, которая поочередно выводит в шестнадцатеричной форме значения байтов представления переменной ul

unsigned long ul=0x77BBCCDD.

# include <stdio.h>

#include <conio.h>

#include <windows.h>

int main()

{

 unsigned long ul=0x77BBCCDD,*pUL=&ul,razm;

 unsigned char *pb;int i=1,j=0;

 razm=sizeof(ul);

 pb=(unsigned char*)pUL;

 printf("byte\t chislo\n\n");

 while(j++!=razm)

{

printf("%i\t %x \n",i++,*pb);

pb++;

} getch();

}

Пример 60. Написать функцию print_arr, которая предназначена для вывода на экран значений элементов типа int из одномерного массивов любой длины.

# include <stdio.h>

#include <conio.h>

void print_arr(int arr[],int len);

int main()

{

 int x[7]={1,15,8,14,5,16,2},len;

 len=sizeof(x)/sizeof(x[0]);

 print_arr(x,len);

 getch();

}

void print_arr(int *a,int len)

{  int i, COLUMS,cout;

 do

{ printf("Kolichestvo elementov v stroke=");

scanf("%d",&COLUMS);}

while (COLUMS<0);

 for(i=0,cout=0; i!=len; i++,cout++)

{ if (cout==COLUMS) {cout=0; printf("\n");}

printf("arr[%d]=%d\t",i,*(a+i));

}

return; }

Пример 61. В функции print_arr использовать синтаксис с квадратными скобками. П рименяя операцию sizeof к аргументу- массиву.

#include <stdio.h>

#include <conio.h>

void print_arr(int arr[],int len);

int main()

{ int x[7]={1,15,8,14,5,16,2},len;

 len=sizeof(x)/sizeof(x[0]);

 print_arr(x,len);

 getch();

}

void print_arr(int *a,int len)

{  int i, COLUMS,cout;

 do

{ printf("Kolichestvo elementov v stroke=");

scanf("%d",&COLUMS);}

while (COLUMS<0);

 

for(i=0,cout=0;i!=len;i++,cout++)

{

if (cout==COLUMS) {cout=0; printf("\n");}

printf("arr[%d]=%d\t",i,*(a+i));

}

printf("\n\n");

printf("sizeof(a)=%d",sizeof(a)/sizeof(int));

return;

}

 Пример 62. Написать функцию get_arr, которая предназначена для заполнения значениями одномерных массивов произвольной длины. Функция имеет два аргумента

  а) arr — массив значений типа int;

  б) len — длина массива.

#include <stdio.h>

#include <conio.h>

const int perem=7;

void print_arr(int arr[],int len);

void get_arr(int *arr,int len);

void main()

{

 int x[perem], len;

 get_arr(x,7);

 print_arr(x,7);

 getch();

}

void print_arr(int *a,int len)

{

 int i, COLUMS,cout;

 do

{

printf("\nKolichestvo elementov v stroke=");

scanf("%d",&COLUMS);}

while (COLUMS<0);

for(i=0,cout=0;i!=len;i++,cout++)

{

if (cout==COLUMS) {cout=0; printf("\n");}

printf("arr[%d]=%d\t",i,*(a+i));

}

printf("\n\n");

printf("sizeof(a)=%d",sizeof(a)/sizeof(int));

return;

}

void get_arr(int *arr,int len)

 { int i;

printf("Vvedite znacheniya elementov:\n");

for(i=0;i<=len-1;i++)

{ printf("arr[%d]=\t",i);scanf("%d",&arr[i]);

}

return;  }


 

Пример 63. Размер массива в функции main определить с помощью именованной константы ARRAY_LENGTH, определяемой препроцессорной директивой:

   int a[ARRAY_LENGTH];

#include <stdio.h>

#include <conio.h>

const int ARRAY_LENGTH=7;

void print_arr(int arr[],int len);

void get_arr(int *arr,int len);

void main()

{

 int x[ARRAY_LENGTH],len;

 get_arr(x,ARRAY_LENGTH);

 print_arr(x,len);

 getch();

}

void print_arr(int *a,int len)

{ int i, COLUMS,cout;

 do

{

printf("\nKolichestvo elementov v stroke=");

scanf("%d",&COLUMS);}

while (COLUMS<0);

for(i=0,cout=0;i!=len;i++,cout++)

{

if (cout==COLUMS) {cout=0; printf("\n");} printf("arr[%d]=%d\t",i,*(a+i));

}  printf("\n\n");

printf("sizeof(a)=%d",sizeof(a)/sizeof(int));

 return;

}

void get_arr(int *arr,int len)

{

 int i;

 printf("Vvedite znacheniya elementov:\n");

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

{ printf("arr[%d]=\t",i);scanf("%d",&arr[i]);

} return; }

 

Пример 64. Двумерные массивы, как аргументы функций. Передача двумерного массива в функцию. адресная арифметика, n - количество элементов, выводимых в строке таблицы

 (размерность задаётся по N2)) */

#include <stdio.h>

#define N1 3

#define N2 3

//void get_arr(int (*ptr)[3], int); //тоже правильный вариант

void get_arr(int arr[][3], int);

void print_arr(int arr[][3], int);

void print_arr_second(int*, int, int, int);

int main(){

int a[N1][N2],r;

get_arr(&a[0],N2);

print_arr(&a[0],N2);

printf("\nВведите количество элементов, выводимых в строке n = ");

           scanf("%d",&r);

print_arr_second(&a[0][0],N1,N2,r);

           printf("\n");

           return 0;

}

//void get_arr(int (*ptr)[3], int len)

void get_arr(int arr[][3], int len){

printf("Введите значения элементов массива:\n");

           for(int i=0;i<len;i++)

                          for(int j=0;j<len;j++){

           printf("arr[%d][%d] = ",i,j);

                          scanf("%d",&arr[i][j]);

                          }

} void print_arr(int arr[][3], int len)

{ for(int i=0;i<len;i++)

           { for(int j=0;j<len;j++)

           printf("%d ",arr[i][j]);

                          printf("\n");

           }

} void print_arr_second(int* arr, int len1, int len2, int n){

           int k=1;

           for(int i=0;i<len1;i++)

           for(int j=0;j<len2;j++,k++){

           printf("%d ",*(arr+i*len2+j));

                          if(!(k%n))

           printf("\n");

           } }

Пример 65. Написать три функции, которые получают строку, подсчитывают и

возвращают ее длину, но для работы со строкой используют разные циклы: while, for, do...while.

#include <stdio.h>

#include <stdlib.h>

//#include <conio.h>

const int M=50;

int count_wh(char*);

int count_for(char*);

int count_dwh(char*);

int main(){

           char str[M];

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

           gets(str);

printf("%s - %d знаков.\n",str,count_wh(str));

printf("%s - %d знаков.\n",str,count_for(str));

           printf("%s - %d знаков.\n",str,count_dwh(str));

str[0]=getch;

return 0;

}

int count_wh(char* s){     //на русском одна буква считается как две

           int i=0;

           while(s[i]!='\0')

                          i++;

return i;

} int count_for(char* s){

           int i;

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

return i;

} int count_dwh(char* s){

           int i=-1;

           do i++;

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

           if(i==-1)

                          i=0;

return i;

}

Пример 66. Написать три функции, которые получают строку и копируют ее в другую строку, используя разные циклы: while, for, do...while.

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

const int M=50;

void copy_wh(char*, char*);

void copy_for(char*, char*);

void copy_dwh(char*, char*);

int main(){

           char str[M],str1[M];

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

           gets(str);

           copy_wh(str,str1);

           printf("%s\n%s\n",str,str1);

           copy_for(str,str1);

           printf("\n%s\n%s\n",str,str1);

           copy_dwh(str,str1);

           printf("\n%s\n%s\n",str,str1);

           str[0]=getch;

return 0;

}

void copy_wh(char* s, char* s1){

           int i=0;

           while(s[i]!='\0'){

           s1[i]=s[i];

                          i++;

           }

           s1[i]='\0';

} void copy_for(char* s, char* s1){

           int i;

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

                          s1[i]=s[i];

           s[i+1]='\0';

} void copy_dwh(char* s, char* s1){

           int i=0;

           do{ s1[i]=s[i];

                          i++;

           }    while(s[i]!=0);

           s[i]='\0'; }

 

Пример 67. Написать программу, в которой

        ввести строку, состоящую из латинских букв и цифр;

        подсчитать количество букв и цифр, входящих в эту строку, напечатать

        текст "В строке... букв и... цифр". Проверять, является ли символ

        буквой или цифрой, по коду символа

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

const int M=50;

int main(){

        char str[M];

        int i=0,b=0,c=0;

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

        gets(str);

        while(str[i]!='\0'){

        if(str[i]>=48&&str[i]<=57)

        c++;

        else

        if((str[i]>=65&&str[i]<=90)||(str[i]>=97&&str[i]<=122))

        b++;

        i++;

        } printf("В строке %d букв и %d цифр.\n",b,c);

str[0]=getch; return 0; }

Пример 68. Написать программу, в которой ввести строку, состоящую из латинских букв и цифр;разбить исходную строку на две. Создать новую строку.

#include <stdio.h>

#include <stdlib.h>

//#include <conio.h>

const int M=50;

int main(){

        char str[M],str1[M],str2[M];

        int i=0,k=0,l=0;

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

        gets(str);

        while(str[i]!='\0'){

                       if(str[i]>=48&&str[i]<=57){

                       str1[k]=str[i];

        k++;

        } else

        if((str[i]>=65&&str[i]<=90)||(str[i]>=97&&str[i]<=122)){ str2[l]=str[i];

                       l++; }

                       i++;

        } str1[k]='\0';

        str2[l]='\0';

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

                       str[i]=str1[i];

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

                       str[i+k]=str2[i];

        str[k+l]='\0';                      printf("%s\n%s\n%s\n",str1,str2,str);

str[0]=getch;

return 0; }

 

Пример 69. Написать программу, в которой

  1. Ввести две символьных строки и распечатать в виде "Первая строка:..." и "Вторая строка:...".

  2. Проверить, сколько первых символов в строках совпадают.

#include <stdio.h>

#include <stdlib.h>

//#include <conio.h>

const int M=50;

int main(){

           char str1[M],str2[M],str[M*2],str3[M*2];

           int i=0,k=0,l=0;

           bool flag1=true,flag2=true;

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

           gets(str1);

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

           gets(str2);

           system("clear"); //заменить на clrscr и раскоментить <stdio.h>

           while((str1[i]!='\0'||str2[i]!='\0')&&str1[i]==str2[i])

                          i++;

           printf("Совпало символов: %d\n",i);

           for(int j=i;(j<M)&&(flag1||flag2);j++){

                          if(str1[j]!='\0'&&flag1)

                                          k++;

                          else

                                          flag1=false;

                          if(str2[j]!='\0'&&flag2)

                                          l++;

                          else

                                          flag2=false;

           } printf("В первой и второй строке осталось %d и %d символов соответственно.\n",k,l);

           for(int j=0;j<k;j++)

                          str[j]=str1[j+i];

           for(int j=k;j<(k+l);j++)

                          str[j]=str2[j-k+i];

           str[k+l]='\0';

           printf("%s\n",str);

           int r=0,j=0;

           for(int f=0;f<(i+i+k+l);f++){

                          if(str1[j]!='\0'){

                          str3[r]=str1[j];

                                          r++;

                          }

                          if(str2[j]!='\0'){

                          str3[r]=str2[j];

                          r++;

                          }  j++;

           } str3[r-2]='\0';

           printf("%s\n",str3);

           str[0]=getch;

return 0;

}

Пример 70. Ввести cтроку, содержащую десятичное число с дробной частью.

Подсчитать и вывести число цифр в целой части числа в виде "

Целая часть числа... содержит... цифр".

Пример 76. Создать список фамилий в виде одной символьной строки. В цикле в режиме диалога вводить фамилию и выводить сообщение, есть ли такой человек в списке.

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <conio.h>

int main(){

           char ch,s[]="1. Иванов И.И. 2. Петров П.П. 3. Сидоров С.С. 4. Александров А.А.",*str;

           char* s1=(char*)malloc(10);

           do{

printf("Введите фамилию:\n");

                          str=NULL;

                          gets(s1);

                          str=strstr(s,s1);

                          if(str)

printf("Человек найден под номером %c\n",str[-3]);

           else

printf("Человек остутствует.\n");

printf("Повторить поиск? (y/n): ");

ch=getch();

printf("\n");

} while(ch=='y');

free(s1);

return 0; }

Пример 77. Написать программу, в которой описать строку s. Заменить символы с третьего по пятый на "минус", а с шестого и до конца строки - на "плюс".

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int main(){

           char str[]="1234567890",*s;

           s=str;

           s+=3;

           s=strnset(s,'-',3);

           s+=3;

           s=strset(s,'+');

           s-=6;

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

return 0; }

Пример 78. ввести строку; с помощью функций str _ dup () и strdup () создать две копии введенной строки; вывести на экран две копии строки.

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

char* str_dup(const char*);

int main(){ char *s,*s_,*str=(char*)malloc(10);

    gets(str);

    s=strdup(str);

    s_=str_dup(str);

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

    printf("%s\n",s_);

    free(s_);

    free(s);

    free(str);

return 0;

} char* str_dup(const char* s){

    char *s1=(char*)malloc(strlen(s));

    s1=strcpy(s1,s);

return s1; }

Пример №2. Ввести число и определить, оно больше нуля, меньше или равно.

# include <conio.h>                                      

# include <stdio.h> 

Int main ()

{ Int n;

printf(“vvedite n\n”);

scanf(“%d”,&n);

if(n>0) printf(“n>0\n”);

else if (n<0) printf(“n<0\n”);

else printf(“n=0\n”);

return 0; }

Пример №3. Программа, которая запрашивает у пользователя № месяца и затем выводит соответ-ее название времени года. # include <conio.h>                                   



Поделиться:


Последнее изменение этой страницы: 2021-08-16; просмотров: 336; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.0.25 (0.936 с.)