一、思路及方法

11-8 螺旋方阵

设计二维数组,通过对方阵的行和列进行特征分析找出其中规律,利用循环即可将方阵输出。

12-6 字符串转换成十进制整数

设计字符数组,用getchar函数逐个截取,并设定以#为结束符;将每个符合条件的数组元素,利用ASCII码的十进制关系进行变化并输出。

13-5 判断回文字符串

设计字符型数组,并利用指针来传递输入内容;通过函数来判断是否为回文。

14-6 通讯录的录入与显示

通过定义结构数组,通过循环输入和输出存储内容。

15-10 建立学生信息链表

设计动态链表,对每项内容分别进行判断和处理。

二、部分源程序

11-8 螺旋方阵

  for(i=;i<m;i++){
for(j=i;j<n-i;j++){
a[i][j]=N;
N++;
}
for(j=i+;j<n-i;j++){
a[j][n-i-]=N;
N++;
}
for(j=n-i-;j>=i;j--){
a[n-i-][j]=N;
N++;
}
for(j=n--i;j>=i+;j--){
a[j][i]=N;
N++;
}
}
for(i=;i<n;i++){
for(j=;j<n;j++)
printf("%3d",a[i][j]);
printf("\n");
}

12-6 字符串转换成十进制整数

  while((str[i]=getchar())!='#')
i++;
for(j=0;j<=i;j++){
if(str[j]=='-'){
k=j;
break;
}
}
for(j=0;j<=i;j++){
if((str[j]<='9'&&str[j]>='0')||(str[j]<='F'&&str[j]>='A')||(str[j]<='f'&&str[j]>='a')){
a=j;
break;
}
}
b=k;
k=0;
for(j=0;str[j]!='\0';j++){
if((str[j]<='9'&&str[j]>='0')||(str[j]<='F'&&str[j]>='A')||(str[j]<='f'&&str[j]>='a')){
c[k]=str[j];
k++;
}
}
c[k]='\0';
int number=0;
for(i=0;c[i]!='\0';i++){
if(c[i]>='0'&&c[i]<='9')
number=number*16+c[i]-'0';
else if(c[i]>='a'&&c[i]<='f')
number=number*16+c[i]-'a'+10;
else if(c[i]>='A'&&c[i]<='F')
number=number*16+c[i]-'A'+10;
}

13-5 判断回文字符串

bool palindrome( char *s )
{
int i=0,n,m;
n=strlen(s);
if(n%2==0){
m=n/2;
for(i=0;i<=m;i++){
if(s[i]!=s[n-1-i]){
return false;
}
}
return true;
}
else{
m=n/2+1;
for(i=0;i<=m;i++){
if(s[i]!=s[n-1-i]){
return false;
}
}
return true;
}
}

14-6 通讯录的录入与显示

#include<stdio.h>
struct message {
char name[100];
char birth[100];
char sex;
char number[100],phone[100];
};
int main()
{
int N,n;
scanf("%d",&N);
struct message s[11];
int i,j,k;
for(i=0;i<N;i++)
scanf("%s %s %c %s %s",&s[i].name,&s[i].birth,&s[i].sex,&s[i].number,&s[i].phone); scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&k);
if(k<N&&k>=0){
printf("%s %s %s %c %s\n",s[k].name,s[k].number,s[k].phone,s[k].sex,s[k].birth);
}
else
printf("Not Found\n");
}
return 0;
}

15-10 建立学生信息链表

void input()
{
int num,score;
char name[20];
struct stud_node *p;
scanf("%d",&num);
while(num){
p=(struct stud_node *)malloc(sizeof(struct stud_node));
scanf("%s %d",name,&score);
p->num=num;
p->score=score;
strcpy(p->name,name);
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%d",&num);
}
}

  

三、心得体会

1.在创建链表时一定要注意对每个链表进行空间的分配,核对链表最后一个的NEXT是否指向NULL。

2.定义嵌套结构时一定要注意能否正确的表示嵌套起来的结构内的部分。

3.在用利用自定义函数的功能时指针可以避免返回值的书写。

