数组、字符处理实验报告
时间:2021-09-20 来源:博通范文网 本文已影响 人
验 实验 4
数 组
1.实验目的和要求 (1)掌握一维数组与二维数组的定义、使用及初始化方法。
(2)学习数组作为函数参数的用法。
(3)掌握字符数组和字符串函数的使用方法。
(4)掌握与数组有关的常用排序算法,进一步理解模块化程序设计的方法。
(5)掌握字符、字符串的输入/输出方法。
(6)掌握字符数组的使用。
(7)学会使用字符串的指针和指向字符串的指针变量。
2.实验内容:实验指导书中的 实验六、实验七 3.实验步骤 实验六 数组部分:
6-1:解决问题的算法或源程序代码:
程序的运行测试结果截图(考虑各种情况下的运行结果):
6-2:该程序完整的源程序代码是:
程序运行结果截图:
6-3 :该程序完整的源程序代码是:
程序运行结果截图:
6-4.:解决问题的关键算法的源程序代码是:
程序运行结果截图:
6-5:解决问题的关键算法的源程序代码是:
程序运行结果截图:
6-6 (选作):我使用的算法为:请用文字描述一下
程序运行结果截图:
6-7 (选作):我使用的算法为:
程序运行结果截图:
7-1 该程序的功能是:
去除空格后的字符串 程序运行结果截图:
7-2:解决问题的关键算法的源程序代码是:
程序运行结果截图:
7-3:解决问题的关键算法的源程序代码是:
程序运行结果截图:
7-4:解决问题的关键算法的源程序代码是:
程序运行结果截图:
7-5:解决问题的关键算法的源程序代码是:
程序运行结果截图:
7-6:解决问题的关键算法的源程序代码是:
程序运行结果截图:
4 、实验小结 一维数组与二维数组使用和初始化,数组作为函数参数的用法还是不太熟练。掌握了与数组有关的常用排序算法,字符、字符串的输入输出方式。进一步掌握使用字符串的指针和指向字符串的指针变量的方法。掌握了字符串数组和数字数组的运算。
中间那段描写得超级赞!
C语言实验书P37
(2)#include
int main(void)
{
int i;
char ch;
char str[100];
printf("请输入字符串:\\\\n");
scanf("%s", str);
printf("请输入查找字符:\\\\n");
scanf(" %c", &ch);
for (i=0; str[i]!=\\"\\\\0\\"; i++)
{
if (str[i] == ch)
{
printf("位置为:%d\\\\n", i+1);
return 0;
}
}
printf("该字符不存在\\\\n");
return 0;
}
(3)
(1)
#include
main()
{
long matrix[8][8],min,max,temp;
int i,j,m,n;
printf("\\\\nPlease input n of Matrix:\\\\n");
scanf("%d",&n);
m=n;
printf("\\\\nPlease input elements of Matrix (%d*%d):\\\\n",m,n);for(i=0;i\n
for(j=0;j\n
scanf("%ld",&matrix[i][j]);
for(i=0;i\n
{
for(j=0;j\n
printf("%5ld",matrix[i][j]);
printf("\\\\n");
}
}
(2)
#include
main()
{
long matrix[8][8],min,max,temp;
int i,j,m,n,nMax=0,nMin=0;
printf("\\\\nPlease input n of Matrix:\\\\n");
scanf("%d",&n);
m=n;
printf("\\\\nPlease input elements of Matrix (%d*%d):\\\\n",m,n);for(i=0;i\n
for(j=0;j\n
scanf("%ld",&matrix[i][j]);
min=max=matrix[0][0];
for(i=0;i\n
for(j=0;j\n
{
if(matrix[i][j]>max)
{
max=matrix[i][j];
nMax=i;
}
else if (matrix[i][j]\n
{
min=matrix[i][j];
nMin=i;
}
}
for(j=0;j\n
{
temp=matrix[nMax][j];
matrix[nMax][j]=matrix[nMin][j];
matrix[nMin][j]=temp;
}
printf("\\\\nResult matrix:\\\\n");
for(i=0;i\n
{
for(j=0;j\n
printf("%5ld",matrix[i][j]);
printf("\\\\n");
}
}
(3)
#include
main()
{
long matrix[8][8],min,max,temp;
int i,j,m,n,nMax=0,nMin=0;
printf("\\\\nPlease input n of Matrix:\\\\n");
scanf("%d",&n);
m=n;
printf("\\\\nPlease input elements of Matrix (%d*%d):\\\\n",m,n);for(i=0;i\n
for(j=0;j\n
scanf("%ld",&matrix[i][j]);
min=max=matrix[0][0];
for(i=0;i\n
for(j=0;j\n
{
if(matrix[i][j]>max)
{
max=matrix[i][j];
nMax=i;
}
else if (matrix[i][j]\n
{
min=matrix[i][j];
nMin=i;
}
}
for(j=0;j\n
{
temp=matrix[nMax][j];
matrix[nMax][j]=matrix[nMin][j];
matrix[nMin][j]=temp;
}
printf("\\\\nResult matrix:\\\\n");
if(nMax!=nMin)
for(i=0;i\n
{
for(j=0;j\n
printf("%5ld",matrix[i][j]);
printf("\\\\n");
}
Printf(“same line!\\\\n”)
(4)#include
void main()
{
int a[20];
int n,j,i,k,m=20;
printf("给定的数组为:\\\\n");
for(n=0;n\n
{
a[n]=2*n+3;
printf("%d ",a[n]);
}
printf("\\\\n");
printf("输入要查找的数:");
scanf("%d",&j);
for (n=0;n\n
{
i=(m+n)/2;
if(a[i]\n
n=i+1;
else if (a[i]>j)
m=i-1;
else if(a[i]=j)
{
printf("该数在数组的第%d位上\\\\n",i+1);break;
}
if(n>m)
{
printf("No Found\\\\n");
}
}
}
二、
#include
void arr();
int sea(int j);
int a[20];
void main()
{
int n,j,i,h;
printf("请输入20个数据:\\\\n");
for(n=0;n
scanf("%d",&a[n]);
}
arr();
printf("\\\\n请输入要查找的数:");
scanf("%d",&j);
h=sea(j);
if(h==0)
{
printf("No found\\\\n");
}
else
{
printf("该数在已排序数组的第%d位\\\\n”,h)}
}
void arr()
{
int z,n,k;
for(n=0;n\n
{
for(k=0;k\n
if(a[k]>a[k+1])
{
z=a[k];
a[k]=a[k+1];
a[k+1]=z;
}
printf("将数组排序,得:\\\\n");
for(n=0;n\n
printf("%d ",a[n]);
}
}
int sea(int j)
{
int n,i,h,m=20;
for(n=0;n\n
{
i=(n+m)/2;
if(a[i]\n
n=i+1;
else if(a[i]>j)
m=i-1;
else if(a[i]=j)
{
h=i+1;break;}}if(n>m)h=0;return h; }
很实在的一篇范文。