请写出此程序解题步骤。和解题思路
#include"stdio.h"#defineN2structpp{chartext[10];intconstant;}voidencrypt(structpp*x){...
#include "stdio.h"
#define N 2
struct pp
{char text[10];int constant;}
void encrypt (struct pp *x)
{int i;
for(i=0;i<strlen(x->text);i++)
x->text[i]=x->text[i]+x->constant;}
main()
{ struct pp source[N]={{"amknsrcp",2},{"oqnbdctqd",1}};
int i=0;
while(i<N)
{encrypt(&source[i]);
i++;}
for(i=0;i<N;i++)
printf("%s\n",source[i].text;}
就是帮忙写出每个解题步 。运行结果不重要,主要是解题的步骤,越详细越好。 展开
#define N 2
struct pp
{char text[10];int constant;}
void encrypt (struct pp *x)
{int i;
for(i=0;i<strlen(x->text);i++)
x->text[i]=x->text[i]+x->constant;}
main()
{ struct pp source[N]={{"amknsrcp",2},{"oqnbdctqd",1}};
int i=0;
while(i<N)
{encrypt(&source[i]);
i++;}
for(i=0;i<N;i++)
printf("%s\n",source[i].text;}
就是帮忙写出每个解题步 。运行结果不重要,主要是解题的步骤,越详细越好。 展开
6个回答
展开全部
//似乎 是一个 加密解密的问题哦
#include "stdio.h"
#include<string.h> //因为你下文 应该用到 strlen()函数 所以 要包含 string .h头文件
#define N 2
struct pp //声明一个结构
{
char text[10]; //一个字符串
int constant; //一个 int 类型
};
void encrypt (struct pp *x)
{
int i;
int temp=strlen(x->text);
for(i=0;i<temp;i++) //循环 i<结构中字符串的长度
{
x->text[i]=x->text[i]+x->constant; //结构pp中 第i个字符=第i个字符的ASCII码+constant后
// 的值转换成char类型 在赋值给第i个字符
}
}
main()
{
struct pp source[N]={{"amknsrcp",2},{"oqnbdctqd",1}}; //一个 结构数组 数组中有两个元素
// 分别初始化为{"amknsrcp",2},{"oqnbdctqd",1}
int i=0;
while(i<N) //循环这个 结构数组
{
encrypt(&source[i]);
i++;
}
for(i=0;i<N;i++) //循环这个 结构数组
{
printf("%s\n",source[i].text); //打印修改后的字符串
}
}
#include "stdio.h"
#include<string.h> //因为你下文 应该用到 strlen()函数 所以 要包含 string .h头文件
#define N 2
struct pp //声明一个结构
{
char text[10]; //一个字符串
int constant; //一个 int 类型
};
void encrypt (struct pp *x)
{
int i;
int temp=strlen(x->text);
for(i=0;i<temp;i++) //循环 i<结构中字符串的长度
{
x->text[i]=x->text[i]+x->constant; //结构pp中 第i个字符=第i个字符的ASCII码+constant后
// 的值转换成char类型 在赋值给第i个字符
}
}
main()
{
struct pp source[N]={{"amknsrcp",2},{"oqnbdctqd",1}}; //一个 结构数组 数组中有两个元素
// 分别初始化为{"amknsrcp",2},{"oqnbdctqd",1}
int i=0;
while(i<N) //循环这个 结构数组
{
encrypt(&source[i]);
i++;
}
for(i=0;i<N;i++) //循环这个 结构数组
{
printf("%s\n",source[i].text); //打印修改后的字符串
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-05-04
展开全部
从主函数开始解读
定义pp类型的source[n]数组并赋初值,定义int型i,赋初值0,
做while循环,接着调用encrypt函数,通过地址将source的地址传递过去,所以在形参中用指针,在实参中用地址,for循环,如果i<x的长度,进行运算,x->text[0]=x->text[0]+x->constant
x->text[1]=x->text[1]+x->constant
调用结束回到主函数,输出",source[0].text和source[1].text的值
定义pp类型的source[n]数组并赋初值,定义int型i,赋初值0,
做while循环,接着调用encrypt函数,通过地址将source的地址传递过去,所以在形参中用指针,在实参中用地址,for循环,如果i<x的长度,进行运算,x->text[0]=x->text[0]+x->constant
x->text[1]=x->text[1]+x->constant
调用结束回到主函数,输出",source[0].text和source[1].text的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是用ascII码,将字符串中每一个字母都向后移动constant位,得到新的字符串,单步调试可以得到结果,帮助你理解,正确的程序是
#include "stdio.h"
#include"string.h"
#define N 2
struct pp
{char text[10];int constant;};
void encrypt(struct pp *x)
{int i;
for(i=0;i<(strlen(x->text));i++)
x->text[i]=x->text[i]+x->constant;}
main()
{ struct pp source[N]={{"amknsrcp",2},{"oqnbdctqd",1}};
int i=0;
while(i<N)
{encrypt(&source[i]);
i++;}
for(i=0;i<N;i++)
printf("%s\n",source[i].text);}
#include "stdio.h"
#include"string.h"
#define N 2
struct pp
{char text[10];int constant;};
void encrypt(struct pp *x)
{int i;
for(i=0;i<(strlen(x->text));i++)
x->text[i]=x->text[i]+x->constant;}
main()
{ struct pp source[N]={{"amknsrcp",2},{"oqnbdctqd",1}};
int i=0;
while(i<N)
{encrypt(&source[i]);
i++;}
for(i=0;i<N;i++)
printf("%s\n",source[i].text);}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
encrypt是加(?解)密函数,按给出的数字进行字母错位加密。
错位个数就是pp结构里的constant。比如第一个amknsrcp,2
就是错位2位,a+2=c,m+2=0;........
转换出来就是computer
错位个数就是pp结构里的constant。比如第一个amknsrcp,2
就是错位2位,a+2=c,m+2=0;........
转换出来就是computer
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
结构体pp,包含数组text,整数constant
定义无返回值函数encrypt() 参数是结构体pp类型指针x
函数里:定义整数i
循环i小于字符数组text的长度,分别为数组text里每个元素赋值,使他等于他本身加上constant
main()里是方法函数的执行
定义无返回值函数encrypt() 参数是结构体pp类型指针x
函数里:定义整数i
循环i小于字符数组text的长度,分别为数组text里每个元素赋值,使他等于他本身加上constant
main()里是方法函数的执行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询