Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
37
Добавлен:
02.05.2014
Размер:
225.28 Кб
Скачать

Void main()

{

clrscr();

m=0;

for (j=0;j<n;j++,m++)

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

sum[m] += c[i][j];

for (j=0;j<n;j++,m++)

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

sum[m] += c[j][i];

for (j=0,i=0;j<n;j++,i++)

sum[m] += c[j][i];

m++;

for (j=n-1,i=n-1;j>=0;j--,i--)

sum[m] += c[j][i];

for (i=0;i<m;)

{

if (sum[i] != sum[i+1])

{

printf("No");

break;

}

else

i++;

}

if (i==m)

printf ("Yes");

getch();

}

*************************************16 - 4

Выдать на экран монитора битовое содержание заданной переменной типа float.

#include<conio.h>

#include<stdio.h>

void preds(unsigned char*b)

{

for(int i=7;i>=0;i--)

printf("%d",(*b >> i) & 1);

printf(" ");

}

Void main()

{

int i;

float ch=123.5123421;

unsigned char*b;

clrscr();

printf("\n\nF l o a t %f\n", ch);

b = (unsigned char*) & ch;

for(i=0; i<sizeof(float); i++)

preds(b++);

getch();

}

*************************************17 - 3

В массиве А содержится информация о принадлежности чисел 1..N (N<=10000) некоторому множеству S. Бит с номером i массива равен 1, если число i принадлежит множеству, и нулю в противном случае. Напишите функцию удаления числа k, введенного с клавиатуры, из множества S.

char mask[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

void del(char*k)

{

int num;

scanf("%d",&num);

k[num/8]=k[num/8]&~mask[k%8];

}

*************************************17 – 4

Дан массив А[n]. Каждый его элемент, кроме первого, заменить суммой всех предыдущих элементов (т.н. нарастающий итог).

#include<conio.h>

#include<stdio.h>

int a[]={1,6,43,2,5,7,34,2};

int n=sizeof(a)/sizeof(int);

int i,j,k=n-1;

Void main()

{

clrscr();

for(i=n;i>0;i--,k--)

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

a[k]+=a[j];

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

printf(" %d ",a[i]);

getch();

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

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

a[k]+=a[j];

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

printf(" %d ",a[i]);

getch();

}

*************************************18 - 3

*************************************18 - 4

Найти наибольший общий делитель n натуральных чисел.

# include <stdio.h>

const n=5;

Void main()

{ int del;

int mas[n]={4,4,4,12,44};

for (int i=1,min=mas[0];i<n;i++)

if (min>mas[i]) { min=mas[i];}

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

if (min%i==0)

{ int flag=1;

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

if (mas[j]%i!=0) flag=0;

if (flag) del=i;

}

}

*************************************19 - 3

Найти все простые числа от 1 до N (N<=10000), используя алгоритм ‘ решето Эратосфена ’

#include<stdio.h>

#include<conio.h>

char mask[] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

Void main()

{

clrscr();

const long MAX=10000;

char newMAX[MAX/8];

for(long i=0;i<MAX/8;i++)

newMAX[i]=0xFF;

for(i=2;i<=MAX/2;i++)

if(newMAX[i/8] & mask[i%8])

{

long d=2*i;

for(;d<MAX;d+=i)

newMAX[d/8] &= ~mask[d%8];

}

for(i=2;i<MAX;i++)

{

if(newMAX[i/8] & mask[i%8])

{

printf("%8lu",i);

if (wherey() == 25)

{

getch();

clrscr();

}

}

}

getch();

}

*************************************19 - 4

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

#include<conio.h>

#include<stdio.h>

char str[]="You are FuCkEr!!! 234 asd2 12!@DSfS#@#sDFHd32";

int n=sizeof(str)/sizeof(char);

int i;

Соседние файлы в папке Програмки на C++