c语习题
题目:对存储在string数组内的所有以字符'a'开始并以字符'e'结尾的单词做加密处理。
加密规则:若单词长度为偶数个字符,则将组成单词的所有字母循环左移一次;否则
循环右移一次。
例如:单词able经循环左移一次后变为blea;单词abide经循环右移一次后变为eabid。
数组原数据:she is able to abide her.
加密后数据:she is blea to eabid her.
在/**********Program**********/
/**********End**********/中填空
注意:请勿改动程序中的其他部分。
#include <stdio.h>
#include <ctype.h>
void wordchange(char str[])
{
int i,j,k,m;
char c;
for(i=0;str;i++)
{
for(j=i,k=i;isalpha(str);k++);//查找
/**********Program**********/
/**********End**********/
i=k;
}
}
int main()
{
char string="she is able to abide her.";
puts(string);
wordchange(string);
puts(string);
return 0;
}
以下是填空部分的完整代码:
#include <stdio.h>
#include <ctype.h>
void wordchange(char str[]) {
int i, j, k, m;
char c;
for (i = 0; str; i++) {
for (j = i, k = i; isalpha(str); k++);
if (str == 'a' && str == 'e') {
m = k - j;
if (m % 2 == 0) {
c = str;
for (i = j; i < k - 1; i++) {
str = str;
}
str = c;
} else {
c = str;
for (i = k - 1; i > j; i--) {
str = str;
}
str = c;
}
}
i = k;
}
}
int main() {
char string = "she is able to abide her.";
puts(string);
wordchange(string);
puts(string);
return 0;
}
在 wordchange 函数中,我添加了循环来查找以字符 'a' 开始并以字符 'e' 结尾的单词。然后,根据单词的长度是偶数还是奇数,进行循环左移或循环右移操作。
这个程序会对存储在字符串数组内的符合条件的单词进行加密处理。希望能够帮到你! 这是一个C语言的问题,需要在给定的程序中填空,实现特定的加密规则:对所有以字符'a'开始并以字符'e'结尾的单词,如果单词长度为偶数个字符,则将组成单词的所有字母循环左移一次;否则循环右移一次。
你可以在 /**********Program**********/和/**********End**********/之间加入以下代码:
if(str=='a' && str=='e')
{
m=k-j;
if(m%2==0)
{
c=str;
for(i=j;i<k-1;i++)
str[ i]=str;
str=c;
}
else
{
c=str;
for(i=k-1;i>j;i--)
str[ i]=str;
str=c;
}
}
现在让我们详细解释一下这段代码的运行原理:
·if(str=='a' && str=='e')首先我们检查单词是否以'a'开始并以'e'结尾。如果是,我们继续执行加密操作。
·m=k-j;计算单词的长度。
·if(m%2==0)判断单词长度是否为偶数。
· 如果单词长度是偶数,我们执行循环左移。我们保存第一个字符,然后将剩下的字符向左移动一位,最后把保存的第一个字符放到最后一位。
· 如果单词长度是奇数,我们执行循环右移。我们保存最后一个字符,然后将剩下的字符向右移动一位,最后把保存的最后一个字符放到第一位。
因此,这段代码能够实现题目中的加密规则,并且只会对符合特定条件(以'a'开始并以'e'结尾)的单词进行操作。 陶远航 发表于 2023-7-16 16:11
以下是填空部分的完整代码:
脚本可以发我吗,我想研究研究 学习编程中的Ben 发表于 2023-7-16 16:35
脚本可以发我吗,我想研究研究
《研究》 陶远航 发表于 2023-7-16 16:38
《研究》
我不用行吧
页:
[1]