Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
B ) только две одинаковые цифры.Стр 1 из 4Следующая ⇒
Пример №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. Написать программу, вычисляющую стоимость междугороднего разговора в соответствии с таблицей:
Входными данными должны являться код города и число минут.На выходе мы должны иметь сообщение о стоимости минуты и сумме за разговор. #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 с.) |