所在位置:主页 > 程序语言 > c语言的两个程序 帮忙解析一下

c语言的两个程序 帮忙解析一下

发布时间:2023-10-28 19:26来源:www.sf1369.com作者:宇宇

一、c语言的两个程序 帮忙解析一下

第一个和第二个不是一模一样么? 你看看是不是搞错了升差耐。。。 char*alp[]={ABC,DEF,GHi}; 这句话是定义了一个char型的指针数组,三个指针分别指向ABC,DEF,GHi;庆伍 for(i=0;i<3;i++) puts(alp[i]); 这段就是将三个指针所指向的字符串显示出来。 还有什么问题尽管提,初吵春学者对于指针和字符串方面都比较吃力的。

二、c语言一小段程序求解

#include stdio.h//包含输入输出头文件,printf就在其中

main()

{

    int x1=0xabc,x2=0xdef;//声明x1、x2为有符号整型变量并用十六进制赋初值

    x2-=x1;//用x2的值减去x1的值并将仿枣备皮结果赋备滚拆给x2

    printf(%x\n,x2);//用十六进制输出x2的值

}

结果是十六进制333,即十进制的819。

这就是:

定义两个族漏整型变量 x1 和x2 ,用十六进制的方式给予赋值 0x表示十六进制。

x1 转换成十进制 也就是2748

x2转换成十进制 也就是3567

x2 -=x1 相当于 x2 = x2 -x1= 819

printf 中的 %x表示以十六进制兆此烂形式输出 ,819转16进制扒培为333,结果为333。

int x1=0xabc,x2=oxdef

x2=x2-x1=0x333

是十六进制,所以x2=819

结果为:

ox333

十进制的话应该是819

十六进制是333

三、C语言程序解释

程序并不能正常运行,做了如下改动,看是否符合你的要求,重要步骤都进行了说戚核明,如下:

#include<stdio.h>

#define s 7 //s汇定义为7

void main()

{

char b[s],a[s]; //把两个数组都定义为字符型的,把数组a 做为数据存放的原始位置

int i,x,w=0; //定义变量

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

{ scanf(%c,&a[i]); //先输入原始数据

getchar(); //用来消化掉输入数据时,所按下的回车键,必须

}

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

b[i]=a[i]; //用原始数据对b进行初高饥掘始化

while(x!=3) //判断用户选择的操作类型,是否退出

{

printf(\n---------------------------------请选择----------------------------------\n\t输入1 加密\n\t输肢世入2 解密\n\t输入3退出\n);

scanf(%d,&x); //输入选项

if(x==1) //如果为1 ,进行加密操作

{

if(b[0]!=a[0]) //判断数组b中的数据是否加密,如果已经加密则让用户重新选择

{

printf(数据已加密\n);

continue;

}

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

b[i]=b[i]+5; //数组B里存放加密后的数据,原始数据加5

for(w=0;w<s;w++)

printf(%c,b[w]); //输出加密数据

printf(\n);

}

if(x==2) //如果输入为2

{

if(b[0]==a[0])//判断数组B中的数据是否加密,若未加密则重新让用户选择

{

printf(数据未加密\n);

continue;

}

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

{

b[i]=b[i]-5; //原始数据减5,存入新数组

// w++;

}

for(w=0;w<s;w++)

printf(%c,b[w]); //输出解密数组

}

}

}

#include<stdio.h>

#define s 7 //s汇定义为7

void main()

{

char b[s];

int a[s],i,x,w=0; //定义变量

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

scanf(%c,&a[i]); //先输入原始数据

printf(输入1 加密缓物, 输入2 解密);

scanf(%d,&x); //输掘运入选项

if(x==1) //如果为1

{

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

{

b[w]=a[i]+5; //新数组里存放加密后的数据,原始数据加5

w++;

}

for(w=0;w<s;w++)

printf(%c,b[w]); //输出加密数据

printf(\n);gd

}

if(x==2) //如果输入为2

{

for(i=0;i<判哪梁s;i++)

{

b[w]=a[i]-5; //原始数据减5,存入新数组

w++;

}

for(w=0;w<s;w++)

printf(%c,b[w]); //输出解密数组

}

}