扬州大学电子实习实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件技术基础实验报告书
姓名:陆建霞
学号:131402117
班级:电子1301
指导老师:华继钊
扬州大学信息工程学院
二〇一四年六月
一、
实验准备:掌握指针的使用与赋值。仔细读了题目,分析了题意。
实验目的:从键盘输入三个整数,在屏幕上按从小到大次序打印输出。(用If 语句编程(两种方案:1、交换存储位置;2、不改变输入变量的值))。
实验过程:
(1).
#include "stdio.h"
main()
{int a,b,c,m;
printf("input three numbers\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{t=a,a=b,b=t;} //交换a,b的值
if(a>c)
{t=a,a=c,c=t;} //交换a,c的值
if(b>c)
{t=b,b=c,c=t;} //交换b,c的值
printf("%d,%d,%d\n",a,b,c);
getch();
}
(2).
#include "stdio.h"
main()
{int *p1,*p2,*p3,*p,a,b,c;
printf("input three numbers\n");
scanf("%d%d%d",&a,&b,&c);
p1=&a; //把3个整数分别赋给3个指针变量
p2=&b;
p3=&c;
if(*p1>*p2)
{p=p1;p1=p2;p2=p;} //a>b,交换a和b的值
if(*p1>*p3)
{p=p1;p1=p3;p3=p;} //a>c,交换a和c的值
if(*p2>*p3)
{p=p2;p2=p3;p3=p;} //b>c,交换b和c的值
printf("a=%d,b=%d,c=%d\n",a,b,c); //交换前
printf("%d,%d,%d",*p1,*p2,*p3); //交换后
getch();
}
调试结果:(1)输入:1 9 4
输出:1 4 9
(2)输入:1 9 4
输出:1 4 9
结果分析:赋地址时,不要求左值原来必须指向某个内存单元。而赋数据则要求指针必须指向某个内存单元,给其赋值只是填充了该内存单元的内容。
二、
实验准备:掌握冒泡、选择、插入这三种排序。
实验目的:输入十个整数,排序后按从小到大在屏幕上打印输出。(冒泡、选择、插入;比较这三种算法的优劣)。
实验过程:
1、冒泡法:
#include
main()
{int s[10],t,i,j,x;
printf("input 10 numbers:\n");
for(t=0;t<10;t++)
scanf("%d",&s[t]);
for(i=0;i<9;i++) //外循环控制排序趟数,n个数排n-1趟
for(j=0;j<9-i;j++)//内循环每趟比较的次数
if(s[j]>s[j+1])
{ t=s[j];
s[j]=s[j+1];
s[j+1]=t;} //相邻两关键字记录若逆序,则交换
printf("the result is:\n ");
for(j=0;j<10;j++)
printf("%-4d",s[j]);
printf("\n");
getch();
}
2、选择
#include "stdio.h"
void sort(int a[],int n)
{ int i,j,t,m;
for(i=0;i {t=i; //假设当前趟的第一个数为最值,记在t中 for(j=i+1;j {if(a[t]>a[j]) //若其后有比最值更大的 {t=j;} //则将其下标记在t中 } if(t!=i) //若t不为最初的i值,说明在其后找到比其更大的数 {m=a[i];a[i]=a[t];a[t]=m;} // 则交换最值和当前序列的第一个数 } } void main() { int a[10],i; for(i=0;i<10;i++) scanf("%3d",&a[i]); sort(a,10); for(i=0;i<10;i++) printf("%3d",a[i]); } 3、插入法: # include main() { int a[10],i,j,t; printf("Please input 10 numbers: "); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=1;i<10;i++) //外循环控制趟数,n个数从第2个数开始到最后共进 行n-1次插入 {t=a[i]; //将待插入数暂存于变量t中