#include "stdafx.h"
#include <cstdio>
#include <cstring>
using namespace std;
#define MaxSize 50
char str[MaxSize];
int main()
{
while (fgets(str,MaxSize,stdin))
{
bool IsInWord = false;
int count = 0;
int length = strlen(str);
for (int i = 0;i < length;++i)
{
if (IsInWord)
{
if (' ' == str[i])
{
printf("%d ", count);
IsInWord = true;
count = 0;
}
else if ('.' == str[i])
{
printf("%d\n", count);
}
else
{
count++;
}
}
else
{
if (str[i] != ' ')
{
count++;
IsInWord = true;
}
}
}
}
return 0;
}
#include "stdafx.h"
struct BST
{
BST* leftChild;
BST* rightChild;
BST* parent;
int data;
};
bool insert(BST* root, int data, BST** node)
{
if (root == NULL)
{
return false;
}
BST* tmp = root;
BST* parent = root;
bool isRight = true;
while (tmp)
{
parent = tmp;
if (data > tmp->data)
{
tmp = tmp->rightChild;
isRight = true;
}
else
{
tmp = tmp->leftChild;
isRight = false;
}
}
BST* insertNode = new BST;
insertNode->data = data;
insertNode->rightChild = insertNode->leftChild = NULL;
insertNode->parent = parent;
if (isRight)
parent->rightChild = insertNode;
else
parent->leftChild = insertNode;
*node = insertNode;
return true;
}
int main()
{
int NodeNumbers;
BST* root=NULL;
int data;
while (scanf("%d", &NodeNumbers))
{
for (int i = 0;i < NodeNumbers;++i)
{
scanf("%d", &data);
if (i == 0)
{
root = new BST;
root->data = data;
root->leftChild = root->rightChild = root->parent= NULL;
printf("%d\n", -1);
}
else
{
BST* node=NULL;
if (insert(root, data, &node))
{
printf("%d\n", node->parent->data);
}
}
}
}
return 0;
}
#include "stdafx.h"
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
#define MaxSize 50
bool inverse(int matrix[][MaxSize], int dimension)
{
if (matrix == NULL || dimension <= 0)
return false;
for(int i=1;i<dimension;++i)
for (int j = 0;j < i;++j)
{
swap(matrix[i][j], matrix[j][i]);
}
return true;
}
int matrix[MaxSize][MaxSize];
int main()
{
int dimension;
while (scanf("%d", &dimension))
{
for (int i = 0;i < dimension;++i)
for (int j = 0;j < dimension;++j)
scanf("%d", &matrix[i][j]);
if (inverse(matrix, dimension))
{
for (int i = 0;i<dimension;++i)
for (int j = 0;j < dimension;++j)
{
if (j == dimension - 1)
printf("%d\n", matrix[i][j]);
else
printf("%d ", matrix[i][j]);
}
}
}
return 0;
}
#include "stdafx.h"
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
#define MaxSize 50
char result[MaxSize][MaxSize];
char str[MaxSize];
bool splitString(char str[], int length, char Reg, char result[][MaxSize])
{
if (str == NULL || result == NULL||length<=0)
return false;
char* source = str;
int count = 0,num=0;
for (int i = 0;i < length;++i)
{
if (str[i] == Reg||i==length-1)
{
memcpy(result[num], source, count);
result[num][count+1] = '\0';
source += count+1;
count = 0;
num++;
}
else
{
count++;
}
}
return true;
}
bool IsRight(char str[], int length)
{
if (str == NULL || length <= 0)
return false;
int data = atoi(str);
if (data >= 0 && data <= 255)
return true;
else
return false;
}
int main()
{
while (fgets(str, MaxSize, stdin))
{
int length = strlen(str);
bool isRight = true;
if (splitString(str, length, '.', result))
{
for (int i = 0;i < 4;i++)
{
length = strlen(result[i]);
if (!IsRight(result[i], length))
{
isRight = false;
break;
}
}
}
if(isRight)
printf("%s\n", "Yes!");
else
printf("%s\n", "No!");
}
return 0;
}
在这里插入代码片
#include "stdafx.h"
#include "stdlib.h"
#include "time.h"
void Swap(int* a, int *b)
{
int c;
c = *b;
*b = *a;
*a = c;
}
int Partition(int* data, int start, int end)
{
/and(time(NULL));
int i = start, j = end, tmp = data[start];
while (i < j)
{
while (i < j&&tmp < data[j]) j--;
if (i < j)
{
data[i]=data[j];
i++;
}
while (i<j&&tmp>data[i]) i++;
if (i < j)
{
data[j] = data[i];
j--;
}
}
data[i] = tmp;
return i;
}
void qsort(int* data, int start, int end)
{
if (data == NULL || start > end)
return;
int index = Partition(data, start, end);
if (index > start)
qsort(data, start, index-1);
if (index < end)
qsort(data, index+1, end);
}
int data[100];
int main()
{
int n;
while (scanf("%d", &n))
{
for (int i = 0;i < n;i++)
scanf("%d", &data[i]);
qsort(data, 0, n - 1);
for (int i = 0;i < n;i++)
{
if (i == n - 1)
printf("%d\n", data[i]);
else
printf("%d ", data[i]);
}
}
return 0;
}
在这里插入代码片
初学者 2020/5/12 9:08:01
#include "stdafx.h"
#include "stdlib.h"
#include "time.h"
void Swap(int* a, int *b)
{
int c;
c = *b;
*b = *a;
*a = c;
}
int Partition(int* data, int start, int end)
{
/and(time(NULL));
int i = start, j = end, tmp = data[start];
while (i < j)
{
while (i < j&&tmp < data[j]) j--;
if (i < j)
{
data[i]=data[j];
i++;
}
while (i<j&&tmp>data[i]) i++;
if (i < j)
{
data[j] = data[i];
j--;
}
}
data[i] = tmp;
return i;
}
void qsort(int* data, int start, int end)
{
if (data == NULL || start > end)
return;
int index = Partition(data, start, end);
if (index > start)
qsort(data, start, index-1);
if (index < end)
qsort(data, index+1, end);
}
int data[100];
int main()
{
int n;
while (scanf("%d", &n))
{
for (int i = 0;i < n;i++)
scanf("%d", &data[i]);
qsort(data, 0, n - 1);
for (int i = 0;i < n;i++)
{
if (i == n - 1)
printf("%d\n", data[i]);
else
printf("%d ", data[i]);
}
}
return 0;
}
初学者 2020/5/12 9:08:39
#include "stdafx.h"
void Swap(int* a, int* b)
{
int c;
c = *b;
*b = *a;
*a = c;
}
void adjustHeap(int *data, int node, int length)
{
int lchild = 2 * node + 1;
int rchild = 2 * node + 2;
int parent = node;
while (lchild <= length-1)
{
if (rchild <= length-1)
{
if (data[rchild] > data[lchild])
{
if (data[parent] < data[rchild])
{
Swap(&data[parent], &data[rchild]);
parent = rchild;
lchild = parent * 2 + 1;
rchild = parent * 2 + 2;
continue;
}
else
break;
}
}
if (data[lchild] > data[parent])
{
Swap(&data[lchild], &data[parent]);
parent = lchild;
lchild = parent * 2 + 1;
rchild = parent * 2 + 2;
}
else
break;
}
}
void buildHeap(int *data, int length)
{
for (int i = length / 2 - 1;i >= 0;i--)
{
adjustHeap(data, i, length);
}
}
void HeapSort(int *data, int length)
{
if (data == NULL || length <= 0)
return;
int i;
buildHeap(data, length);
for (i = length-1;i >= 1;i--)
{
Swap(&data[0], &data[i]);
adjustHeap(data, 0, i);
}
}
int data[1000];
int main()
{
int n;
while (scanf("%d", &n))
{
for (int i = 0;i < n;i++)
scanf("%d", &data[i]);
HeapSort(data, n);
printf("%d\n", data[n - 1]);
for (int i = 0;i < n-1;i++)
{
if (i == n - 2)
{
printf("%d\n", data[i]);
break;
}
printf("%d ", data[i]);
}
}
return 0;
}