题目31-35
31、将一个数组逆序输出。
#include "stdio.h"
# include "math.h"
#define N 5
int main()
{
int a[N]={9,6,5,4,1},i,temp;
printf("\n 原始数组:\n");
for(i=0;i<N;i++){
printf("%4d",a[i]);
}
for (i=0; i<N/2; i++) {
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\n处理后的数组:\n");
for(i=0;i<N;i++){
printf("%4d",a[i]);
}
}
运行结果:
32、对10个数进行排序。(选择排序)
#include <stdio.h>
int main()
{
int i, j, t, a[10]; //定义变量及数组为基本整型
printf("请输入10个数:\n");
for (i = 0;i < 10;i++)
scanf("%d", &a[i]); //从键盘中输入要排序的10个数字
for (i = 0;i < 10;i++)
for (j = i + 1;j < 10;j++)
if (a[i] > a[j]) //如果前一个数比后一个数大,则利用中间变量t实现两值互换
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
printf("排序后的顺序是:\n");
for (i = 0;i <10;i++)
printf("%5d", a[i]); //输出排序后的数组
printf("\n");
return 0;
}
运行结果:
33、对10个数进行排序。(冒泡排序)
#include <stdio.h>
int main()
{
int i, j, t, a[10]={1,3,6,2,5,4,7,10,8,9}; //定义变量及数组为基本整型
printf("排序前的顺序:\n");
for (i = 0;i < 10;i++)
printf("%5d", a[i]);
for (i = 0;i <10-1;i++)
for (j = 0;j <10-i-1;j++)
if (a[j] > a[j+1]) //如果前一个数比后一个数大,则利用中间变量t实现两值互换
{
t = a[j+1];
a[j+1] = a[j];
a[j] = t;
}
printf("\n排序后的顺序是:\n");
for (i = 0;i < 10;i++)
printf("%5d", a[i]); //输出排序后的数组
printf("\n");
return 0;
}
运行结果:
34、有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
#include <stdio.h>
int main()
{
int i, number, t, a[11]={1,4,6,9,13,16,19,28,40,100}; //定义变量及数组为基本整型
printf("插入前的顺序:\n");
for (i = 0;i < 10;i++)
printf("%5d", a[i]);
printf("\n请输入要插入的数:");
scanf("%d",&number);
for (i = 0;i <10-1;i++){
if (a[i]>number) {
break;
}
}
for (int j = 11;j>number;j--){
a[j]=a[j-1];
}
a[i]=number;
printf("\n插入后的顺序是:\n");
for (i = 0;i < 11;i++)
printf("%5d", a[i]); //输出排序后的数组
printf("\n");
return 0;
}
运行结果:
35、打印出杨辉三角形(要求打印出10行)
#include <stdio.h>
int main()
{
int i, number, t, a[10][10];
for (i = 0;i <10;i++){
a[i][i]=1;
a[i][0]=1;
}
for (i = 2;i <10;i++){
for (int j = 1;j<i;j++){
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
for (i = 0;i < 10;i++){
for (int j = 0;j<i;j++){
printf("%5d",a[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}
运行结果: