博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言第二次实验报告
阅读量:4708 次
发布时间:2019-06-10

本文共 2041 字,大约阅读时间需要 6 分钟。

一、思路及方法

11-8 螺旋方阵

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

12-8 删除重复字符

设计思路:

1.定义二个数组,并赋初值为0

2.读取一个字符串

3.判断数组中被填充的位置,填充的是非0值,没填充的是0值

实现方法:

str1中每个字符的assic码作为str2的下标值,并把对应位置填充为1,同一个字符的assci值相同,所以这样就去掉了重复字符。

13-5 判断回文字符串

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

14-5指定位置输出字符串

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

设计思路:先找到ch1,将其赋值给一个指针,从指针的地址开始,输出知道遇见ch2,停止,返回指针。

15-10 找最长的字符串

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

二、部分源程序

11-8 螺旋方阵

for(i=0;i
=i;j--){ a[n-i-1][j]=N; N++; } for(j=n-2-i;j>=i+1;j--){ a[j][i]=N; N++; } } for(i=0;i

12-6 删除重复字符

for
(i=0;str1[i];i++)
{
str2[str1[i]]=1;
//str1中每个字符的assic码作为str2的下标值,并把对应位置填充为1,同一个字符的assci值相同,所以这样就去掉了重复字符
}
for
(i=0;i!=256;i++)
if
(str2[i]==1)
//判断数组中被str1填充的位置,填充的是非0值,没填充的是0值
printf(
"%c"
,i);
//输出str2的下标值,对应str1中的字符值
putchar(
'\n'
);
 

 13-5 判断回文字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 指定位置输出字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
char *match( char *s, char ch1, char ch2 ){
int i=0;
while(*s!='\0'&&*s!=ch1)
 s++;
char *p=s;
while(*s!='\0'&&*s!=ch2){
printf("%c",*s);
s++;
i++;
}
if(*s==ch2)
printf("%c\n",*s);
else
printf("\n");
return p;
}

15-10 找最长的字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<string.h>
int
main()
{
  
int
N,i,j,k;
  
char
str[10000][100];
  
int
a,b;
  
scanf(
"%d"
,&N);
  
for
(i=0;i<N;i++)
    
scanf(
"%s"
,str[i]);
  
a=strlen(str[0]);
  
b=0;
  
for
(i=1;i<N;i++){
    
if
(a<strlen(str[i])){
     
a=strlen(str[i]);
     
b=i;
    
}
  
}
  
printf(
"The longest is: %s"
,str[b]);
  
return
0;
}

三、心得体会

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

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

3.审题不清:在15-10 找最长的字符串中误以为找的是最大字符串

4.对数组的界限不清:导致运行结果出现乱码

 
 
 
 
好文要顶 关注我 收藏该文

转载于:https://www.cnblogs.com/caiweiming/p/8355327.html

你可能感兴趣的文章
[转载]java多线程学习-java.util.concurrent详解(一) Latch/Barrier
查看>>
ionic - 运行起来
查看>>
Shell 输入/输出重定向
查看>>
数据结构与算法分析(C++)读书笔记
查看>>
(转)nginx应用总结(1)--基础认识和应用参数优化配置
查看>>
(转)关于sql和MySQL的语句执行顺序(必看!!!)
查看>>
UVALive 3668 A Funny Stone Game(博弈)
查看>>
信息论随笔2: 交叉熵、相对熵
查看>>
再学习之MyBatis.
查看>>
CodeWars题目筛选
查看>>
MySQL— 索引
查看>>
电子书下载:Professional Web Design: Techniques and Templates, 4th Edition
查看>>
10要点解决IE6兼容性问题
查看>>
Seven Python Tools All Data Scientists Should Know How to Use
查看>>
cocos2d-x学习之路(二)——分析AppDelegate和HelloWorldScene文件
查看>>
Asp.net 对于服务器控件添加Client端方法
查看>>
在Salesforce中创建Approval Process
查看>>
NFS服务搭建与配置
查看>>
python计算文件md5值
查看>>
android 4.1 Emulator Skins
查看>>