C语言程序设计 实验报告4--数组

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
return 0;
}
5、#include<stdio.h>
int main()
{int a[11]={1,3,5,7,9,15,19,25,33,46};
int t1,t2,n,e,i,j;
printf("array a:\n");
result=s1[i]-s2[i];
printf("字符串%s",s1);
if(result==0) printf("等于");
else if (result>0) printf("大于");
else printf("小于");
printf("字符串%s",s2);
return 0;
}
三、实验环境
printf("字符串%s",s1);
if(result==0) printf("等于");
else if (result>0) printf("大于");
else printf("小于");
printf("字符串%s",s2);
return 0;
}
{int i,j,a[N][N];
for(i=0;i<N;i++)
{a[i][i]=1;
a[i][0]=1;
}
for(i=2;i<N;i++)
for(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<N;i++)
{for(j=0;j<=i;j++)
a[i]=n;
for(j=i+1;j<11;j++)
{t2=a[j];
a[j]=t1;
t1=t2;
}
break;
}
}
}
printf("Now,array a:\n");
for(i=0;i<11;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
6、#include<stdio.h>
五、调试过程
第六题:1、出现了i和result且前面没有对其定义,所以再前面需要定义i和result。即在“char s1[300],s2[300];”后加上“int i,result;”;2、“while(s1[i]!='\0' && s2[i]!='\0' && s1[i]=s2[i]) i++;”中“s1[i]=s2[i]”不是让s2[i]赋值于s1[i],而是要当s1[i]等于s2[i]时,所以应该为“s1[i]==s2[i]”3、“scanf("%s%s",&s1,&s2);”中,其中字符串是不需要取地址的,即智力应该为“scanf("%s%s",s1,s2);”。
(2)选择排序法:输入十个数组,从10个元素中通过比较找出最小的元素,把它放在第一个位置上,在剩下的9个元素中找出第二小的元素把它放在第二个位置上,直至比较完后面剩下的几个数。
2、输入s1和s2,当字符串s1[i]不等于\0时,i++,当字符串s2[j]不等于\0时,s1[i++]=s2[j++];s1[i]='\0';,输出连接后的字符串。
3、定义N,N表示5,输入数组元素,用for语句来执行循环,循环的作用是为了将对称的元素的值对调,若i<N/2成立,第i个元素与第N-i-1个元素互换,而temp就是起中间变量,最后输出最后互换的数值。
4、先定义N,用for语句来输入数组为10行10列,其中i为行数,j为列数。a[i][i]=1表示对角线元素的值为1,a[i][0]=1表示第一列元素的值为1,用for嵌套语句,若i<N,j<=i-1成立,则a[i][j]=a[i-1][j-1]+a[i-1][j]。若i<N,j<=i,则输出数值个元素的值。
scanf("%s",s2);
while(s1[i]!='\0')
i++;
while(s2[j]!='\0')
s1[i++]=s2[j++];
s1[i]='\0';
printf("\n新的字符串为:%s\n",s1);
return 0;
}
3、#include<stdio.h>
#define N 5
int main()
1.硬件:PC机;
2.软件:Windows操作系统、Visual C++ 6.0。
四、算法描述及实验步骤
1、(1)冒泡法:输入十个数给a[0]到a[9],用for语句来执行循环。j由0变到8共执行了9次循环,再进9-j次比较,俩俩进行比较。若a[i]>a[i+1]成立,则a[i]与a[i+1]二者交换位置,反之,则不交换位置,然后输出a[0]到a[9]。
printf("%5d",a[i]);
printf("\n");
return 0;
}
2、#include<stdio.h>
int main()
{char s1[80],s2[40];
int i=0,j=0;
printf("字符串1:");
scanf("%s",s1);
printf("字符串2:");
for(i=1;i<=9;i++)
{min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf("\nThe sorted number:\n");
for (i=1;i<=10;i++)
福建农林大学金山学院实验报告
系(教研室):专业:年级:2014
实验课程:姓名:学号:实验室号:_
计算机号:实验时间:指导教师签字:成绩:
实验4:数组
一、实验目的和要求
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法
2.掌握字符数组和字符串函数的使用
3.掌握与数组有关的算法(特别是排序算法)
二、实验内容和原理
6.以下程序功能:由键盘输入两个字符串,比较它们的大小。但程序有错,请调试程序。
intmain()
{ char s1[300],s2[300];
printf("请输入两个字符串\n");
scanf("%s%s",&s1,&s2);
while(s1[i]!=’\0’&& s2[i]!=’\0’&& s1[i]=s2[i]) i++;
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insert data:");
scanf("%d",&n);
e=a[9];
if(n>e)
a[10]=n;
else
{for(i=0;i<10;i++)
{if(a[i]>n)
{t1=a[i];
{int a[N],i,t;
printf("百度文库nter array a:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("array a:\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
for(i=0;i<N/2;i++)
{t=a[i];
1.分别采用冒泡法、选择排序法对10个整数排序。10个整数用scanf函数输入。
2.将两个字符串连接起来,不要用strcat函数。
3.将一个数组中的值按逆序存放。例如,原来顺序为3 2 1 8 9。要求改为9 8 1 2 3。
4.输出杨辉三角形(要求输出10行)。
5.已知一个已排好序的数组,要求输入1个数后,按原来排序的规律将它插入数组中。
六、实验结果
1、(1)
(2)
2、
3、
4、
5、
6、
七、总结
在c语言中数组可以有效地处理大批量的数据,大大提高了工作效率,十分方便。所以在这章中了解很多如排序算法等有关数组的函数来更方便解决实际问题。
附录:
1、(1)#include<stdio.h>
int main()
{int a[10];
int i,j,t;
printf("请输入10个数字(用空格隔开):\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if (a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
a[i]=a[N-i-1];
a[N-i-1]=t;
}
printf("\nNow,array a:\n");
for (i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
return 0;
}
4、#include<stdio.h>
#define N 10
int main()
int main()
{ char s1[300],s2[300];
int i,result;
printf("请输入两个字符串\n");
scanf("%s%s",s1,s2);
while(s1[i]!='\0' && s2[i]!='\0' && s1[i]==s2[i]) i++;
result=s1[i]-s2[i];
for (i=1;i<=10;i++)
{printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("The orginal number:\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
5、显示初始数值,输入待插入的数值num,若num>末尾元素,num插在数组尾。若num<末尾元素,则用for语句来执行循环,若a[i]>num,则插在a[i]处,将原第i个元素之后所有元素下标依次增1,最后输出结果。
6、先定义i,result,定义字符s1,s2用scanf函数输入俩个字符串,用while语句判断条件,当s1[i]!=’\0’ && s2[i]!=’\0’ && s1[i]==s2[i],resul=s1[i]-s2[i],输出字符串s1。用if语句判断result。若result=0,输出等于。若result>0,输出大于。则反之。最后输出结果。
printf("从小到大排序:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
(2)#include<stdio.h>
int main()
{int i,j,min,temp,a[11];
printf("enter data:\n");
相关文档
最新文档