一、
作业标题
字符串左旋
作业内容
实现一个函数,可以左旋字符串中的k个字符。
例如:
ABCD左旋一个字符得到BCDA
ABCD左旋两个字符得到CDAB
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <errno.h>
#include <ctype.h>
#include <assert.h>
void LRound(int len, char* str)
{
int i = 0;
int j = 0;
char temp = 0;
for (i = 0; i < len-1; i++)
{
temp = str[i];
str[i] = str[i + 1];
str[i + 1] = temp;
}
}
int main()
{
int i = 0;
int j = 0;
int n = 0;
int len = 0;
char str[100] = { 0 };
gets(str);
len = strlen(str);
scanf("%d", &n);
while (n)
{
LRound(len, str);
n--;
}
printf("%s", str);
return 0;
}
二、
杨氏矩阵
作业内容
有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。
要求:时间复杂度小于O(N);
int Findnumb(int n, int (*arr)[3])
{
int x = 0;
int y = 2;
while (y >= 0 && x < 3)
{
if (arr[x][y] == n)
{
return 1;
}
else if (arr[x][y] > n)
{
y--;
}
else
{
x++;
}
}
return 0;
}
int main()
{
int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
int n = 0;
int ret = 0;
scanf("%d", &n);
ret=Findnumb(n, arr);
if (ret == 0)
{
printf("该数不存在\n");
}
else if (ret == 1)
{
printf("该数存在\n");
}
return 0;
}