Вы находитесь на странице: 1из 1

1. создать список из 20 целых 1. создать список из 20 целых 1. создать список из 20 1. 1. 1.

случайных чисел в диапозоне от случайных чисел действительных чиселint a[n], i, j;


-20 до 50 #include <stdio.h> #include <stdio.h>
#include <stdio.h> #include <stdlib.h> #include <stdlib.h>
#include <stdlib.h> struct nod{ struct nod{
struct nod{ int value; float value;
int value; nod *next; nod* next;
nod *next; nod(int n, nod* x){ nod(float n, nod* x) {
nod(int n, nod* x){ value=n; value=n;
value=n; next=x; }}; next=x; }};
next=x; }}; void Main(){ void Main(){
void Main(){ nod *sp; nod *sp;
nod *sp; nod *p; nod *p;
nod *p; for(int i=0;i<20;i++){ for(int i=0;i<20;i++){
for(int i=0;i<20;i++) { int tmp=rand(); float tmp;
int tmp=rand()%31 +20; sp=new nod(tmp, p); p=sp; scanf("%f", &tmp):
sp=new nod(tmp, p);p=sp;} }while(p){ sp=new nod(tmp, p);p=sp;}
while(p){ printf("%d ", p->value); printf("%d ", p->value); while(p) {printf("%d ", p->value);
p=p->next;}} p=p->next;}} p=p->next;}}
2. за один проход по списку 2. за один проход по списку 2. за один проход по списку найти 2. 2. 2
найти max и min найти 2 max элемента max из отрицательных и min из
int max=-32768, min=32767; int max1=-32768, max2=-32768; положительных элементов
while(p) while(p) int max=-1, min=32767;
{ {if(p->value>max1) while(p)
if(p->value>max) { {
max=p->value; max2=max1;max1=p->value; if(p->value<0 && p->value<max)
if(p->value<min) } max=p->value;
min=p->value; else if(p-value>=0 && p->value<min)
p=p->next; if(p->value>max2) min=p->value;
} max2=p->value; p=p->next;
p=p->next; }
}

3. вывести двумерный массив с 3. Заполнить двумерный 3. Заполнить двумерный массив 3. Заполнить двумерный массив 3. Заполнить двумерный массив числами 3. Заполнить двумерный массив числами 0,1,-2,4,-
клавиатуры массив случайными числами в случайными числами в диапазоне числами 0,1,2,3,… 0,1,2,4,8,16,… 8,16,-32,…
for (i=0; i<n; i++){ диапазоне -20..100 -200..10 с=0; c=0; c=0;
for (i=0; j<m; j++); for ( i = 0; i < M; i ++ ) for ( i = 0; i < M; i ++ ) for ( i = 0; i < M; i ++ ) for(i=0;i<n;i++){ for(i=0;i<n;i++){
scanf(“%d”, &a[i][j]); } for ( j = 0; j < N; j ++ ) for ( j = 0; j < N; j ++ ) for ( j = 0; j < N; j ++ ) for(j=0;j<m;j++){ for(j=0;j<m;j++){
A[i][j] = random(121) + 20; A[i][j] = random(-189) + 200; A[i][j] = с++; if(i==0&&j<1) if(i==0&&j<1)
a[i][j]=c++; a[i][j]=c++;
else{ a[i][j]=c;c*=2;} else{ a[i][j]=c;c*=-2;}
printf("%d ",a[i][j]); } printf("%d ",a[i][j]); }
printf("\n"); } printf("\n"); }
4. вывести 3 числа с клавиатуры и 4. вывести 3 числа с 4. Нарисовать прямоугольный 4. Ввести два числа и определить, 4. Вывести три числа с клавиатуры и 4. Найти максимальную цифру в трехзначном
определить, является ли клавиатуры и определить, треугольник из звездочек. делится ли одно из них нацело на определить, сколько одинаковых чисел числе
введенная последовательность сколько в них есть For (i=0; i<10; i++){ другое. Предусмотреть защиту от введено a=(n/100);
возрастающей, убывающей или положительных чисел For(j=10; j>I; j-- ) деления на ноль if(a==b&&b==c) printf("3"); b=((n%100)/10);
неупорядоченной scanf("%d%d%d",&a,&b,&c); Printf(“_”); int a,b; else c=(n%10);
int a,b,c; printf("%d",(a>0)+(b>0)+(c>0)); For(z=0; z<=I; z++) scanf("%d%d", &a, &b); if(a==b||b==c||a==c) printf("2"); max=a;
scanf("%d%d%d",&a,&b,&c); Printf(“*”); if(b==0) printf("nelzia delit na 0"); else printf("net ravnih"); if(b>max) max=b;
if(a>b && b>c) Printf(“\n”); else { if(c>max) max=c;
printf ("ubivaiusiaia"); } if(a%b==0) printf("Da"); printf("%d",max);
else if (a<b && b<c) else ("no");}
printf("vozrastaiusia"); return 0;
else
printf("neuporiadoc");
 
