大一作业习题
2023-12-13 20:43:05
题一:
答案:
#include <stdio.h>
void input(int a[], int m) //键盘输入a数组的前m个元素。
{
int i = 0;
for (i = 0; i < m; i++)
{
scanf("%d", &a[i]);
}
}
void print(int a[], int m) //输出a数组的前m个元素,按"%4d" 格式输出数组元素,输出完毕换行 。
{
int i = 0;
for (i = 0; i < m; i++)
{
printf("%4d", a[i]);
}
printf("\n");
}
void findMaxIncList(int a[], int n, int result[])/*在 a数组的前n个元素 查找最长K递增子序列, 序列长度存放在result[0], 序列起始下标存放在result[1] ;在查找过程中,输出发现的所有K递增子序列,按"%4d" 格式输出数组元素,每个子序列输出完毕换行 。 */
{
int maxLen = 1; //最长的长度
int startIndex = 0; //一开始的下标
int nowLen = 1; //此时的长度
int nowStart = 0; //此时的下标
for (int i = 1; i < n; i++)
{
if (a[i] > a[i - 1]) //如果后面的元素大于前面的元素
{
nowLen++; //此时的长度(计数器+1)
printf("%4d", a[i - 1]); //打印前面这个元素
if (i == n - 1) //如果这个元素是输入的最后一个元素
{
printf("%4d\n", a[i]); //打印最后一个元素
}
}
else //如果后面的元素小于前面的元素
{
printf("%4d\n", a[i - 1]); //打印前面这个元素并换行结束该递增序列
if (i == n - 1) //如果这个元素是输入的最后一个元素
{
printf("%4d\n", a[i]); //打印最后一个元素
}
if (nowLen > maxLen) //如果此时的长度比之前记录最长的长度还长
{
maxLen = nowLen; //将此时的长度赋值为最长的长度
startIndex = nowStart; //将此时的下标赋值为开始的下标
}
nowLen = 1; //此时的长度重置(计数器返回为1)
nowStart = i; //此时的下标赋值为循环到的下标
}
}
if (nowLen > maxLen) //如果遇见到结尾还没有断的递增数列
{
maxLen = nowLen;
startIndex = nowStart;
}
result[0] = maxLen;
result[1] = startIndex;
}
题二:
答案:
#include <stdio.h>
void encode(char* str, int n)
{
int j = 0, len = 0, i = 0;
while (str[j] != '\0') //循环至结束符\0之前
{
len++; //长度计数器+1
j++; //下标+1
}
for (i = 0; i < len; i++)
{
if (str[i] >= 'a' && str[i] <= 'z') //如果是小写字母
{
str[i] = ((str[i] - 'a' + n) % 26) + 'a'; //后移n位(%26是让xyz变为abc)
}
else if (str[i] >= 'A' && str[i] <= 'Z') //如果是大写字母
{
str[i] = ((str[i] - 'A' + n) % 26) + 'A'; //后移n位(%26是让XYZ变为ABC)
}
}
}
int main()
{
char str[80];
int n;
scanf("%d%s", &n, str);
encode(str, n);
puts(str);
return 1;
}
文章来源:https://blog.csdn.net/2301_80369371/article/details/134980697
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!