4.灵活运用ASCII码和getchar();注意%c会“吃”空格。

5灵活分析目标要求的特征,可以通过特点进行总结,使函数作用域扩大。

C语言的第二次实验报告的更多相关文章

  1. 20145330《Java程序设计》第二次实验报告

    20145330<Java程序设计>第二次实验报告 实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承多态 3.初步掌握UM ...

  2. 20145320《Java程序设计》第二次实验报告

    20145320<Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.12 15: ...

  3. 《Java程序设计》第二次实验报告

    20145220 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测 ...

  4. 20145333 《Java程序设计》第二次实验报告

    2014333 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测试 ...

  5. 20145240 《Java程序设计》第二次实验报告

    20145240 <Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.12 实验 ...

  6. java程序设计第二次实验报告

    北京电子科技学院(BESTI) 实验报告 课程:数据结构    班级:1352    姓名:何伟钦     学号:20135223 成绩:            指导教师:娄嘉鹏      实验日期: ...

  7. java第二次实验报告20135231

    Java实验报告二:Java面向对象程序设计 20135231 何佳 实验要求: 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉 ...

  8. 2019JAVA第二次实验报告

    Java实验报告 班级 计算机科学与技术二班 学号 20188442 姓名 吴怡君 完成时间 2019/9/19 评分等级 实验二 Java简单类与对象 实验目的 掌握类的定义,熟悉属性.构造函数.方 ...

  9. 第二次实验报告:使用 Packet Tracer 分析应用层协议

    个人信息: 姓名:倪晓东 班级:计算1811 学号:201821121020 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序 ...

随机推荐

  1. asp.net自定义控件之加载层

    知识点:JQuery.Ajax.自定义控件 该文旨在给大家开发自定义控件(结合js)一个思路,一个简单的示例,可能在实际项目中并不会这样做. 先来看看效果: 1.在静态页面里开发好想要的效果 jQue ...

  2. Anaconda中常用的用法

    Anaconda中常用的用法 conda 是开源包(packages)和虚拟环境(environment)的管理系统. packages 管理: 可以使用 conda 来安装.更新 .卸载工具包 ,并 ...

  3. POJ 2253 Frogger(dijkstra变形)

    http://poj.org/problem?id=2253 题意: 有两只青蛙A和B,现在青蛙A要跳到青蛙B的石头上,中间有许多石头可以让青蛙A弹跳.给出所有石头的坐标点,求出在所有通路中青蛙需要跳 ...

  4. Qt5编译error01

    1.Qt551x86 vs2013 1.1.“error: C2001: 常量中有换行符” 问题还原:源码:“QString str = tr("已接收 %1MB (%2MB/s) \n共% ...

  5. [转][osg]osg渲染引擎框架图,流程图(根据《最长一帧》整理)

    转自:http://m.blog.csdn.net/article/details?id=49679731 本文参考<<osg最长一帧>>, <<OpenScene ...

  6. H5 canvas控制坦克移动

    接着上一篇(http://www.cnblogs.com/zhouhuan/p/H5_tankgame.html),这一篇研究一下怎么响应玩家的操作让坦克进行相应的移动.   1. 了解keydown ...

  7. $state和$rootScope.$on($stateChangeStart)

    这两者的区别:请看博客:http://stackoverflow.com/questions/32680292/angularjs-state-and-rootscope-onstatechanges ...

  8. Shell排序算法和合并排序算法

    Shell排序(希尔排序)算法Shell排序严格来说基于插入排序的思想,其又称为希尔排序或者缩小增量排序. Shell排序的流程:1.将由n个元素的数组分成n/2个数字序列,第1个数据和第n/2+1个 ...

  9. react中父组件调用子组件的方法

    1.直接使用ref进行获取 import React, {Component} from 'react'; export default class Parent extends Component ...

  10. ubuntu16 Intellij Idea Install&config

    1,下载idea二进制文件,有免费和不免费的. https://www.jetbrains.com/idea/download/#section=linux 2,解压下载文件. tar -xvzf . ...