教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

C语言实验总答案(6)

来源:网络收集 时间:2026-05-14
导读: printf(\for(i=0;i scanf(\ printf(\输出排序前的数据*/ for(i=0; i printf(\printf(\ for(i=0; i t=a[j]; a[j]=a[j+1]; a[j+1]=t; } printf(\输出排序结果*/ for(i=0; i printf(\ printf(\} else printf(\数据超出

printf(\for(i=0;i

scanf(\

printf(\输出排序前的数据*/ for(i=0; i

printf(\printf(\

for(i=0; i

t=a[j];

a[j]=a[j+1]; a[j+1]=t; }

printf(\输出排序结果*/ for(i=0; i

printf(\ printf(\} else

printf(\数据超出范围\

}

7. 在上题基础上(输入n个float型的数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后输出)完成:在已经排好序的数组(长度不足10)中插入一个数m(键盘输入)后输出,保持数组的降序排列。

程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

#include void main() {

int i, j, n, p; float a[10], t, m;

printf(\ scanf(\

if(n>1 && n<=10) {

printf(\ for(i=0; i

scanf(\

printf(\输出排序前的数据*/ for(i=0; i

printf(\printf(\

for(i=0; i

t=a[j];

a[j]=a[j+1]; a[j+1]=t; }

printf(\输出排序结果*/ for(i=0; i

printf(\printf(\

printf(\请输入要插入的数据m: \ scanf(\

/*找到插入位置*/

if(m < a[n-1]) /*如果m比最后一个元素小,则直接插入到最后的位置*/ p = n; else {

for(i=0; i a[i]) {

p=i; break; }

for(i=n; i>=p+1; i--) /*将插入位置之后的元素后移*/ a[i]=a[i-1]; }

}

/*插入*/

a[p]=m;

printf(\插入%.2f 后:\输出插入后结果*/ for(i=0; i

printf(\printf(\

else

printf(\数据超出范围\

}

二、二维数组实验

1. 以下程序功能为:将下列矩阵中的元素向右移动一列,最后一列移至第一列。找出并改正以下源程序中错误,通过调试得出正确的运行结果。

1 4 6 8 10 12

源程序(有错误的程序) #include #define ROW 2 #define COL 3

int main() {

int a[ROW][COL]={1,4,6,8,10,12}; int i,j,temp;

for(i=0;i=0;j--) { a[i][j]=a[i][j+1]; /*调试时设置断点*/ //改为a[i][j+1]=a[i][j]; } a[i][0]=temp; /*调试时设置断点*/ } for(int i=0;i

return 0; }

运行结果(改正后程序的运行结果) 6 1 4 12 8 10

2. 编程:利用二维数组计算并打印一个n行的杨辉三角。例如: Input n: 6 1 1 1 1 2 1 1 3 3 1

1 4 6 4 1

1 4 10 10 5 1

提示:第一列及对角线上的元素都是1,其他元素通过计算得出:

如果用i表示行,j表示列,则第i行j列的元素

#include void main() { }

3. 编程:通过键盘输入3行4列的二维数组,分别按行和按列输出数组。例如: Input numner: 1 2 3 4 5 6 7 8 9 10 11 0

output by row: 1 2 3 4 5 6 7 8 9 10 11 0 output by col: 1 5 9 2 6 10 3 7 11 4 8 0

int a[10][10]={0}; //设最多10层 int i, j, n;

printf(\请输入杨辉三角形的层数:\scanf(\if(n>10) {

printf(\层数超出范围\ return; }

for(i=0;i

a[i][0]=1; a[i][i]=1; }

for(i=2;i

a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i

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

printf(\

printf(\}

pi,j?pi?1,j?1?pi?1,j

#include void main() {

int a[3][4],i,j; }

4. 编程:输入一个m*n矩阵,求他们的各行元素之和。例如: Input m , n: 2 2 Input 2*2 matrix: 4 5 5 6 sum[0]=9 sum[1]=11

提示:设计一个一维数组 int s[10],分别保存各行元素之和。

#include void main() {

int a[10][10], s[10]={0}; //设定矩阵最大为10 x 10 int m, n, i, j;

printf(\请输入矩阵的行数和列数:\scanf(\

if(m<0 || m>10 || n<0 || n>10) {

printf(\行或列(1~10)值超出范围\ return; }

printf(\请输入 3 X 4 整数矩阵:\\n\for(i=0; i<3; i++) for(j=0; j<4; j++)

scanf(\printf(\按行输出:\for(i=0; i<3; i++) for(j=0; j<4; j++)

printf(\printf(\

printf(\按列输出:\for(i=0; i<4; i++) for(j=0; j<3; j++)

printf(\

printf(\

…… 此处隐藏:386字,全部文档内容请下载后查看。喜欢就下载吧 ……
C语言实验总答案(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/412690.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)