C语言编程:要求输入student,将其加密,每个字母往后移四位,比如e,将其变成i,求高手解答!谢谢!

供稿:hz-xin.com     日期:2025-01-12
对字母进行加密,即输入4个字母,每个字母向后移4位,列如‘A’后移4位变成‘E’,下面c程序出错在哪,

#include
int main()
{
int a[5];(这里错了,既然是字符,当然用char)
int i;
for (i = 0; i <= 4; i++)
scanf ("%c", a[i]);(这里错了,%c会读取回车字符(回车也算一个字符,区别于换行‘
’)‘’假如你输入的是ABCD,那么存进去的就会变成A回车B回车,并且输入时的取址符号也漏了)
for (i = 0; i <= 4; i++)
a[i] = a[i] + 4;(这里错了,如果a[i]='Z'呢?那加完的字符不就不是大写英文字母了么?)
for (i = 0; i <= 4; i++)
printf ("%c", a[i]);
return 0;
}


修改后的代码
#include
int main()
{
char a[5];

int i;

for(i = 0;i <= 4;i++)

{
scanf("%c",&a[i]);

getchar(); //读取一个字符,用于抵消上一句读取字母时产生的回车

}

for(i = 0;i <=4;i++)

{
if(a[i] + 4 > 'Z')

{
a[i] = 'A' + a[i] + 4 - 'Z' - 1; //如果大于Z,就循环从A开始

}

else a[i] = a[i] + 4;

}

for(i = 0;i <=4;i++)

{
printf("%c",a[i]);
}
return 0;
}
望采纳

已发邮箱

是的,就是设置个char数组,比如char student[4]={0};char strtemp[4];
然后将起赋值为你想要的值,这就是加密前,加密的话就:
for(int i=0;i<sizeof(student);i++)
strtemp[i] = student[i]+4;
得到的就是你要的加密后的组合了,解密同样,直接每个指减4就对了

#include "stdio.h"
void main()
{
char arr[]="student";
int i=0;
while(arr[i]!='\0'){
printf("%c", arr[i]+4);
i++;
}
}用数组啊,我也是初学者,我想到了这个方法,不知行不行!!!

字符串“student"拆分成char数组,每一个char加4.之后的数组组合即为加密后的组合

你好 !你要的程序可以如下:
#include<stdio.h>
void main()
{int i=0;
char a[]={"student"};
while(a[i]!='\0')
{
a[i]=a[i]+4;
printf("%c",a[i]);
i++;
}
printf("\n");
}

#include <conio.h> //getche
int main(void)
{
char ch;
printf("Input a character:");
while((ch = getche())!=\n)
{
()//在这里加入 ch 往后移四位
printf("\nYou input a '%c'\n", ch);
}
return 0;
}

C语言编程:编写程序实现,5个学生,每个学生的数据包括学号、姓名、3门课...
使得程序能够处理多个学生的情况。使用scanf和printf函数进行输入输出操作,使得用户可以与程序进行交互,实现数据的输入和输出。这种方式简单直接,易于理解和实现。整个程序逻辑清晰,结构合理,能够满足需求,实现对5个学生信息的收集和展示。这样的编程练习有助于提高编程技能,加深对C语言的理解。

...通过设计类Student来实现学生数据的输入、输出,并在主函数中创建一...
function.cpp文件下的内容 #include "Student.h"include <iostream.h> include <fstream.h> include <stdlib.h> include <iomanip.h> include <string.h> include "function.h"void menu(){ system("cls");int choice;cout<<"学生信息管理系统"<<endl;cout<<"---"<<endl;cout<<"1.添加学...

(C语言)从键盘输入3个学生的信息(姓名,年龄,一门功课成绩),计算课程的...
int*page,double*pscore){while(3!=scanf("%s %d %lf",pname,page,pscore)){fputs("输入错误!\\n",stderr);while('\\n'!=getchar());}}double getAverage(Student*parr,int length){double sum=0.0;int i;for(i=0;i<length;i++){sum+=parr[i].score;}return sum\/3.0;}不懂的...

c语言的输入 I am a student输出 I am student
初学者应该是这样编写 include<stdio.h> main(){ char str[1000000];gets(str);puts(str);} 如果是循环输出,应该是这样的。include<stdio.h> include<string.h> main(){ char str[1000000];while(gets(str))puts(str);}

C语言 将这个代码用指针实现,对学生信息的输入和显示 求大神改进_百度...
printf("c语言成绩:\\t");scanf("%d",&p->score.clanguage);printf("英语成绩:\\t");scanf("%d",&p->score.english);printf("高数成绩:\\t");scanf("%d",&p->score.math);p++; \/\/指针 要指向下一个 } } void output(){ printf("\\n %d的学生信息:\\n===\\n",LEN);printf("姓...

C语言程序找错,输入学生的姓名跟身高体重输出身高最矮的和学生体重最...
include<stdio.h>typedef struct{ char name[10]; float sg; float tz;}student;void Input(student *stu,int n){ int i; getchar(); for(i=0;i<n;i++) { printf("输入第%d个学生的基本信息:\\n",i+1); scanf("%s%f%f",(stu+i)->name,&(stu+i)->sg,&(stu+i)->tz);...

C语言编程,定义包含学号、姓名和成绩的学生信息结构类型,完成以下功能...
代码如下:include <stdio.h>#include <stdlib.h>#include <memory.h>#define MAX 50typedef struct {char stuId[10];char name[20];int score;}Student;void input(Student students[MAX], int n){int i;for (i = 0; i < n; i++) {scanf("%s", students[i].stuId);scanf("%s",...

在c语言程序中 ,用链表形式输入和输出学生信息,求年龄平均值_百度知 ...
\/\/从键盘上输入学生信息 q=p;\/\/保存前一个元素的地址 p=(struct student *)malloc(sizeof(struct student));printf("第%d个学生的信息(包括学号、名字、年龄):\\n",i+1);scanf("%d %s %d",&p->num,p->name,&p->age);p->next=NULL;if(head==NULL)head=p;else q->next=p;} ret...

...成绩和语文成绩描述一个学生的情况。编写程序输入5个人的情况,求每 ...
i;student stu[N];for (i = 0; i < N; ++i){printf ("输入第 %d 个学生的信息(顺序为姓名,学号,数学成绩,语文成绩,并用空格分开):\\n", i + 1);scanf ("%s %s %f %f", stu[i].name, stu[i].id, &stu[i].math_score, &stu[i].lang_score);}printf ("\\n")...

编写一个c语言程序,实现录入学生学号和姓名信息的功能
2、然后编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。3、然后在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。5、然后在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头...