题目描述
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。
假设数组长度为10,数组中前9个数(这9个数要求从键盘上输入,输入时要满足自小到大的输入顺序)已经按从小到大进行排序。
然后再从键盘上输入一个整数,将此整数插入到前有序的9个数中,使得最终的10个数依然是从小到大有序的。
输入
第一行输入以空格分隔的9个整数数,要求按从小到大的顺序输入。
第二行输入一个整数
输出
从小到大输出这10个数,每个数一行。
样例输入
1 11 21 31 41 51 61 71 81
45
样例输出
1
11
21
31
41
45
51
61
71
81
提示
定义数组时,把数组长度定义为10.
#include
int main()
{
int a[10],i,j,num;
for (i = 0; i< 9; i++)
scanf("%d",&a[i]);
scanf("%d",&num);
if (num > a[8])
a[9] = num;
else
{
for(i = 0; i < 9; i++){
if (num < a[i])
{
for (j = 0;j< 9-i;j++)
{
a[9-j] = a[9-1-j];
}
a[i] = num;
break;
}
}
}
for (i = 0;i < 10; i++)
printf("%d\n",a[i]);
return 0;
}
题目描述
将一个长度为10的整型数组中的值按逆序重新存放。
如:原来的顺序为1,2,3,4,5,6,7,8,9,0,要求改为0,9,8,7,6,5,4,3,2,1
输入
从键盘上输入以空格分隔的10个整数。
输出
按相反的顺序输出这10个数,每个数占一行。
#include
int main()
{
int a[10];
int i;
for (i = 0;i < 10; i++)
{
scanf("%d",&a[9-i]);
}
for (i = 0; i< 10; i++)
printf("%d\n",a[i]);
return 0;
}
最多输出10层
#include
int main()
{
int n;
scanf("%d",&n);
int a[n][n];
a[0][0] = 1;
int i,j;
for(i = 1; i < n; i++) //每行
{
a[i][0] = 1;
a[i][i] = 1;
for (j = 0; j < i+1 -2;j++) //每行1中间的数
{
a[i][j+1] = a[i-1][j] + a[i-1][j+1];
}
}
for (i = 0;ifor (j=0;j1;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求根据密码译回原文,并输出。
#include
#include
int main()
{
char s[100];
scanf("%s",s);
int i;
for (i = 0; i < strlen(s);i++)
{
if ((int)s[i] < 65)
printf("%c",s[i]);
else if((int)s[i] <= 'Z')
printf("%c",2*'Z'-(s[i]+25));
else
printf("%c",2*'z'-(s[i]+25));
}
printf("\n");
return 0;
}
同理:”And”和”Aid”比较,根据第2个字符比较的结果,”n”比”i”大5,因此应该输出”5”
输入
输入2行字符串
输出
一个整数,表示这两个字符串 比较的差值,单独占一行。
#include
int main()
{
char str1[10],str2[10];
gets(str1);
gets(str2);
int i=0;
while(str1[i] == str2[i])
{
i++;
}
printf("%d",str1[i]-str2[i]);
return 0;
}
题目描述
从键盘上输入10个整数,存储在一个长度为10的整型数组中,要求将输入的10个数逆序输出。
如输入为:0,1,2,3,4,5,6,7,8,9 输出为9,8,7,6,5,4,3,2,1,0
#include
int main()
{
int a[10],i;
for (i = 0;i < 10;i++)
scanf("%d",&a[i]);
for (i = 0;i < 10;i++)
printf("%d\n",a[9-i]);
return 0;
}
题目描述
Fibonacci数列的特点:第1,2个数为1,1。从第3个数开始,概述是前面两个数之和。即:
要求输出Fibonacci数列的前20个数。
输入
无
#include
int main()
{
int a[20]={1,1};
int i;
for (i = 2; i < 20; i++)
a[i] = a[i-1] + a[i-2];
for (i = 0; i < 20; i++)
printf("%d\n",a[i]);
return 0;
}
#include
int main()
{
int a[10],i,j,temp;
for (i = 0; i < 10; i++)
scanf("%d",&a[i]);
for (i = 0; i < 10-1; i++)
{
for (j = 0; j < 9-i; j++)
{
if (a[j] > a[j+1])
{
temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
}
}
}
for (i = 0; i < 10; i++)
printf("%d\n",a[i]);
return 0;
}
题目描述
将一个2行3列的矩阵(二维数组)行列互换,存储到另一个3行2列的矩阵中。
要求以整型数据为例来解答。
输入
输入2行数据,每行3个整数,以空格分隔。
#include
int main()
{
int a[2][3],b[3][2];
int i,j;
for (i = 0; i < 2; i++)
for (j = 0; j < 3; j++)
scanf("%d",&a[i][j]);
for (i = 0; i < 3; i++)
for (j = 0; j < 2; j++)
b[i][j] = a[j][i];
for (i = 0; i < 3; i++)
{
for (j = 0; j < 2; j++)
{
printf("%d ",b[i][j]);
}
printf("\n");
}
return 0;
}
题目描述
从键盘上输入3个字符串,求出其中最大者。
输入
输入3行,每行均为一个字符串。
输出
一行,输入三个字符串中最大者。
#include
#include
int main()
{
char str1[50],str2[50],str3[50];
gets(str1);
gets(str2);
gets(str3);
if (strcmp(str1, str2)>0)
{
if (strcmp(str1, str3)>0)
printf("%s\n",str1);
else
printf("%s\n",str3);
}
else
{
if (strcmp(str2, str3)>0)
printf("%s\n",str2);
else
printf("%s\n",str3);
}
return 0;
}