上机实验4答案

导读:C语言程序设计实验报告,实验四:数组程序设计,【实验目的】,【实验内容】,沈阳工程学院C语言程序设计实验报告实验四:数组程序设计【实验目的】1.熟练掌握使用一维数组编程的方法。2.熟练掌握使用字符数组处理字符串的方法。3.掌握用数组名作为函数参数的编程方法。【实验内容】?改错题1、输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符(0~9)转换为整数,去掉其他字符。例如,字

上机实验4答案

沈阳工程学院

C语言程序设计实验报告

实验四:数组程序设计

【实验目的】

1. 熟练掌握使用一维数组编程的方法。

2. 熟练掌握使用字符数组处理字符串的方法。

3. 掌握用数组名作为函数参数的编程方法。

【实验内容】

? 改错题

1、输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符(0~

9)转换为整数,去掉其他字符。例如,字符串“4a56bc”转换为整数后是456。 输入输出示例

Abc85xyz64

8564

源程序(有错误的程序)

#include "stdio.h"

#include "string.h"

void main()

/****************** found ******************/

{ long i,s=0;

char str[80];

gets(str);

for(i=0;i<strlen(str);i++)

/****************** found *******************/

if(str[i]>='0'&&str[i]<='9')

s=s*10+str[i]-48;

printf("%ld",s);

}

2、输入1个正整数n(0<n<9)和一组(n个)有序的整数,再输入一个整数x,把插入到这组数据中,使该组数据仍然有序。

运行结果(改正后程序的运行结果)

请输入数据的个数n:5

请输入这5个整数:1 2 3 6 8

请输入要插入的整数:4

插入后:1 2 3 4 6 8

【提示:先找到插入点,从插入点开始,所有的数据顺序后移,然后插入数据。】 源程序(有错误的程序)

#include "stdio.h"

void main()

/********************found********************/

{ int i,j,n,x,a[10];

printf("请输入数据的个数n:");

scanf("%d",&n);

printf("请输入这%d个整数:",n);

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

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

printf("请输入要插入的整数:");

scanf("%d",&x);

j=n; /*假设插在最后*/

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

if(x<a[i]){ j=i; break; } /*找到插入点*/

for(i=n-1;i>=j;i--) /*从插入点开始,所有的数据顺序后移*/

/********************found*********************/

a[i+1]=a[i] ;

/********************found*********************/

a[i+1]=x; /*插入数据*/

printf("插入后:");

for(i=0;i<n+1;i++)

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

putchar('\n');

}

? 编程题

1、输入1个正整数n(1<n≤10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。

输入输出示例

请输入数据个数n值:5

请输入这5个数:4 6 2 9 8

处理后的结果是:2 6 4 8 9

#include "stdio.h"

void main()

/********************found********************/

{ int i,n,m1,m2,min,max,a[10];

printf("请输入数据的个数n:");

scanf("%d",&n);

printf("请输入这%d个整数:",n);

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

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

min=a[0]; m1=0;

max=a[0]; m2=0;

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

{

if(min>a[i]) { min=a[i]; m1=i;}

if(max<a[i]) { max=a[i]; m2=i;}

}

a[m1]=a[0];

a[0]=min ;

a[m2]=a[n-1];

a[n-1]=max;

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

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

}

2、输入一组整数(数据个数在1~10之间),输出该组数据的和。要求定义并调用函数sum(int a[],int n)实现求数组a中n 个元素的和,并返回求得的结果。

输入输出示例(运行2次)

第一次运行:

请输入数据个数n(1≤n≤10):5

请输入这5个数:3 5 2 9 6

这些数的和是:25

第二次运行:

请输入数据个数n(1≤n≤10):3

请输入这3个数:6 7 8

这些数的和是:21

需要完善的源程序如下:

#include "stdio.h"

int sum(int a[],int n)

{ int i,s=0;

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

s=s+a[i];

return s;

}

void main()

{ int i,a[10],n,x,t;

printf("请输入数据个数n(1≤n≤10):");

scanf("%d",&n);

printf("请输入这%d个数:",n);

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

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

t=sum(a,n);

printf("这些数的和是:%d\n",t);

}

博泰典藏网btdcw.com包含总结汇报、表格模板、农林牧渔、经管营销、高中教育、高等教育、出国留学、自然科学、行业论文、初中教育、教学研究、外语学习、IT计算机、医药卫生、人文社科以及上机实验4答案等内容。