c语言字符串算法判断实验原理,C语言第二次实验报告

一.实验题目,设计思路,实现方法

第十一次作业(二维数组):

11-5 打印杨辉三角(20 分)

本题要求按照规定格式打印前N行杨辉三角。

输入格式:

输入在一行中给出N(1≤N≤10)。

输出格式:

以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。

输入样例:

6

输出样例:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

思路:杨辉三角是一道经典的数学题目,看到输出样例,我们可以很容易的相到用二维数组,之后先打印为1的数,然后利用数学方法,一个元素的值等于上面相邻两个元素的和,然后控制好打印空格与换行。

实现方法:C语言中的二维数组,以及对下标的数学运算。

二.部分源程序

for(i=1;i<=n;i++)

{

for(j=1;j<=i;j++)

{

if(j==1)a[i][1]=1;

else if(j==i)a[i][i]=1;

else {

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

}

}

三.遇到的问题及解决方法,心得体会

此题首先要想到率先打印1的元素,才好进行运算,还有一个点是简单数学方法的应用,a[i][j]=a[i-1][j-1]+a[i-1][j],此题难度不高,尽量能做到一遍通过。

第十二次作业(字符串)

一.实验题目,设计思路,实现方法

12-6 字符串转换成十进制整数(15 分)

输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。

输入格式:

输入在一行中给出一个以#结束的非空字符串。

输出格式:

在一行中输出转换后的十进制数。题目保证输出在长整型范围内。

输入样例:

+-P-xf4+-1!#

输出样例:

-3905

思路:第一步是先虑去不和法的字符。

二.对合法字符进行进制转换运算。

三.对数字的的正负进行判断。

实现方法:先将字符串读入到数组之中,然后对每一项进行考究。

二.部分源程序

while((a[i]=getchar())!=‘#‘)i++;

a[i]=‘\0‘;

for(i=0;a[i]!=‘\0‘;i++){

if(a[i]>=‘0‘&&a[i]<=‘9‘){

number=number*16+a[i]-‘0‘;h=1;

}else if(a[i]>=‘a‘&&a[i]<=‘f‘){

number=number*16+a[i]-‘a‘+10;h=1;

}else if(a[i]>=‘A‘&&a[i]<=‘F‘){

number=number*16+a[i]-‘A‘+10;h=1;

}

t=i;

if(h==1&&q==1){

q=2;

for(j=0;j

if(a[j]==‘-‘){

flag=-flag;

break;

} } }}

三.遇到的问题及解决方法,心得体会

此题虑去不合法字符后,还要对合法字符进行分类讨论,有时候会分不清楚,还有“如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数”,这个设下了一个小陷阱,要对正负标志进行专门的判断。

第十三次作业(指针)

一.实验题目,设计思路,实现方法

13-5 判断回文字符串(20 分)

本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。

函数接口定义:

bool palindrome( char *s );

函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。

裁判测试程序样例:

#include

#include

#define MAXN 20

typedef enum {false, true} bool;

bool palindrome( char *s );

int main()

{

char s[MAXN];

scanf("%s", s);

if ( palindrome(s)==true )

printf("Yes\n");

else

printf("No\n");

printf("%s\n", s);

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例1:

thisistrueurtsisiht

输出样例1:

Yes

thisistrueurtsisiht

输入样例2:

thisisnottrue

输出样例2:

No

thisisnottrue

思路:率先定义一个指针指向这个字符串,然后头尾相互比较字符是否相等,如果相等向中间移动,否则判断不为回文字符。

实现方法:按照题目给定的条件与主函数,利用指针判断。

二.部分源程序

for(int i=0;s[i]!=‘\0‘;i++)

count++;

if(count==1)

return 1;

count--;

while(count>a)

{

if(*(s+a)==*(s+count))

k=1;

else k=0;

count--;

a++;

}

return k;

三.遇到的问题及解决方法,心得体会

先要计算出字符串的长度,因为没有“string.h”的头文件,就for(int i=0;s[i]!=‘\0‘;i++)count++;来计算,若用指针算长度,要记得指回头,还有如果

第十四次实验报告(指针与结构)

一.实验题目,设计思路,实现方法

14-5 指定位置输出字符串(20 分)

本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。

函数接口定义:

char *match( char *s, char ch1, char ch2 );

函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。

裁判测试程序样例:

#include

#define MAXS 10

char *match( char *s, char ch1, char ch2 );

int main()

{

char str[MAXS], ch_start, ch_end, *p;

scanf("%s\n", str);

scanf("%c %c", &ch_start, &ch_end);

p = match(str, ch_start, ch_end);

printf("%s\n", p);

return 0;

}

思路:核心思想还是分类讨论,对出现的字符是否会在字符串内进行分析,如果两个都在字符串内输出什么,如果第二个不在字符串内输出什么,

如果都不在字符串内输出什么。

实现方法:对指针的灵活运用,以及指向字符数组的分析。

二.部分源程序

for(i=0;i

if(s[i]==ch1){

p=&s[i];

for(j=i;j

if(s[j]!=ch2)

printf("%c", s[j]);

if(s[j]==ch2){

printf("%c\n", s[j]);

return p;

}

}

printf("\n");

return p;

}

}

s[len-1]=‘\n‘;

p=&s[len-1];

return p;

三.遇到的问题及解决方法,心得体会

这题本来问题不大,但是有一句很重要的一句话:返回ch1的地址。这句话导致了一个很重要的测试点一直让我过不去,就是两个字符都不在字符串内的时候要输出的是两个空行,

但是其中一个空行是要ch1的地址指向,不能直接输出,这个问题点困扰我好久,第二天早上在食堂突发奇想才明白。

第十五次作业:

一.实验题目,设计思路,实现方法

15-5 建立学生信息链表(20 分)

本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。

函数接口定义:

void input();

该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下:

struct stud_node {

int              num;      /*学号*/

char             name[20]; /*姓名*/

int              score;    /*成绩*/

struct stud_node *next;    /*指向下个结点的指针*/

};

单向链表的头尾指针保存在全局变量head和tail中。

输入为若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束。

裁判测试程序样例:

#include

#include

#include

struct stud_node {

int    num;

char   name[20];

int    score;

struct stud_node *next;

};

struct stud_node *head, *tail;

void input();

int main()

{

struct stud_node *p;

head = tail = NULL;

input();

for ( p = head; p != NULL; p = p->next )

printf("%d %s %d\n", p->num, p->name, p->score);

return 0;

}

/* 你的代码将被嵌在这里 */

二.部分源程序

if(head==NULL)

{

head=p;

head->next=NULL;

}

if(tail!=NULL)

tail->next=p;

tail=p;

tail->next=NULL;

三.遇到的问题及解决方法,心得体会

一开始对链表不是十分熟悉,不是很懂链表创建的问题,经过对建立学生信息库的多次练习才明白,链表的强大之处以及链表结点的创建,以及对指针的应用更加

得心应手。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

八数码c语言编程深度搜索,广度优先搜索解 八数码, 求意见, 求bug/

已结贴√问题点数&#xff1a;100 回复次数&#xff1a;31广度优先搜索解 , 求意见&#xff0c; 求bug/我得去买票了&#xff0c;....#include #include #include #define NUM 5typedef struct bgMatrix{int v, w;char matrix[NUM][NUM];int pre;}Matrix;typedef struct bgQueu…

linux定时任务每两天执行,Linux定时任务 crontab每秒执行 实现2种方法

linux crontab 命令&#xff0c;最小的执行时间是一分钟&#xff0c; 如果要在小于一分钟执行。就要换个方法来实现&#xff0c;下面分别以两种方法来实现&#xff1a;tolog.phpfile_put_contents(/home/fujieace/php/crontab/run.log, date(Y-m-d H:i:s)."\r\n", FI…

C语言中的标识符以字母或下划线开头,牛逼大神整理的C语言基础知识,你确定你不码下来?...

【【怪兽爱C语言】牛逼大神整理的C语言基础知识&#xff0c;你确定你不码下来&#xff1f;】https://toutiao.com/group/6577344220355363341/?iid15906422033&appexplore_article&timestamp1531501720&tt_fromcopy_link&utm_sourcecopy_link&utm_mediumt…

c语言switch同时比较多个变量,C语言学习if和switch分支选择结构

如何判断一个整数是否为正数计算机同我们一样&#xff0c;也是可以判断大小。在此之前&#xff0c;我们需要先说明在计算机中用来判断两个数关系的符号&#xff0c;即关系运算符。关系运算符号c语言中的关系运算符与数学上学习的有什么不同&#xff1f;image.png关系表达式的值…

c语言字符串升序输出,编写程序将已按升序排好的两个字符串a和b中的字符按升序归并到字符串c中,最后输出”abcdefghijklmnpq”。...

满意答案sjoest2014.08.18采纳率&#xff1a;59% 等级&#xff1a;8已帮助&#xff1a;663人(1)char a[]"acegikm"; a数组没有赋予数组大小&#xff0c;所以它的大小&#xff0c;默认等于赋予的字符串长度等于7&#xff0c;所以当strcat(a,b)时&#xff0c;…

c语言指针化简带分数,c语言带分数四则运算问题!!!要求被调函数,化简.

满意答案Lie囡2013.02.03采纳率&#xff1a;58% 等级&#xff1a;12已帮助&#xff1a;8948人#include long int a,b,c,d,x,y,z;char op;int f1();int f2();main(){printf("shu ru di yi ge shu de fen zi:");scanf("%ld",&a);printf("shu ru …

keil C对lib封装库反汇编成C语言,Keil软件“C语言”及“汇编”混编 —— 相关知识整理.doc...

Keil软件“C语言”与“汇编”混编相关知识整理用Keil在C中嵌入汇编1在Keil中嵌入汇编2介绍直接嵌入汇编代码的方法4采用汇编可能会有的好处5Keil C语言与汇编语言混合编程7深入剖析Keil C51 —— 从汇编到C519C语言和汇编语言的变量以及函数的接口问题14汇编与C语言混合编程的关…

c语言smile定义函数,【C初始之习题五】

1.实现一个函数&#xff0c;打印乘法口诀表&#xff0c;口诀表的行数和列数自己指定&#xff0c;输入9&#xff0c;输出99口诀表&#xff0c;输入12&#xff0c;输出1212的乘法口诀表。#define _CRT_SECURE_NO_WARNINGS#include#includevoid Sum(int x){int num 0;for (int i …

2017年9月计算机二级c语言,2017年9月计算机二级C语言程序设计练习题

2017年9月计算机二级C语言程序设计练习题2017年计算机二级考试即将在九月份进行&#xff0c;你准备好了吗?下面是小编为大家带来的计算机二级C语言程序设计练习题&#xff0c;欢迎阅读。练习题一&#xff1a;阅读程序题1、int x6, y7;printf(“%d,”,x); printf(“%d”,y);程序…

c语言中for优化,c – 在For循环中发生了什么GCC优化?

使用gcc 4.6和-O3,我使用简单的时间命令计时以下四个代码#include int main(int argc, char* argv[]){double val 1.0;unsigned int numIterations 1e7;for(unsigned int ii 0;ii < numIterations;ii) {val * 0.999;}std::cout<}案例1在0.09秒内运行#include int main…

android string数字字符串如何使用科学计数法,JSONObject 偶遇 数字字符串变为科学计数法 如何变为普通数字字符串...

和 XML 一样&#xff0c;JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的&#xff0c;因此&#xff0c;JSON的数据格式非常简单&#xff0c;您可以用 JSON 传输一个简单的 String&#xff0c;Number&#xff0c;Boolean&#xff0c;也可以传输一个数组&a…

android getter不起作用,java - 如何在Android Studio中自动生成getter和setter

java - 如何在Android Studio中自动生成getter和setterAndroid Studio中是否有一个快捷方式可以自动生成给定类中的getter和setter&#xff1f;14个解决方案454 votes在编辑器中使用Alt Insert for Windows或Command N for Mac&#xff0c;您可以轻松地为类的任何字段生成get…

android中activity布局,Activity布局初步(一)

LinearLayout和TableLayout一、LinearLayout&#xff1a;线性布局(就是把控件一个挨着一件排下来)[代码]xml代码&#xff1a;android:id —— 为控件指定相应的IDandroid:text —— 指定控件当中显示的文字&#xff0c;需要注意的是&#xff0c;这里尽量使用strings.xml文件当…

离散中多重组合是指_PLC编程中如何使用开关、模拟、脉冲量

在工业自动化控制中&#xff0c;经常会遇到开关量&#xff0c;数字量&#xff0c;模拟量&#xff0c;离散量&#xff0c;脉冲量等各种概念&#xff0c;而人们在实际应用中&#xff0c;对于这些概念又很容易混淆。作为电气工程及其自动化设计人员来说&#xff0c;弄清楚这些变量…

Android连接相机WiFi,安卓手机使用佳能相机机身wifi传输拍摄的操作

第一步 相机基础设置首先请确保相机具有WIFI功能&#xff1b;设置相机图像包含JPG格式&#xff1b;3. 相机电源设置&#xff0c;请关闭相机的自动关闭电源功能以保证传输&#xff1a;MENU→“自动关闭电源”→选择“关闭”或“最长时间”&#xff1b;4. ftp设置&#xff0c;…

word论文排版插件_教你如何用word快速搞定论文排版

在疫情影响下&#xff0c;各大高校纷纷开启了远程指导论文/答辩&#xff0c;尽量不影响毕业时间。这不&#xff0c;前段时间湖北武汉科技大学的同学&#xff0c;利用视频在家顺利通过博士学位论文答辩。emmm&#xff0c;人家都答辩完半个月了&#xff0c;回头瞧瞧我们&#xff…

kodi android 键盘,KODI按键映射,看IPTV按键设置

KODI按键映射&#xff0c;看IPTV按键设置2020-04-09 18:10:1016点赞76收藏7评论KODI播放器功能丰富&#xff0c;其中自定义按键功能也是强大&#xff0c;可以让用户修改各个场景下各个按键的功能&#xff0c;网上好多文章没把事情说明白或太复杂&#xff0c;本教程教大家以简单…

不采取任何措施 盒盖_得了癌症如果不化疗能活多久?医生的答案很实在

癌症有不同的治疗手段&#xff0c;有手术&#xff0c;有放疗&#xff0c;有化疗……说到化疗&#xff0c;有人就说千万不要化疗&#xff0c;千万不要化疗&#xff0c;于是很多人拒绝化疗。有人就问&#xff1a;癌症如果不化疗能活多久&#xff1f;癌症如果不化疗能活多久&#…

android iOS 都精通,Android IOS开发要理解何为面向对象的思维

何为面向对象的思维&#xff1f;面向对象 VS面向过程OOP 》面向对象&#xff0c;全称Object Oriented ProgrammingPOP 》面向过程&#xff0c;全称Process-oriented programming1、通俗的理解&#xff1a;有一天你想吃鱼香肉丝了&#xff0c;怎么办呢&#xff1f;你有两个选择&…

单片机全局有必要封装_C语言开发单片机为什么大多数都采用全局变量的形式?...

全局变量简直就是嵌入式系统的戈兰高地。冲突最激烈的双方是1. 做控制的工程师 2. 做非嵌入式的软件工程师。第一派做控制的工程师。他们普遍的理解就是“变量都写成全局该有多方便”。我之前面试过一个非常有名的做控制实验室里出来的PhD/Master&#xff0c;前前后后陆续有快十…