5. Определить сумму квадратов 5. Определить сумму кубов 5. Определить сумму первой сотни 5. Определить сумму квадратов 5. Определить сумму кубов первой 5. Определить, делится ли введенное
первой сотни натуральных чисел первой сотни натуральных натуральных чисел первой сотни четных натуральных десятки четных натуральных чисел четырехзначное число на сумму своих цифр
int s,i;s=0; чисел int s,i; чисел =0; scanf("%d", &n);
for(i=1; i<=100;i++) =0; s=0; s=0; for(i=0;i<=10;i+=2) if (n%(((n/1000)+((n%1000)/100)+((n%100)/10)+(n
s+=i*I; for(i=0;i<=100;i+=1) for(i=1;i<=100;i++); for(i=0;i<=100; i+=2) s+=i*i*i; %10))==0)) printf("yes");
printf(“%d”,s); s+=i*i*i; s+=i; s+=i*i; else printf("no");
printf(“%d”,s); return 0;

6. int a[100][100]; 6. В двумерном массиве найти 6. int a[100][100]; 6. В двумерном массиве найти сумму 6. В двумерном массиве найти сумму 6. Нарисовать равнобедренный треугольник из
int i,j; минимальный элемент на int flag=1; элементов на побочной диагонали элементов на главной диагонали звездочек.
int flag=1; for(i=0;i<n;i++) главной диагонали for(itn i=0;i<n;i++) int s=0; int s=0; int i, j,t;
for(j=0;j<i;j++) if(a[i][j]!=a[j][i]) min=a[0][0]; for(int j=0;j<m;j++) for (i=0;i<n;i++) for (i=0;i<n;i++) for (i=1; i<=10; i++)
{ flag=0;break;} for (i=0;i<n;i++) if(a[i][j]!=0) {flag=0;break; s+=a[i][n-1-i]; for (j=0;j<m;j++) {
if(flag) for (j=0;j<m;j++) } s+=a[i][j]; for (j=1; j<=10-i; j++) printf(" ");
printf("YES"); else if (a[i][j]<min) if(flag) printf("YES"); else for (t=0; t<=2*i-1; t++) printf("*");
printf("NO"); min=a[i][j]; printf("NO"); printf("\n"); }
7. Найти, сколько 7. Найти, сколько 7. Определить, сколько трехзначных 7. Найти, сколько четырехзначных 7. Определить, сколько четырехзначных 7. Определить, является ли данное число
четырехзначных чисел делится на четырехзначных чисел делится чисел делится на 13 и при этом не чисел делится на 77 и при этом не числе делятся на 99 и при этом не палиндромом
13 и при этом не делится на 2, 3 и на 11 и при этом не делится на делится на 2 и 5 делится на 3 и 5 делятся на 55 scanf("%d",&x);
5 2, 3 и 7 int i,k=0; int i,k=0; int i,k=0; n=x;
int i, count=0; int i,k=0; for(i=1001;i<=10000;i+=13) for(i=1001;i<10000;i+=77) for(i=1001;i<10000;i+=99) while(x>0) {
for (i=1000; i<10000; i++) for(i=1001;i<=10000;i+=11) if((i%2&&(i%5)) if((i%3)&&(i%5)) if(i%5) p=p*10+x%10;
if i%13==0&&i%2!=0&&i%3! if((i%2)&&(i%3)&&(i%7)) k++; k++; k++; x/=10; }
=0&&i%5!=0) count++; k++; printf("%d",k); printf("%d",k); if(n==p) printf("palindrom");
printf(“%d”, count); else printf("ne palindrom");
8. Даны два массива. Массив А 8. Даны два массива. Массив А 8. Даны два массива. Массив А 8. Даны два массива. Массив А 8. Даны два массива. Массив А состоит 8. Даны два массива. Массив А состоит их N
состоит их N элементов и состоит их N элементов и состоит их N элементов и состоит их N элементов и их N элементов и отсортирован по элементов и отсортирован по возрастанию. Массив
отсортирован по возрастанию. отсортирован по возрастанию. отсортирован по убыванию. Массив отсортирован по убыванию. Массив возрастанию. Массив В состоит из В состоит из элементов М отсортирован по
Массив В состоит из элементов М Массив В состоит из В состоит из элементов М В состоит из элементов М элементов М отсортирован по убыванию. Разработать программу для слияния
отсортирован по убыванию. элементов М отсортирован по отсортирован по убыванию. отсортирован по убыванию. убыванию. Разработать программу для этих массивов в отсортированный по убыванию
Разработать программу для возрастанию. Разработать Разработать программу для слияния Разработать программу для слияния слияния этих массивов в массив С, не содержащий одинаковых элементов
слияния этих массивов в программу для слияния этих этих массивов в отсортированный по этих массивов в отсортированный по отсортированный по убыванию массив С i=0;j=m-1;k=n+m-1;
отсортированный по возрастанию массивов в отсортированный возрастанию массив С убыванию массив С i=0;j=m-1;k=n+m-1; while(i<n&&j>=0)
массив С по возрастанию массив С i=n-1;j=m-1;k=0; i=n-1;j=m-1;k=n+m-1; while(i<n&&j>=0) if(a[i]<b[j])
int i,j,z; z=0; i=n-1; j=0; i=j=k=0; while(i>=0&&j>=0) while(i>=0&&j>=0) if(a[i]<b[j]) c[k--]=a[i++];
while (j>=0 && i<m) while(i<n&&j<m) if(a[i]<b[j]) if(a[i]<b[j]) c[k--]=a[i++]; else c[k--]=b[j--];
if (b[i]<a[j]) c[z++]=b[j--] if(a[i]<b[j]) c[k++]=a[i--]; c[k--]=a[i--]; else while(i<n)
else [z++]=a[i++]; c[k++]=a[i++]; else else c[k--]=b[j--]; c[k--]=a[i++];
while(i>=0) else c[k++]=b[j--]; c[k--]=b[j--]; while(i<n) while(j>=0)
c[z++]=a[i--]; c[k++]=b[j++]; while(i>=0) while(i>=0) c[k--]=a[i++]; c[k--]=b[j--];
while(i<n) c[z++]=a[i++]; while(i<n) c[k++]=a[i--]; c[k--]=a[i--]; while(j>=0) for(k=0;k<n+m;k++){
printf("%d",c[z]); c[k++]=a[i++]; while(j>=0) while(j>=0) c[k--]=b[j--]; if(c[k]!=c[k-1])
while(j<m) c[k++]=b[j--]; c[k--]=b[j--]; printf("%d ",c[k]); }
c[k++]=b[j++];
9. Найдите длину самой длинной 9. Многочлен Р(ч) задан 9. Напишите функцию, которая 9. Дан массив A[n]. Каждый его 9. За один проход по одномерному 9. В двумерном массиве найти сумму элементов
цепочки из подряд идущих массивом своих увеличивает на единицу заданное n- элемент, кроме первого, заменить массивы найти 3 минимальных элемента выше главной диагонали
одинаковых элементов в массиве коэффициентов А(n+1). Найти значное двоичное число суммой всех предыдущих элементов if (a[i]<min1){
int i,n=10 ,lm=1,dl=0; массив коэффициентов I=n-1; (т.н. нарастающий итог) min3=min2; min2=min1; min1=a[i];
for(i=1;i<n;i++){ производной этого While (i>=0 && a[i]) }
if(A[i]==A[i-1])dl++; многочлена. A[i--]=0; else if (a[i]<min2){
else { If (i>=0) Min3=min2; min2=a[i];
if(lm<dl)lm=dl; for(int i=0;i<=n;i++) a[i]=1; printf(“1”); }
dl=1;} a[i]=a[i]*i; Else { else if (a[i]<min3)
} For (i=0; i<n; i++) min3=a[i];
if(lm<dl)lm=dl; Printf(“0”);
printf("dlina:%i",lm); }
getch(); }
10. Напишите рекурсивную 10. Напишите программу 10. За один проход по массиву найти 10. За один проход по массиву найти 10. Напишите программу находящую 10. Напишите рекурсивную функцию вычисления
функцию вычисления НОД решета Эратосфена 3 минимальных элемента 3 максимальных элемента сумму первых n чисел ряда Фиббоначи произвольного члена ряда Фиббоначи
Int gcd( int a, int b) #define N 1000 if (a[i]<min1){ If(a[i]>max3){ int a,b,s,n,f;
{ if (b==0) int primes[N]; min3=min2; min2=min1; min1=a[i]; Max1=max2; max2=max3; max3=a[i]; a=b=1; int NOD ( int a, int b ){
return a; void gen-primes(void) } } s=2;
else return gcd(b, a%b) { int i,j; else if (a[i]<min2){ else if (a[i]>max2){ n=n-2; if ( a == b ) return a;
} for(i=0;i<N;i++) Min3=min2; min2=a[i]; max1=max2; max2=a[i]; while(n){
primes[i]=1; } } f=a+b; if ( a < b )
for(i=2;i*i<=N;i++) else if (a[i]<min3) Else if (a[i]>max1) s+=f;
if(primes [i]) min3=a[i]; Max1=a[i]; a=b; return NOD(a,b-a);
for(j=i*i;j<N;j+=i) b=f;
primes [j]=0; n--; else return NOD(a-b,b);}
printf("%d ",f); }