实验七-1 数组程序设计
班级: 学号: 姓名: 评分:
一.【实验目的】
1、熟练掌握使用一维数组编程的方法。
2、熟练掌握排序算术。
3、熟练掌握使用二维数组编程的方法。
4、进一步掌握C程序的调试方法和技巧。
二.【实验内容和步骤】
1、程序调试题
A.目标:进一步学习掌握程序调试的方法和技巧。
B.内容:从键盘输入一个正整数n(0<n<9)和一组(n个)有序的整数,再输入一个整数x,把x插入到这组数组中,使该组数据仍然有序。改正程序中的错误,使其实现程序的功能。(注:程序文件保存在“调试示例”文件夹中,文件名为error07_1.cpp)
① 调试正确的源程序清单
#include <stdio.h>
int main( )
{
int i, j, n, x, a[10];
windows7怎么激活
printf("输入数据的个数n:");
scanf("%d", &n);
printf("输入%d个整数:", n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("输入要插入的整数:");
scanf("%d", &x);
for(i = 0; i < n; i++){
if(x > a[i]) continue;
j = n - 1;
while(j >= i){ /* 调试时设置断点 */
a[j+1] = a[j];
j--;
} /* 调试时设置断点 */
a[i] = x;
break;
}
if(i == n) a[n]=x;
for(i = 0; i < n + 1; i++)
word怎么插入目录
printf("%d ", a[i]);
putchar('\n');
return 0;
}
② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。
2、完善程序,并调试运行程序
题目(1)求平均值。程序功能:从键盘上输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入一个正整数n(1<n<=10),再输入n个整数,输出平均值(保留2位小数)。(注:程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
① 调试正确的源程序清单
//程序功能:从键盘上输入一个正整数 repeat (0<repeat<10),做repeat 次下列运算:
// 输入一个正整数n(1<n<=10),再输入n个整数,输出平均值(保留2位小数)。
//提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include <stdio.h>
int main( )
{
int ri, repeat;
int i, n, sum;
float aver;
int a[10];
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++)
{
scanf("%d", &n);
for(i=0; i<n; i++) scanf("%d", &a[i]);
//请在两条星线之间填入相应的代码, 求数组a的平均值(使用循环结构)
/**************************************************************/
sum=0;
for(i=0;i<n;i++)
sum=sum+a[i];
aver=1.0*sum/n;
/**************************************************************/
printf("aver=%.2f\n", aver);
}
}
② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。
题目(2)求最大值及其下标。程序功能:从键盘上输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入一个正整数n(1<n<=10),再输入n个整数,输出最大值、最小值及对应下标(设最大值、最小值均惟一,下标从0开始)。(注:程序东北大拌菜文件保存在“第2题”文件夹中)现实的生活打开proj2.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
① 调试正确的源程序清单
//程序功能:从键盘上输入一个正整数 repeat (0<repeat<10),做repeat 次下列运算:
// 输入一个正整数n(1<n<=10),再输入n个整数,输出最大值、最小值及对应下标值。
/
/提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include <stdio.h>
int main( )
{
int ri, repeat;
int i, index1, index2, n;
int a[10];
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++)
{
scanf("%d", &n);
for(i=0; i<n; i++) scanf("%d", &a[i]);
//请在两条星线之间填入相应的代码, 求数组a中的最大值、最小值及对应下标值(使用循环结构)
/************************************************************************************/
index1=index2=0;
for(i=1;i<n;i++){
if(a[i]>a[index1])
index1=i;
if(a[i]<a[index2])
index2=i;
} /************************************************************************************/
printf("max=%d,index=%d\n", a[index1],index1);
printf("min=%d,index=%d\n", a[index2],index2);
}
}
② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。
题目(3)逆序输出。程序功能:从键盘上输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入一个正整数n(1<n<=10),再输入n个整数,按逆序输出这些数。(例如:
输入4 10 8,则输出8 10 4)(注:程序文件保存在“第3题”文件夹中)125打一成语打开proj3.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
① 调试正确的源程序清单
//程序功能:从键盘上输入一个正整数 repeat (0<repeat<10),做repeat 次下列运算:
// 输入一个正整数n(1<n<=10),再输入n个整数,按逆序输出这些数。
// 例如:输入4 10 8,则输出8 10 4。
//提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include <stdio.h>
int main( )
{
int ri, repeat;
顺子号
int i, n, temp;
int a[10];
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++)
{
scanf("%d", &n);
日记作文400字
for(i=0; i<n; i++) scanf("%d", &a[i]);
//请在两条星线之间填入相应的代码, 首尾交换数组a中各元素值(使用循环结构)
/**********************************************************************/
for(i=0;i<n/2;i++){
temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;
}
/**********************************************************************/
for(i=0; i<n; i++) printf("%d ", a[i]);
printf("\n");
}
}
② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。
三体读书笔记
题目(4)交换最小值和最大值。程序功能:从键盘上输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入一个正整数n(1<n<=10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。(例如:输入4 10 8 1 6,则输出1 6 8 4 10)(注:程序文件保存在“第4题”文件夹中)打开proj4.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
① 调试正确的源程序清单
//程序功能:从键盘上输入一个正整数 repeat (0<repeat<10),做repeat 次下列运算:
// 输入一个正整数n(1<n<=10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。
// 例如:输入4 10 8 1 6,则输出1 6 8 4 10
//提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include <stdio.h>