本文共 4704 字,大约阅读时间需要 15 分钟。
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。
假设数组长度为10,数组中前9个数(这9个数要求从键盘上输入,输入时要满足自小到大的输入顺序)已经按从小到大进行排序。 然后再从键盘上输入一个整数,将此整数插入到前有序的9个数中,使得最终的10个数依然是从小到大有序的。第一行输入以空格分隔的9个整数数,要求按从小到大的顺序输入。
第二行输入一个整数从小到大输出这10个数,每个数一行。
#include#include int main(){ int A[10]; for (int i = 0; i < 9; i++) { scanf_s("%d",&A[i]); } scanf_s("%d",&A[9]); for (int i = 9; i > 0; i--) { if (A[i] < A[i - 1]) { int temp = A[i-1]; A[i - 1] = A[i]; A[i] = temp; } else break; } for (int j = 0; j < 10; j++) { printf("%d\n",A[j]); } 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个数,每个数占一行。
#includeint main(){ int A[10]; for (int i = 0; i < 10; i++) { scanf_s("%d",&A[i]); } for (int i = 0; i < 5; i++) { int temp = A[i]; A[i] = A[9 - i]; A[9 - i] = temp; } for (int i = 0; i < 10; i++) { printf("%d\n",A[i]); } return 0;}
按要求输入如下格式的杨辉三角
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 最多输出10层输入只包含一个正整数n,表示将要输出的杨辉三角的层数。
对应于该输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开
#includeint main(){ int n; scanf_s("%d",&n); int arr[10][10]; for (int i = 0; i < 10; i++) { for (int j = 0; j <= i; j++) { if (j == 0 || j == i) { arr[i][j]=1; } else { arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; } } } for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) printf("%d ", arr[i][j]); printf("\n"); } return 0;}
有一行电文,已按如下规律译成密码:
A–>Z a–>z B–>Y b–>y C–>X c–>x … … 即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求根据密码译回原文,并输出。输入一行密文
解密后的原文,单独占一行。
#include#include int main(){ char str[20]; scanf_s("%s",str,sizeof(str)); for (int i = 0; i < strlen(str); i++) { if (str[i] >= 65 && str[i] <= (64 + 26)){ str[i] += 32; } else if (str[i] >= 97 && str[i] <= (96 + 26)) { str[i] -= 32; } } printf("%s",str); return 0;}
A的ASCII码是65,a的ASCII码是97,相差32
//str类型的输出格式 char str[20]; scanf_s("%s",str,sizeof(str));
比较两个字符串s1和s2的大小,如果s1>s2,则输出一个正数;若s1=s2,则输出0;若s1<s2,则输出一个负数。
要求:不用strcpy函数;两个字符串用gets函数读入。 例如:“A"与"C"相比,由于"A”<“C”,应输出负数,同时由于"A"与"C"的ASCII码差值为2,因此应输出"-2"。 同理:"And"和"Aid"比较,根据第2个字符比较的结果,“n"比"i"大5,因此应该输出"5”输入2行字符串
一个整数,表示这两个字符串 比较的差值,单独占一行。
#include#include int main(){ char str1[20]; char str2[20]; gets_s(str1); gets_s(str2); int sum=0; int len = strlen(str1) >= strlen(str2)?strlen(str1):strlen(str2); for (int i = 0; i < len;i++) { sum += str1[i] - str2[i]; } printf("%d",sum); return 0;}
string.h头文件主要函数
strlen():得到字符数组\0前的自负的个数 strcmp():返回两个字符串大小的比较结果 如:aaaa<aab 返回一个负整数(不一定是-1) strcpy():把一个字符串复制给另一个,包括结束符“\n”(会覆盖前一个) strcat():把一个字符串接到另一个的后面memset(数组名,值,sizeof(数组名));//对数组中每一个元素赋相同值。
和2重复
Fibonacci数列的特点:第1,2个数为1,1。从第3个数开始,概述是前面两个数之和。即:
要求输出Fibonacci数列的前20个数。无
Fibonacci数列的前20个数,每个数占一行。
#include#include int main(){ int str1[20]; str1[0] = 1; str1[1] = 1; for (int i = 2; i < 20; i++) { str1[i] = str1[i-1]+str1[i-2]; } for (int i = 0; i < 20;i++) { printf("%d\n",str1[i]); } return 0;}
从键盘上输入10个整数,用冒泡法对这10个数进行排序(由小到大)。
以空格分隔的10个整数
依次输出排好序的10个整数,每个数占一行。
#include#include void swap(int &a,int &b) { int temp = a; a = b; b = temp;}int main(){ int str[10]; for (int i = 0; i < 10;i++) { scanf_s("%d", &str[i]); } for (int i = 0; i < 9; i++) { bool flag = false; for (int j = 9; j > i; j--) { if (str[j] < str[j - 1]) { swap(str[j],str[j-1]); flag = true; } } if (flag = false) break; } for (int i = 0; i <10 ; i++) { printf("%d\n",str[i]); } return 0;}
scanf_s("",&);//一定要&
将一个2行3列的矩阵(二维数组)行列互换,存储到另一个3行2列的矩阵中。
要求以整型数据为例来解答。输入2行数据,每行3个整数,以空格分隔。
行列互换后的矩阵,3行,每行2个数据,以空格分隔。
#include#include int main(){ int a[2][3]; for (int i = 0; i < 2; i++) for (int j = 0; j < 3; j++) { scanf_s("%d",&a[i][j]); } for (int i = 0; i < 3; i++) { for (int j = 0; j < 2; j++) { printf("%d ",a[j][i]); //printf("%d%c",a[j][i],j<1?' ':'\n');更好 if (j == 1) { printf("\n"); } } } return 0;}
从键盘上输入3个字符串,求出其中最大者。
输入3行,每行均为一个字符串。
一行,输入三个字符串中最大者。
#include#include int main(){ char str[3][10] = { 0,0,0}; for (int i = 0; i < 3; i++) { gets_s(str[i]); } int max=0; for (int i = 1; i < 3; i++) { if (strcmp(str[max],str[i])<0) { max = i; } } printf("%s",str[max],sizeof(str)); return 0;}
转载地址:http://ppzsi.baihongyu.com/