SCAU高级语言程序设计--实验7 数组的应用(1)
一、堂上限时习题
1、倒序
题目:由键盘输入10个整数,倒序输出。
思路:数组的写入需要用循环语句。输出也一样。
#include<stdio.h>
int main (){
int a[10],i;
for(i=0;i<10;i++)//循环输入
scanf("%d",&a[i]);
for(i=9;i>=0;i--)//循环输出
printf("%d\n",a[i]);
return 0;
}
2、打印矩阵
题目:由键盘输入一个3*4的矩阵,要求输出它的转置矩阵。
思路:两个二维数组。注意二维数组的输入和输出一定需要两个嵌套for语句。
#include<stdio.h>
int main (){
int a[3][4],b[4][3],i,j;
//输入
for(i=0;i<3;i++){
for(j=0;j<4;j++){
scanf("%d",&a[i][j]);
b[j][i] = a[i][j];//转置
}
}
//输出
for(i=0;i<4;i++){
for(j=0;j<3;j++){
printf("%d ",b[i][j]);
}
printf("\n");
}
return 0;
}
3、冒泡排序
题目:由键盘输入10个数,用“冒泡法”对10个数从小到大排序,并按格式要求输出。代码如下,请填充完整。
#include "stdio.h"
main()
{ int a[10], i, j, t;
for(i=0;i<10;i++)
scanf("%d",_______________________) ;
for(_______________________)
{ for(j=0;j<_______________________;j++)
if (_______________________)
{_______________________}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
思路:可参考书本P181。从第一个数开始,每一个数都和它后面的数一一对比,小的就替换掉这个数,最终得到最小的数在最前排。接着继续判断第二个数。循环判断全部数字后,循序就出来了。
#include "stdio.h"
main(){
int a[10], i, j, t;
//输入
for(i=0;i<10;i++)
scanf("%d",&a[i]); //不多说
//冒泡
for(i=0;i<9;i++){
for(j=0;j<9-i;j++)
//小的数放最前
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
//输出
for(i=0;i<10;i++)
printf("%d ",a[i]);
}