1. 数组排序
题目描述
a)实现一个函数。函数的参数有2个,分别是数组名(数组起始地址),数组大小(即数组元素个数)。函数返回值为void, 函数功能是将数组中有意义的元素按降序排列。
b)实现一个函数。函数的参数有3个,分别是数组名(数组起始地址,要求数组元素按降序排列),数组大小(即数组元素个数),和待插入的元素值函数返回值为void.函数功能是将待插入的元素插入数组中,并维持降序接列。例如:将元素4插入数组{8, 7,5, 2, 1, 0,0}后,数组变为{8,7,5,4,2,1,0}
c)在主函数中定义数组,元素个数为100,首先读入5个整数作为数组元素初始值(剩余元素初始值为0).并调用第一个函数,对数组进行降序排列然后读入1个整数作为数组新增元素,调用第二个函数将其插入数组并输出。
输入格式
6个整数,前5个为数组元素初始值,第6个为新增元素值
输出格式
数组前六项`
#include<stdio.h>
//降序排列部分
void rank(int array1[],int n)
{
int i,j,big;
for(i=0;i<n;i++) {
for(j=i+1;j<n;j++){
if(array1[i]<array1[j]) {
big=array1[j];
array1[j]=array1[i];
array1[i]=big;
}
}
}
}
//插入元素再排序部分
void again_rank(int array2[],int n,int a)//a是插入元素
{
int i,j;
int again_rank[6];
for(i=0;i<n;i++) {
if(a>array2[i]){
for(j=n;j>i;j--){
array2[j]=array2[j-1];
}//把剩余的元素依次位置退一步
array2[i]=a;
break;
}
}
}
main()
{
int i,num[6];
for(i=0;i<5;i++){
scanf("%d",&num[i]);
}
rank(num,i);
scanf("%d",&num[5]);
again_rank(num,i,num[5]);
for(i=0;i<6;i++){
printf("%d ",num[i]);
}
return 0;
}
待改进部分:
- 降序排列可以再简洁一点
- 尝试更改至可使用n个数
2.句子输出
题目描述:
事先允许最多五个英文字符串输入后,再指定输出顺序的编号(即对应输入字符串的顺序),使对应输出的英文字符串按照指定的顺序输出在一行上。
输入格式:
第一行:输入一个正整数,表示将要输入的字符串的个数,最大为5。
第二行起:在每行内对应输入-个字符事,限制在10个字符以内(含10个字符) :
输入完最后一个字符串的下一行:依次输入输出顺序编号,从0开始(即0表示输入的第一个字符串,1表示输入的第二个字符串,依次类推),两个相邻数字之间用空格隔开。
输出格式:
只有一行,按照输入指定的顺序输出字符串。两个相邻的字符串间用空格隔开,最后一个字符串后没有空格且应换行。
输入样例
3
world
Hello
!
1 0 2
输出样例
Hello world !
#include<stdio.h>
main()
{
char c[5][11];
int i,n,turn[11];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s",c[i]);
}
for(i=0;i<n;i++){
scanf("%d",&turn[i]);
}
//完成输入部分
for(i=0;i<n-1;i++){
printf("%s ",c[turn[i]]);
}
printf("%s\n",c[turn[i]]);//输出最后一个字符串
return 0;
}
注意事项
关于数组:
1.字符串的初始化:
- char c[]={“hello world”}
- char c[]=“hello world”
- char c[]={‘h’,‘e’,‘l’,‘l’,‘o’,’’,‘w’,‘o’,‘r’,‘l’,‘d’,’\0’}
2.二维数组的初始化
未被初始化赋值的元素会自动初始化为0;若是字符型数组,则初始化为’\0’;指针型则初始化为NULL,即空指针。
- 分行赋值。eg. int a[3][4]={{1,2,3,4},{1,2,3,4}…}
- 按顺序赋值。 eg. int a[3][4]={1,2,3,4,5,6,7…}
3.位置问题:
- 一维数组时,数组名即代表数组初始元素位置。eg. c[10],则c即代表c[0]的位置。输入输出时都无需加&寻位置。
- 二维数组时,数组名即数组的起始地址;a[i]代表i行0列元素的地址。 eg.二维数组 a [5] [10], scanf("%s",a[1]),即表示从a[1][0]开始储存该字符串。