C语言 家谱问题
#include<stdioh>
#include<stringh>
char w[5][20]={{"child"},{"parent"},{"sibling"},{"descendant"},{"ancestor"}};
int kong(char a[]) {
int n=0,i;
for(i=0;a[i]!='\0';i++) {
if(a[i]==' ')
n++;
else
break;
}
return n;
}
char fam[200][20];
int num[200]={0};
int search(char a[],int n) {
int i=1;
while(1) {
if(!strcmp(a,fam[i]))
return i;
i++;
}
return 0;
}
int search1(int n,int x) {
int i=1;
while(i<x) {
if(num[i]==n)
return i;
i++;
}
return 0;
}
char name[1000],word[1000],n1[100],n2[100],d[100];
int main() {
int n,m,i,j,a,b,t,x,k,h;
while(scanf("%d%d",&n,&m)!=EOF) {
memset(fam,'\0',sizeof(fam));
memset(num,'\0',sizeof(num));
scanf("%s",fam[1]);
getchar();
a=b=2;
t=1;
num[1]=1;
for(i=2;i<=n;i++) {
memset(name,'\0',sizeof(name));
gets(name);
b=kong(name);
if(b>a) {
if(fam[search1(t2+1,i)][0]!='\0')
t=t2+1;
else
t=t2;
}
else { if(b<a) {
h=(a-b)/2;
while(h>=1) {
t=t/2;
h--;
}
}}
if(fam[search1(t2,i)][0]!='\0')
x=t2+1;
else x=t2;
num[i]=x;
for(j=b;name[j]!='\0';j++)
fam[i][j-b]=name[j];
a=b;
}
for(i=0;i<m;i++) {
gets(word);
k=0;h=0;
memset(n1,'\0',sizeof(n1));
memset(n2,'\0',sizeof(n2));
memset(d,'\0',sizeof(d));
for(j=0;word[j]!='\0';j++) {
if(word[j]==' ') {
k++;
h=0;
continue;
}
if(k==0)
n1[j]=word[j];
if(k==5) {
n2[h]=word[j];
h++;
}
if(k==3) {
d[h]=word[j];
h++;
}
}
if(!strcmp(d,w[0])) {
a=search(n1,n);a=num[a];
b=search(n2,n);b=num[b];
if(a==b2||a==(b2+1))
printf("True\n");
else printf("False\n");
continue;
}
if(!strcmp(d,w[1])) {
a=search(n1,n);a=num[a];
b=search(n2,n);b=num[b];
if(b==a2||b==(a2+1))
printf("True\n");
else printf("False\n");
continue;
}
if(!strcmp(d,w[2])) {
a=search(n1,n);a=num[a];
b=search(n2,n);b=num[b];
if((a==b+1&&a==b/22+1)||(a==b-1&&b==a/22+1))
printf("True\n");
else printf("False\n");
continue;
}
if(!strcmp(d,w[3])) {
a=search(n1,n);a=num[a];
b=search(n2,n);b=num[b];
while(a>0) {
a=a/2;
if(a==b) {
printf("True\n");
break;
}
if(a==0)
printf("False\n");
}
continue;
}
if(!strcmp(d,w[4])) {
a=search(n1,n);a=num[a];
b=search(n2,n);b=num[b];
while(b>0) {
b=b/2;
if(a==b) {
printf("True\n");
break;
}
if(b==0)
printf("False\n");
}
continue;
}
}
}
return 0;
}
听说回答的够长能够自动采纳
c语言程序的基本单位是函数。C程序是由函数构成的,函数是C程序的基本组成单位,一个C源程序中仅有一个main函数,除main函数之外可以有若干个其它的函数,每个函数实现某一特定的操作。因此,函数是C程序的基本单位。
c程序,即用C语言编写的程序。C语言是世界上最流行、使用最广泛的面向过程的高级程序设计语言,原型为ALGOL 60语言,具有绘图能力强,可移植性强,并具备很强的数据处理能力,适于编写系统软件。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
函数
函数在数学上的定义:给定一个非空的数集A,对A施加对应法则f,记作f(A),得到另一数集B,也就是B=f(A)。那么这个关系式就叫函数关系式,简称函数。
简单来讲,对于两个变量x和y,如果每给定x的一个值,y都有唯一一个确定的值与其对应,那么我们就说y是x的函数。其中,x叫做自变量,y叫做因变量。
在数学中,连续是函数的一种属性。直观上来说,连续的函数就是当输入值的变化足够小的时候,输出的变化也会随之足够小的函数。如果输入值的某种微小的变化会产生输出值的一个突然的跳跃甚至无法定义,则这个函数被称为是不连续的函数(或者说具有不连续性)。
C语言源码大全简介
1、c语言做的播放器源码,c语言商品销售系统源码,c语言图书借阅系统源码
2、c语言图书管理系统源码,c语言对对碰游戏源码,c语言对自己电脑系统测试
3、c语言情人节的红玫瑰,c语言打字母游戏源码,c语言24点游戏源码
4、c语言Turbo C下写的俄罗斯方块
5、c语言UDP传输系统源码,c语言俄罗斯方块
6、c语言做的一个任务管理器,c语言做的播放器源码,c语言做的绘图板系统,
例:C语言爱心代码
#include
int main()
{
int i, j, k, l, m;
char c=3; //ASCII码里面 3 就是一个字符小爱心
for (i=1; i<=5; i++) printf("\n"); //开头空出5行
for (i=1; i<=3; i++) { //前3行中间有空隙分开来写
for (j=1; j<=32-2i; j++) printf(" "); //左边的空格,每下一行左边的空格比上一行少2个 //8n-2i
for (k=1; k<=4i+1; k++) printf("%c", c);//输出左半部分字符小爱心
for (l=1; l<=13-4i; l++) printf(" "); //中间的空格,每下一行的空格比上一行少4个
for (m=1; m<=4i+1; m++) printf("%c", c);//输出右半部分字符小爱心
printf("\n"); //每一行输出完毕换行
}
for (i=1; i<=3; i++) { //下3行中间没有空格
for (j=1; j<=24+1; j++) printf(" "); //左边的空格 //8(n-1)+1
for (k=1; k<=29; k++) printf("%c", c);//输出字符小爱心
printf("\n"); //每一行输出完毕换行
}
for (i=7; i>=1; i--) { //下7行
for (j=1; j<=40-2i; j++) printf(" "); //左边的空格,每下一行左边的空格比上一行少2个//8(n+1)-2i
for (k=1; k<=4i-1; k++) printf("%c", c);//每下一行的字符小爱心比上一行少4个(这个循环是i--)
printf("\n"); //每一行输出完毕换行
}
for (i=1; i<=39; i++) printf(" "); //最后一行左边的空格
printf("%c\n", c); //最后一个字符小爱心
for (i=1; i<=5; i++) printf("\n"); //最后空出5行
return 0;
}
以word 2007为例,方法如下:
1、依次单击“插入”、插图框中的“SmartArt”,在出现的对话框中选择“层次结构”、在右边出现的“组织结构图”中选中竖排或横排的结构图例,双击出现的“文本”,填写家谱姓氏辈份等信息。
2、家族人丁兴旺的可以在不同的辈份(行或列)添加多个文本,具体方法是点击想要添加位置附近文本框,在菜单栏中点击“添加形状”,在子菜单中选择在后、前、上、下添加即可。
以下程序已在win-tc和tc20下运行通过,已加详细注释(本人所写)。
/ 数据安全实用程序,加密解密简单程序 /
#include<stdioh>
#include<stdlibh>
#include<conioh>
int flag;
char encrypt(char ch,int key)/加密函数,把字符循环移位/
{
if(ch>='a' && ch<='z') / 如果是小写字母 /
{
ch=(ch-'a'+key%26)%26+'a'; / 字母向后移key%26个位置,超过字母z则再从a开始向后移动 /
}
else if(ch>='A' && ch<='Z') / 如果是大写字母 /
{
ch=(ch-'A'+key%26)%26+'A'; / 字母向后移key%26个位置,超过字母Z则再从A开始向后移动 /
}
return ch;
}
char decrypt(char ch,int key)/解密函数,把字符循环移位/
{
if(ch>='a' && ch<='z') / 如果是小写字母 /
{
ch=(ch-'a'+26-key%26)%26+'a'; / 字母向后移26-key%26个位置,超过字母z则再从a开始向后移动 /
}
else if(ch>='A' && ch<='Z') / 如果是大写字母 /
{
ch=(ch-'A'+26-key%26)%26+'A'; / 字母向后移26-key%26个位置,超过字母Z则再从A开始向后移动 /
}
return ch;
}
void menu()/菜单,1加密,2解密,3显示文本文件内容/
{
clrscr();
printf("\n=======================================================");
printf("\n1Encrypt the text file"); / 加密文件 /
printf("\n2Decrypt the text file"); / 解密文件 /
printf("\n3Display text file contents");/ 显示加密或解密或未加密或解密的文件 /
printf("\n4Quit\n");
printf("=========================================================\n");
printf("Please select a item:"); / 选择一个菜单 /
}
void logo()/显示程序信息/
{
printf("\nwelcome to encrypt program \n ");
return;
}
void encrypt_decrypt_File(char infile,int key, char outfile) / 加密或解密函数 /
{
FILE in,out;
char ch;
clrscr(); / 清屏 /
if((in=fopen(infile,"r"))==NULL) / 打开欲加密或解密的文件/
{
printf("Can not open the infile!\n"); / 如果打开文件失败或文件不存在打印打开失败信息 /
printf("Press any key to exit!\n");
getch(); / 并等待任一按键然后退出程序 /
exit(0);
}
if((out=fopen(outfile,"w"))==NULL) / 打开文件保存加密或解密后的内容/
{
printf("Can not open the outfile!\n"); / 如果打开文件失败或文件不存在打印打开失败信息 /
printf("Press any key to exit!\n"); / 并等待任一按键然后退出程序 /
fclose(in); / 关闭输入文件 /
getch(); / 等待按键,按任一键退出程序 /
exit(0);
}
ch=fgetc(in); /从文本文件中读入字符/
while(ch!=EOF)/加密或解密/
{
/如果是英文字符,则进行加密或解密,否则,不进行加密或解密处理/
if((ch>='a' && ch<='z' ) || (ch>='A' && ch<='Z'))
{ if(flag==1)
fputc(encrypt(ch,key),out);
if(flag==2)
fputc(decrypt(ch,key),out);
}
else
fputc(ch,out);
ch=fgetc(in);
}
/关闭输入及输出文件/
fclose(in);
fclose(out);
}
void displayFile(char infile) /将文本文件的内容显示在屏幕上/
{
FILE fp;
char string[81];
if((fp=fopen(infile,"r"))==NULL) / 以只读方式打开文本文件 /
{
printf("cann't open file");exit(0); / 如果文件不存在或打开失败打印无法打开信息并退出程序 /
}
while(fgets(string,81,fp)!=NULL)
fputs(string,stdout); /把所取字符串送到屏幕显示/
fclose(fp); / 关闭文件 /
}
int main()
{
int i,n;
char ch0,ch1;
char infile[40],outfile[40];
textbackground(LIGHTGRAY); /设置背景颜色为浅灰色/
textcolor(BLACK); /设置文字颜色为黑色/
clrscr();/清除屏幕显示/
logo(); /显示程序信息/
sleep(2); / 延时2秒 /
menu(); /显示屏幕菜单/
ch0=getche();/等待用户从键盘输入,并把输入显示在屏幕上/
while(ch0!='4')
{
clrscr();
if(ch0=='1') /选择加密功能/
{
flag=1;
printf("\nPlease input the infile to be encrypted:"); / 输入要加密的文件名 /
scanf("%s",infile); / 该文件要和本程序放在同一个目录下 /
printf("Please input the encrypt key:");
scanf("%d",&n);/输入加密密码/
printf("Please input the outfile:"); /输入存放加密内容的文件名/
scanf("%s",outfile); / 该文件可以自动创建 /
encrypt_decrypt_File(infile,n,outfile);
printf("\nEncrypt is over!\n");/ 加密成功 /
sleep(1); / 延时1秒 /
}
else if(ch0=='2') /选择解密功能/
{
flag=2;
printf("\nPlease input the infile to be decrypted:"); / 输入要解密的文件名 /
scanf("%s",infile); / 该文件要和本程序放在同一个目录下 /
printf("Please input the decrypt key:");
scanf("%d",&n);/输入解密密码,加密和解密密码应相同/
printf("Please input the outfile:"); /输入存放解密内容的文件名/
scanf("%s",outfile); / 该文件可以自动创建 /
encrypt_decrypt_File(infile,n,outfile);
printf("\nDecrypt is over!\n");
sleep(1); / 延时1秒 /
}
else if(ch0=='3') /选择显示文本文件功能/
{
printf("\nPlease input the infile to be displayed:"); / 输入要显示的文件名 /
scanf("%s",infile);
displayFile(infile);/ 显示文件 /
getch();
}
else
{ /不合法输入/
printf("\nplease input a valid number(1-4)\n");
sleep(1); / 延时1秒 /
}
menu();/显示程序菜单/
ch0=getche(); /等待用户下一次的功能选择/
}
system("cls");/清除屏幕/
logo(); /显示程序信息/
printf("\nGood Bye!\n");
sleep(2);/ 延时2秒 /
system("pause"); / 暂停,按任一键退出程序 /
return 0;
}
c语言和python先学哪个:c语言是基础,先学c语言更好。
C语言的简介:
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
C语言定义:
C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。
发展历史:
C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。
为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSIC”,截至2020年,最新的C语言标准为2018年6月发布的“C18”。
本书采用“案例引导,任务驱动”的编写方式,深入浅出地讲解了C程序设计的基本方法;通过“案例展示—归纳总结—模仿练习—自主设计”的学习模式,使读者循序渐进地掌握C语言的编程方法和思想,提高动手能力。全书案例按照“任务要求—问题分析—程序详解—归纳总结”顺序组织,注重培养读者先进行算法描述后进行编程实践的良好编程习惯,使读者逐步掌握用计算机解决实际问题的方法。全书叙述严谨,实例丰富,内容详尽、难易适中、重点突出,并将指针等较难理解的知识分解到多章讲解,降低了读者学习的难度。
全书分为8章,主要内容包括C语言基础知识、算法、C程序的控制结构、数组与指针、函数、结构体与共用体、文件操作和C语言课程设计。
本书适合作为高等院校计算机专业学生的教材,也可作为自学C语言程序设计的参考用书。
本书以基础知识为框架,介绍了各部分知识所对应的常用开发实例,并进行了透彻的解析。本书内容包括初识C语言、简单的C程序、算法入门、常用数据类型、运算符与表达式、数据输入与输出函数、选择和分支结构程序设计、循环结构、数组、函数编程基础、指针、常用数据结构、位运算操作符、存储管理、预处理和函数类型、文件读写、图形图像处理。
本书所精选的实例都是一线开发人员在实际项目中所积累的,并进行了技术上的解析,给出了详细的实现过程。通过对本书的学习,能够提高读者的开发能力。
本书提供了大量的源程序、素材,提供了相关的模块库、案例库、素材库、题库等多种形式的辅助学习资料,还提供迅速及时的微博、QQ、论坛等技术支持。
本书内容详尽,实例丰富,非常适合作为零基础学习人员的学习用书和大中专院校师生的学习教材,也适合作为相关培训机构的师生和软件开发人员的参考资料。
C语言 家谱问题
本文2023-10-11 06:23:26发表“资讯”栏目。
本文链接:https://www.lezaizhuan.com/article/225759.html