数组程序设计实验报告.doc
文本预览下载声明
实验报告
田晶晶
201011041056
一、实验名称:数组程序设计实验
二、实验目的
1 掌握一位数组、二维数组的定义、引用方法;
2 掌握字符数组的定义与引用,常用字符串处理函数;
3 掌握与数组有关的一些常用算法。
三、实验内容
1 从键盘输入一段英文,找出长度最长和最短的单词,以及出现次数最多的字符。
从键盘输入一段英文,找出长度最长的单词。
实验代码:
#include stdio.h
#include string.h
char word(char str[])
{int i,k,flag=0,max=0;
char str1[10],ch[10];
for(i=0;str[i]!=\0;i++)
if((65=str[i]str[i]=90)||(97=str[i]str[i]=122))
{if(flag==0)
{
k=0;
ch[k]=str[i];
flag=1;}
else if(i==strlen(str)-1)
{k++;
ch[k]=str[i];
ch[k+1]=\0;
if(k+1max)
{max=k+1;
strcpy(str1,ch);
}
}
else
{k++;
ch[k]=str[i];
}
}
else if(flag==1)
{ch[k+1]=\0;
flag=0;
if(k+1max)
{max=k+1;
strcpy(str1,ch);
}
}
printf(输入的字符串中,最长的单词有%d个字母,该单词是%s\n,max,str1);
}
main()
{char a[100];
printf(请输入一行字符:\n);
gets(a);
word(a);
}
实验运行结果
实验中出现的问题:
如果从键盘键入的英文中有两个或两个以上长度最长且相同的单词,则程序只能输出第一个单词,此问题并未解决。
从键盘键入一段英文,找出长度最短的单词
实验代码
#include stdio.h
#include conio.h
void XX(char string[])
{
int i,j,word=0,wordstart=0;
int zishu,xiaozishu=10;
for(i=0;string[i]!=\0;i++)
{
if(string[i]== )
{
word=0;
}
else if(word==0)
{
word=1;
zishu=0;
for(j=i;string[j]!= string[j]!=\0;j++)
{
zishu++;
}
if(zishuxiaozishu)
{
xiaozishu=zishu;
wordstart=i;
}
}
}
for(i=wordstart;string[i]!= string[i]!=\0;i++)
{
putchar(string[i]);
}
}
void main()
{
char str[80];
gets(str);
XX(str);
getch();
printf(\n);
}
实验运行结果
实验中出现的问题
如果从键盘输入的英文中,最短单词并不唯一,本程序只能输出第一个,此问题还未解决。
从键盘输入一段英文,找出出现次数最多的字符。
实验代码
#include stdio.h
#include stdlib.h
#include string.h
#define MAX_LEN 100
struct _NODE
{
char ch;
int num;
struct _NODE *next;
};
struct _NODE *_STRCMP(struct _NODE *CNODE,char ch)
{
int flag = 0;
if(CNODE == NULL)
{
CNODE = (struct _NODE *)malloc(sizeof(struct _NODE));
CNOD
显示全部