c语言实验三实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计实验报告

实验三使用数组的程序设计

班级学号姓名

一、实验目的

(1)掌握一维数组和二维数组的定义、赋值和输入输出方法。

(2)掌握字符数组的使用。

(3)掌握与数组有关的算法。

二、实验内容及步骤

1、检验并打印幻方矩阵

在下面的5*5阶幻方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些幻方矩阵中的元素读到一个二维整型数组中,然后检验其是否为幻方矩阵,并将其按如下格式显示到屏幕上。

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

程序代码:

#include

int main()

{

int i,j,k=0;

int sum1[5]={0},sum2[5]={0},b[2]={0};

int

a[5][5]={{17,24,1,8,15},{23,5,7,14,16},{4,6,13,20,22},{10,12,19,21,3},{11,18,25, 2,9}};

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

{

printf("%4d",a[i][j]);

sum1[i]=sum1[i]+a[i][j];

sum2[i]=sum2[i]+a[j][i];

}

printf("\n");

}

for(i=0;i<5;i++)

{

b[0]=b[0]+a[i][i];

b[1]=b[1]+a[i][4-i];

}

for(i=0;i<5;i++)

{

if(sum1[i]==b[0]&&sum2[i]==b[0]&&b[0]==b[1])

k++;

}

if(k==5)

printf("这是一个幻方矩阵.\n");

else

printf("这不是一个幻方矩阵.\n");

return 0;

}

2、完成以下程序,并进行调试

某班期末考试科目为数学、英语和计算机,有最多不超过30人参加考试,考试后要求:1)计算每个学生的总分和平均分;

2)按总分成绩由高到低排出成绩的名次;

3)打印出名次表,表格内包括学生学号、各科分数、总分和平均分;

4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。

【提示】:用二维数组score存放每个学生各门课程的成绩,用一维数组num存放每个学生的学号,用一维数组sum存放每个学生的总分,用一维数组aver存放每个学生的平均分。

程序代码:

#include

int main()

{

int i,j,k,l,g,t,s,r,p;

int score[31][4],num[31],sum[31]={0},aver[31],m;

printf("请输入学生人数:\n");

scanf("%d",&k);

for(i=1;i<=k;i++)

{

printf("请输入学号和各科成绩:\n");//输入学号及成绩

scanf("%d",&num[i]);getchar();

for(j=1;j<4;j++)

{

scanf("%d",&score[i][j]);getchar();

sum[i]=sum[i]+score[i][j];

}

aver[i]=sum[i]/3;

}

for(j=1;j

for(i=1;i<=k-j;i++)

{

if(sum[i]

{

for(l=1;l<4;l++)

{p=score[i][l];

score[i][l]=score[i+1][l];

score[i+1][l]=p;

}

t=sum[i];s=num[i];r=aver[i];

sum[i]=sum[i+1];

num[i]=num[i+1];

aver[i]=aver[i+1];

sum[i+1]=t;num[i+1]=s;aver[i+1]=r;

}

}

printf(" 学号英语高数计算机总分平均分\n");

for(i=1;i

printf("%4d%6d%6d%8d%6d%6d\n",num[i],score[i][1],score[i][2],score[i][3],sum [i],aver[i]);

for(j=1;j

{

printf("请输入你要查找的学号:");

scanf("%d",&m);

for(i=1;i

{

if(m==num[i])

{

printf("%4d,%4d\n",i,sum[i]);break;

}

}

}

return 0;

}

运行结果:

3.编写一个程序,利用字符数组实现两个字符串的比较。(注意不能使用字符串比较函数strcmp())

程序代码:

#include

#include

int main()

{

int i,k,l,m=0,t;

char str1[100],str2[100];

printf("请输入你要比较的两个字符串,以空格隔开.\n");

scanf("%s%s",str1,str2);

k=strlen(str1);

l=strlen(str2);

t=k+1;

if(k>l)

t=l+1;

for(i=0;i

{

if(str1[i]==str2[i])

{

m++;

continue;

}

else if(str1[i]>str2[i])

{

相关文档
最新文档