医院网站建设多少钱,海阳手机网站开发,昆明网站seo报价,织梦怎么用模板建站一#xff0e;实验题目#xff0c;设计思路#xff0c;实现方法第十一次作业(二维数组)#xff1a;11-5 打印杨辉三角(20 分)本题要求按照规定格式打印前N行杨辉三角。输入格式#xff1a;输入在一行中给出N(1≤N≤10)。输出格式#xff1a;以正三角形的格式输出前N行杨辉…一实验题目设计思路实现方法第十一次作业(二维数组)11-5 打印杨辉三角(20 分)本题要求按照规定格式打印前N行杨辉三角。输入格式输入在一行中给出N(1≤N≤10)。输出格式以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。输入样例6输出样例11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1思路杨辉三角是一道经典的数学题目看到输出样例我们可以很容易的相到用二维数组之后先打印为1的数然后利用数学方法一个元素的值等于上面相邻两个元素的和然后控制好打印空格与换行。实现方法C语言中的二维数组以及对下标的数学运算。二部分源程序for(i1;in;i){for(j1;ji;j){if(j1)a[i][1]1;else if(ji)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(i0;a[i]!‘\0‘;i){if(a[i]‘0‘a[i]‘9‘){numbernumber*16a[i]-‘0‘;h1;}else if(a[i]‘a‘a[i]‘f‘){numbernumber*16a[i]-‘a‘10;h1;}else if(a[i]‘A‘a[i]‘F‘){numbernumber*16a[i]-‘A‘10;h1;}ti;if(h1q1){q2;for(j0;jif(a[j]‘-‘){flag-flag;break;} } }}三遇到的问题及解决方法心得体会此题虑去不合法字符后还要对合法字符进行分类讨论有时候会分不清楚还有“如果在第一个十六进制字符之前存在字符“-”则代表该数是负数”这个设下了一个小陷阱要对正负标志进行专门的判断。第十三次作业(指针)一实验题目设计思路实现方法13-5 判断回文字符串(20 分)本题要求编写函数判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。函数接口定义bool palindrome( char *s );函数palindrome判断输入字符串char *s是否为回文。若是则返回true否则返回false。裁判测试程序样例#include #include #define MAXN 20typedef enum {false, true} bool;bool palindrome( char *s );int main(){char s[MAXN];scanf(%s, s);if ( palindrome(s)true )printf(Yes\n);elseprintf(No\n);printf(%s\n, s);return 0;}/* 你的代码将被嵌在这里 */输入样例1thisistrueurtsisiht输出样例1Yesthisistrueurtsisiht输入样例2thisisnottrue输出样例2Nothisisnottrue思路率先定义一个指针指向这个字符串然后头尾相互比较字符是否相等如果相等向中间移动否则判断不为回文字符。实现方法按照题目给定的条件与主函数利用指针判断。二部分源程序for(int i0;s[i]!‘\0‘;i)count;if(count1)return 1;count--;while(counta){if(*(sa)*(scount))k1;else k0;count--;a;}return k;三遇到的问题及解决方法心得体会先要计算出字符串的长度因为没有“string.h”的头文件就for(int i0;s[i]!‘\0‘;i)count;来计算若用指针算长度要记得指回头还有如果第十四次实验报告(指针与结构)一实验题目设计思路实现方法14-5 指定位置输出字符串(20 分)本题要求实现一个函数对给定的一个字符串和两个字符打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。函数接口定义char *match( char *s, char ch1, char ch2 );函数match应打印s中从ch1到ch2之间的所有字符并且返回ch1的地址。裁判测试程序样例#include #define MAXS 10char *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(i0;iif(s[i]ch1){ps[i];for(ji;jif(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‘;ps[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(headNULL){headp;head-nextNULL;}if(tail!NULL)tail-nextp;tailp;tail-nextNULL;三遇到的问题及解决方法心得体会一开始对链表不是十分熟悉不是很懂链表创建的问题经过对建立学生信息库的多次练习才明白链表的强大之处以及链表结点的创建以及对指针的应用更加得心应手。