当前位置:文档之家› 验证性实验1:数组,指针,结构体练习

验证性实验1:数组,指针,结构体练习

学号:012301114138 姓名:王志禄
验证性实验1:数组,指针,结构体练习
1.实验目的
(1)复习C(或C++)语言数组的用法。

(2)复习C(或C++)语言指针的用法。

(3)复习C(或C++)语言结构体的用法。

(4)理解算法时间复杂度分析的基本方法。

(5)通过实验程序,分析它们的时间复杂度。

2.实验内容
(1)将1~10存入数组a[10],并将其逆序输出。

(2)用指针方式编写程序:从键盘输入10个整型数据,并存入数组,要求将10个数中最大的数与第1个输入的数交换;将10 个树中最小的数与最后1个输入的数交换。

(3)有5个学生,每个学生的数据包括学号,姓名,3门课的成绩,平均分。

要求:从键盘依次输入5个学生的学号,姓名,3门课成绩,自动计算3门课成绩的平均分,并将5个学生的数据在屏幕上输出。

3.参考程序
(1)
#include<stdio.h>
void main()
{inti,a[10];
for(i=0;i<=9;i++)
a[i]=i+i;
for(i=9;i>=0;i--)
printf("%3d",a[i]);
printf("\n");
}
(2)
#include<stdio.h>
void main()
{int a[10],*p,*max,*min,k;
for(p=a;p<a+10;p++)
scanf("%d",p);
max=min=a;
for(p=a+1;p<a+10;p++)
{ if(*max<*p)
max=p;
if(*max>*p)
min=p;
}
p=a;
if(*max==*(p+9)&&*min==*p)
{k=*p;
*p=*(p+9);
*(p+9)=k;
}
else
if(*max==*(p+9))
{k=*max;*max=*p;*p=k;k=*min;*min=*(p+9);*(p+9)=k;} else
{k=*min;*min=*(p+9);*(p+9)=k;k=*max;*max=*p;*p=k;} for(p=a;p<a+10;p++)
printf("%4d",*p);
printf("\n");
}
(1)
#include"stdio.h"
struct STUDENT
{char id[10];
char name[8];
int score[3];
doubleave;
}stu[5];
void main()
{intnum=5,i,j;
for(i=0;i<num;i++)
{printf("\t请输入第%d学生的数据",i+1);
printf("\t学号:");
scanf("%s",stu[i].id);
printf("\t姓名:");
scanf("%s",stu[i].name);
intTave=0;
for(j=0;j<3;j++)
{printf("\t第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
Tave+=stu[i].score[j];
}
stu[i].ave=(double)Tave/3.0;
}
printf("\n\t学号\t姓名\t成绩1\t成绩2\t成绩3\t平均分\n"); for(i=0;i<num;i++)
{printf("\t%d\t%s",stu[i].id,stu[i].name);
for(j=0;j<3;j++)
printf("\t%d",stu[i].score[j]);
printf("\t%f\n",stu[i].ave);
}
}。

相关主题