Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Array.cpp : Defines the entry point for the console application.
- //Bài tập mảng
- //Oh vl viết đc Tiếng Việt này!!! :D
- //Tiếng Vieetjtttttttttttt!!!!
- //Vietnamese!!!!!
- //Ờ tất nhiên rồi sao không viết đc chứ??? :v
- //Introduction
- //This use windows.h, so it is only available on Visual Studio
- //Cannot run on Turbo C++
- #include "stdafx.h"
- #include "stdio.h"
- #include "conio.h"
- #include "windows.h"
- #include "WinDef.h"
- #include "stdlib.h"
- int A[100], n, i, j, d, dem, F[100], Back_up[100], Backup_N;
- int _tmain(int argc, _TCHAR* argv[])
- {
- return 0;
- }
- void Input()
- {
- system("cls"); system("color 0f");
- printf("Input the number of the element of the array: "); scanf_s("%d", &n);
- while ((n < 1) || (n > 100))
- {
- printf("Input again: "); scanf_s("%d", &n);
- }
- for (i = 1; i <= n; i++)
- {
- printf("Input the element number %d: ", i); scanf_s("%d", &A[i]);
- }
- system("cls"); Sleep(1000); system("color 0e");
- for (i = 1; i <= n; i++)
- printf("%d ", A[i]);
- Sleep(1000); system("color 0f"); printf("\n");
- for (i = 1; i <= n; i++)
- Back_up[i] = A[i];
- Backup_N = n;
- }
- void Re_order()
- {
- int tg;
- printf("Array in increasing order: ");
- for (i = 1; i < n; i++)
- for (j = i + 1; j <= n; j++)
- if (A[i] >= A[j])
- {
- tg = A[i]; A[i] = A[j]; A[j] = tg;
- }
- for (i = 1; i <= n; i++)
- printf("%d ", A[i]);
- printf("\n"); Sleep(1000);
- printf("Array in dereasing order: ");
- for (i = 1; i < n; i++)
- for (j = i+1; j <= n; j++)
- if (A[i] <= A[j])
- {
- tg = A[i]; A[i] = A[j]; A[j] = tg;
- }
- for (i = 1; i <= n; i++)
- printf("%d ", A[i]);
- printf("\n"); Sleep(1000);
- }
- int Nt(int m)
- {
- int i, dem = 0;
- for (i = 1; i <= m; i++)
- if (m%i == 0) dem++;
- if (dem == 2) return 1;
- else return 0;
- }
- int Cp(int m)
- {
- int i; d = 0;
- for (i = 1; i < m; i++)
- if (i*i == m) d++;
- if (d != 0) return 1;
- else return 0;
- }
- int Hh(int m)
- {
- int S = 0, i;
- for (i = 1; i < m; i++)
- if (m%i == 0) S = S + i;
- if (S == m) return 1;
- else return 0;
- }
- void Find_Number()
- {
- dem = 0;
- printf("Prime number: ");
- for (i = 1; i <= n; i++)
- if (Nt(A[i]) == 1)
- {
- printf("%d ", A[i]); dem++;
- }
- if (dem == 0) printf("None!");
- printf("\n"); dem = 0; Sleep(500);
- printf("Square number: ");
- for (i = 1; i <= n; i++)
- if (Cp(A[i]) == 1)
- {
- printf("%d ", A[i]); dem++;
- }
- if (dem == 0) printf("None!");
- printf("\n"); system("color 0f"); dem = 0; Sleep(500);
- printf("Perfect number: ");
- for (i = 1; i <= n; i++)
- if (Hh(A[i]) == 1)
- {
- printf("%d ", A[i]); dem++;
- }
- if (dem == 0) printf("None!");
- printf("\n"); Sleep(500);
- }
- void Count_Value()
- {
- int d, dem = 0;
- for (i = A[n]; i <= A[1]; i++)
- {
- d = 0;
- for (j = 1; j <= n; j++)
- if (A[j] == i) d++;
- if (d != 0) dem++;
- }
- printf("There are %d different value in the array \n",dem);
- }
- void Insert()
- {
- int x, pos;
- printf("Input the position you want to insert number: "); scanf_s("%d", &pos);
- while ( (pos<1) || (pos>n) )
- {
- printf("Position out of range, "); Sleep(1000);
- printf("Input again: "); scanf_s("%d", &pos);
- }
- printf("Input the number you want to insert: "); scanf_s("%d", &x); n++;
- while ((x < -32768) || (x>32767))
- {
- printf("Number is out of Integer range, "); Sleep(1000);
- printf("Input again: "); scanf_s("%d", &x);
- }
- for (i = n; i >= pos; i--)
- A[i + 1] = A[i];
- A[pos] = x;
- printf("Inserted Array: ");
- for (i = 1; i <= n; i++)
- printf("%d ", A[i]);
- printf("\n"); Sleep(1000);
- }
- void Delete()
- {
- int pos;
- printf("Input the position you want to delete: ");
- scanf_s("%d", &pos);
- while ((pos<1) || (pos>n))
- {
- printf("Position out of range, "); Sleep(1000);
- printf("Input again: "); scanf_s("%d", &pos);
- }
- n--;
- for (i = pos; i <= n; i++)
- A[i] = A[i + 1];
- printf("Deleted Array: ");
- for (i = 1; i <= n; i++)
- printf("%d ", A[i]);
- printf("\n");
- Sleep(1000);
- }
- int F_num_1(int i)
- {
- int S = 0, j, boolean=0;
- for (j = 1; j <= i; j++)
- {
- S = S + j;
- if (S == i) return 1;
- }
- return boolean;
- }
- void Find_Number_2()
- {
- int d = 0;
- printf("The number which is the total of some first natural number: ");
- for (i = 1; i <= n; i++)
- if (F_num_1(A[i]) == 1)
- {
- d++;
- printf("%d ", A[i]);
- }
- if (d == 0) printf("None!"); Sleep(1000);
- printf("\n");
- }
- int F_num_2(int i)
- {
- int S = 1, j, boolean = 0;
- for (j = 1; j <= i; j++)
- {
- S = S * j;
- if (S == i) return 1;
- }
- return boolean;
- }
- void Find_Number_3()
- {
- int d = 0;
- printf("The number which is the integration of some fisrt natural number: ");
- for (i = 1; i <= n; i++)
- if (F_num_2(A[i]) == 1)
- {
- d++;
- printf("%d ", A[i]);
- }
- if (d == 0) printf("None!"); Sleep(1000);
- printf("\n");
- }
- int Palindrome(int i)
- {
- int a=10, c=0, x, l;
- char S[256];
- _itoa_s(i, S, a); l = strlen(S);
- for (x = 0; x <= (l / 2) -1 ; x++)
- if (S[x] == S[l - (x + 1)]) c++;
- if (c == l / 2) return 1;
- else return 0;
- }
- void F_Palind()
- {
- int count = 0;
- printf("Palindrome number: ");
- for (i = 1; i <= n; i++)
- if (Palindrome(A[i]) == 1)
- {
- count++;
- printf("%d ", A[i]);
- }
- if (count == 0) printf("None!");
- printf("\n"); Sleep(1000);
- }
- int Fmod(int j, int i)
- {
- if (j%i == 0) return 1;
- else return 0;
- }
- void Mod_Num()
- {
- int count = 0;
- printf("Pair(s) of multiples-divisor number: ");
- for (i = 1; i < n; i++)
- for (j = i + 1; j <= n; j++)
- if (Fmod(A[i], A[j]) == 1)
- {
- count++;
- printf("%d-%d ", A[i], A[j]);
- }
- if (count == 0) printf("None!"); printf("\n");
- Sleep(1000);
- }
- void Swap(int i, int j)
- {
- int middle;
- middle = A[i]; A[i] = A[j]; A[j] = middle;
- }
- void Re_Order_Odd( )
- {
- int pos = 1;
- for (i = 1; i <= n; i++)
- if (A[i] % 2 == 0)
- {
- Swap(i, pos);
- pos++;
- }
- printf("Re_ordered array: ");
- for (i = 1; i <= n; i++)
- printf("%d ", A[i]);
- printf("\n"); Sleep(1000);
- }
- void Make_Finbonaci()
- {
- F[1] = 1; F[2] = 1;
- for (i = 3; i <= n; i++)
- F[i] = F[i - 1] + F[i - 2];
- printf("Finbonaci array: ");
- for (i = 1; i <= n; i++)
- printf("%d ", F[i]);
- printf("\n"); Sleep(1000);
- }
- void Terminate(int i)
- {
- int k;
- n--;
- for (k = i; k <= n; k++)
- A[k] = A[k + 1];
- }
- void Terminate_F(int i)
- {
- int k;
- Backup_N--;
- for (k = i; k <= Backup_N; k++)
- F[k] = F[k + 1];
- }
- void Delete_Same()
- {
- for (i = 1; i < n; i++)
- for (j = i + 1; j <= n; j++)
- if (A[i] == A[j])
- Terminate(i);
- for (i = 1; i < Backup_N; i++)
- for (j = i + 1; j <= n; j++)
- if (F[i] == F[j])
- Terminate_F(i);
- }
- void The_same_num()
- {
- int count, main_Count=0;
- for (i = 1; i <= n; i++)
- {
- count = 0;
- for (j = 1; j <= n; j++)
- if (F[i] == A[j]) count++;
- if (count != 0) main_Count++;
- }
- printf("Finbonaci array and A array has %d same number(s)\n", main_Count);
- Sleep(1000);
- }
- void Mod_Array()
- {
- int y, Mod[100], tg;
- for (i = 1; i <= n; i++)
- A[i] = Back_up[i];
- printf("Input number to mod: "); scanf_s("%d", &y);
- for (i = 1; i <= n; i++)
- Mod[i] = A[i] % y;
- printf("Array in increasing order based by the array moded to %d: ", y);
- for (i = 1; i < n; i++)
- for (j = i + 1; j <= n; j++)
- if (Mod[i] >= Mod[j])
- {
- tg = A[i]; A[i] = A[j]; A[j] = tg;
- tg = Mod[i]; Mod[i] = Mod[j]; Mod[j] = tg;
- }
- for (i = 1; i <= n; i++)
- printf("%d ", A[i]);
- printf("\n"); Sleep(1000);
- printf("Array in dereasing order based by the array moded to %d: ", y);
- for (i = 1; i < n; i++)
- for (j = i + 1; j <= n; j++)
- if (Mod[i] <= Mod[j])
- {
- tg = A[i]; A[i] = A[j]; A[j] = tg;
- tg = Mod[i]; Mod[i] = Mod[j]; Mod[j] = tg;
- }
- for (i = 1; i <= n; i++)
- printf("%d ", A[i]);
- printf("\n"); Sleep(1000);
- }
- void main()
- {
- Input();
- Re_order();
- Find_Number();
- Count_Value();
- Insert();
- Delete();
- Find_Number_2();
- Find_Number_3();
- F_Palind();
- Mod_Num();
- Re_Order_Odd();
- Make_Finbonaci();
- Delete_Same();
- The_same_num();
- Mod_Array();
- _getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement