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

Int main()

{

int *A,*B,*C;

int size_a,size_b,size_c;

int i;

printf("Enter the demision of array A: ");

scanf("%d",&size_a);

printf("Enter the demision of array B: ");

scanf("%d",&size_b);

A=(int*)malloc(size_a*sizeof(int));

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

{

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

if(i==0)

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

else

{

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

if(A[i]<A[i-1])

i--;

}

}

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

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

B=(int*)malloc(size_b*sizeof(int));

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

{

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

if(i==0)

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

else

{

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

if(B[i]>B[i-1])

i--;

}

}

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

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

size_c=size_a+size_b;

C=(int*)malloc(size_c*sizeof(int));

Array(A,B,C,size_a,size_b);

printf("\n\n\n\n\n");

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

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

free(A);

free(B);

free(C);

getch();

return 0;

}

Сумма int и float бестиповым указателем

#include<stdio.h>

#include<conio.h>

double Sum(int n, ...)

{

double sum=0;

char c;

int i;

void *p=&n;

p=(int*)p+1;

while(n--)

{

c=*(int*)p;

p=(int*)p+1;

i=*(int*)p;

p=(int*)p+1;

switch(c)

{

case 'f':

while(i--)

{

sum+=*(double*)p;

p=(double*)p+1;

}

break;

case 'i':

while(i--)

{

sum+=*(int*)p;

p=(int*)p+1;

}

break;

}

}

return sum;

}

Int main()

{

double sum=Sum(2,'f',3,1.2,2.3,3.7,'i',2,1,2);

printf("%f",sum);

getch();

return 0;

}

Сумма int и float макросами

#include<stdio.h>

#include<conio.h>

#include<stdarg.h>

enum data

{Int,Float}tp;

float Sum(int k, int l, data tp, ...)

{

float sum=0;

va_list p;

va_start(p,tp);

while(k--)

{

switch(tp)

{

case Float:

while(l--)

sum+=va_arg(p,double);

break;

case Int:

while(l--)

sum+=va_arg(p,int);

break;

}

l=va_arg(p,int);

tp=va_arg(p,enum data);

}

va_end(p);

return sum;

}

Int main()

{

float sum=Sum(3,2,Int,1,1,3,Float,1.4,2.7,4.6,4,Int,4,5,7,8);

printf("%f",sum);

getch();

return 0;

}

Максимальная сумма элементов из нескольких массивов(функция с переменным числом параметров)

#include<stdio.h>

#include<conio.h>

#include<malloc.h>

#define K 3

int MaxSum(int k,int size,float*arr, ...)

{

int i,j=0,sum, maxsum=0 ,maxindex=0;

float**p=&arr;

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

{

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

sum+=p[j][i];

if(sum>maxsum)

{

maxsum=sum;

maxindex=j;

}

}

return maxindex;

}

Int main()

{

int size,i,j,index;

float **array;

printf("Enter, the demision of arrays: ");

scanf("%d",&size);

array=(float**)malloc(K*sizeof(float*));

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

array[i]=(float*)malloc(size*sizeof(float));

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

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

scanf("%f",&array[i][j]);

index=MaxSum(K,size,array[0],array[1],array[2]);

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

printf("%f ",array[index][i]);

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

free(array[i]);

free(array);

getch();

return 0;

}

Вставить строку с n-ой позиции

#include<stdio.h>

#include<conio.h>

#include<malloc.h>

#include<Windows.h>

int GetStr(char*str,int size)

{

int i;

char c;

for(i=0;i<size&&(c=getche())!=13;i++)

{

str[i]=c;

}

str[i]='\0';

return i;

}

void Cancentaticon(char*str1,char*str2,int position)

{

int i,j;

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

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

j+=i;

while(i>position-2)

{

str1[j]=str1[i];

i--;

j--;

}

for(i=position-1,j=0;str2[j]!='\0';i++,j++)

str1[i]=str2[j];

}