- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Максимальная сумма элементов из нескольких массивов(функция с переменным числом параметров)
- •Int main()
- •Int main()
- •Int main()
- •Замена абсолютно любых слов местами (просто в программе цифорки нужные поменять) Где цифры жирные там менять по ситуации
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Строка в числа(в комментах код для подсчёта количества слов или чисел в строке рекурсией, это тоже где-то надо, вроде бы)
- •Int main()
- •Int main()
- •Int main()
Рекурсивное транспонирование по главной диагонали
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
void Transpone(int **arr,int size)
{
int i=size-1, j=0;
if(i>0)
{
while(j<i)
{
int temp=arr[i][j];
arr[i][j]=arr[j][i];
arr[j][i]=temp;
j++;
}
size--;
Transpone(arr,size);
}
return;
}
int main()
{
int **A;
int i,j,size;
printf("Enter,how many strings and colomns do you want: ");
scanf("%d",&size);
A=(int**)malloc(size*sizeof(int*));
for(i=0;i<size;i++)
A[i]=(int*)malloc(size*sizeof(int));
for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
{
printf("Element[%d][%d]= ",i,j);
scanf("%d",&A[i][j]);
}
}
for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
printf("%-4.d ",A[i][j]);
printf("\n\n\n\n");
}
Transpone(A,size);
printf("\n\n\n\n");
for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
printf("%-4.d ",A[i][j]);
printf("\n\n\n\n");
}
for(i=0;i<size;i++)
free(A[i]);
free(A);
getch();
return 0;
}
Перемножение матриц
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
void Birth(float**&arr,int str, int col)
{
int i;
arr=(float**)malloc(str*sizeof(float*));
for(i=0;i<str;i++)
arr[i]=(float*)malloc(col*sizeof(float));
}
void Multiply(float** a,float** b,float** c,int str,int inner,int col)
{
int i,j,k;
i=0;
do
{
j=0;
do
{
c[i][j]=0;
k=0;
do
{
c[i][j]+=a[i][k]*b[k][j];
k++;
}
while(k<inner);
j++;
}
while(j<col);
i++;
}
while(i<str);
}
void Free( float** arr,int str)
{
int i;
for(i=0;i<str;i++)
free (arr[i]);
free(arr);
}
Int main()
{
float **A,**B,**C;
int strings_a,colomns_a,strings_b,colomns_b;
int i,j;
printf("Enter,how manн strings do you want in matrix A: ");
scanf("%d",&strings_a);
printf("Enter,how many colomns do you want in matrix A and how many strings do you want im matrix B: ");
scanf("%d",&colomns_a);
strings_b=colomns_a;
printf("Enter,how many colomns do you want in matrix B: ");
scanf("%d",&colomns_b);
A=(float**)malloc(strings_a*sizeof(float*));
for(i=0;i<strings_a;i++)
A[i]=(float*)malloc(colomns_a*sizeof(float));
for(i=0;i<strings_a;i++)
for(j=0;j<strings_b;j++)
{
printf("Element [%d][%d]= ",i,j);
scanf("%f",&A[i][j]);
}
for(i=0;i<strings_a;i++)
{
for(j=0;j<colomns_a;j++)
printf("%4.1f ", A[i][j]);
printf("\n\n\n");
}
B=(float**)malloc(strings_b*sizeof(float*));
for(i=0;i<strings_b;i++)
B[i]=(float*)malloc(colomns_b*sizeof(float));
for(i=0;i<strings_b;i++)
for(j=0;j<colomns_b;j++)
{
printf("Element [%d][%d]= ",i,j);
scanf("%f",&B[i][j]);
}
for(i=0;i<strings_b;i++)
{
for(j=0;j<colomns_b;j++)
printf("%4.1f ", B[i][j]);
printf("\n\n\n");
}
Birth(C,strings_a,colomns_b);
Multiply(A,B,C,strings_a,colomns_a,colomns_b);
printf("\n*/////////////RESULT\\\\\\\\\\\\\\*\n\n");
for(i=0;i<strings_a;i++)
{
for(j=0;j<colomns_b;j++)
printf("%4.2f ", C[i][j]);
printf("\n\n\n");
}
Free(C,strings_a);
for(i=0;i<strings_a;i++)
free(A[i]);
free(A);
for(i=0;i<strings_b;i++)
free(B[i]);
free(B);
getch();
return 0;
}
Реверс побочной диагонали
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
void Revers(int **arr,int str,int col)
{
int i,j;
i=str-1;
j=col-str;
if(i>j)
{
int temp=arr[i][j];
arr[i][j]=arr[j][i];
arr[j][i]=temp;
str--;
Revers(arr,str,col);
}
}
Int main()
{
int **A;
int strings,colomns,i,j,size=0;
printf("Enter,how many strings do you want: ");
scanf("%d",&strings);
printf("Enter,how many colomns do you want: ");
scanf("%d",&colomns);
A=(int**)malloc(strings*sizeof(int*));
for(i=0;i<strings;i++)
A[i]=(int*)malloc(colomns*sizeof(int));
for(i=0;i<strings;i++)
for(j=0;j<colomns;j++)
{
printf("Element[%d][%d]= ",i,j);
scanf("%d",&A[i][j]);
}
for(i=0;i<strings;i++)
{
for(j=0;j<colomns;j++)
printf("%-4.d ",A[i][j]);
printf("\n\n\n\n");
}
Revers(A,strings,colomns);
printf("\n\n\n\n");
for(i=0;i<strings;i++)
{
for(j=0;j<colomns;j++)
printf("%-4.d ",A[i][j]);
printf("\n\n\n\n");
}
for(i=0;i<strings;i++)
free(A[i]);
free(A);
getch();
return 0;
}
Сравнение через командную строку, что-то такое
#include <stdio.h>
#include <malloc.h>
int StringLength(char* string)
{
int i=0;
while(string[i])
i++;
return i;
}
int StringCompare(char* string1, char* string2)
{
int i,j;
for(i=0,j=0;string1[i] && string2[j];i++,j++)
{
if (string1[i]<string2[j])
return -1;
else
if(string1[i]>string2[j])
return 1;
}
if(string1[i]=='\0' && string1[i]=='\0')
return 0;
if(string1[i]=='\0' && string2[j]!='\0')
return -1;
else
if(string2[j]=='\0'&& string1[i]!='\0')
return 1;
}
void main(int argc, char* argv[])
{
int i,j;
int compare_result;
int lenall=0,lenone=0;
char *result;
for(i=1;i<argc;i++)
for( j=i+1;j<argc;j++)
{
compare_result=StringCompare(argv[i],argv[j]);
if(compare_result==1)
{
char *temp;
temp=argv[j];
argv[j]=argv[i];
argv[i]=temp;
}
}
for(i=1;i<argc;i++)
printf("%s ",argv[i]);
}
Этот код можно использовать для нескольких задач, просто надо его надо подстроить по ситуации, сейчас это код: один массив по убыванию, второй – по возрастанию (всё без сортировок), в третий по возрастанию
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
void Array(int*arr1,int*arr2,int*arr3,int size1,int size2)
{
int i,j,k;
for(i=0,j=size2-1,k=0;(i<size1 && j>=0);k++)
{
if(arr1[i]<arr2[j])
{
arr3[k]=arr1[i];
i++;
}
else
{
arr3[k]=arr2[j];
j--;
}
}
while(i<size1)
{
arr3[k]=arr1[i];
i++;
k++;
}
while(j>=0)
{
arr3[k]=arr2[j];
j++;
k++;
}
}
