1. 输入一个小于10的正整数n,显示具有如下形式的n行杨辉三角形。图中n=6。
提示:解该题有两个关键:① 形成满足杨辉三角形各项值的数组。首先定义二维数组a[10][10],杨辉三角形的形成特点是第1列(下标为0)和主对角线均为1,其余各项有如下关系:
a[i][j]= a[i-1][j-1]+ a[i-1][j] i=2,3…,n-1 j=1,2…,i-1
②在输出每一行元素前,利用如下语句确定每行的起始位:cout<<setw((n-i)*3)<<' ';
yzy's version:
1 #include <iostream> 2 #include <iomanip> 3 using namespace std; 4 int main() 5 { 6 int a[10][10], i, j,n; 7 cout << "想要几行杨辉三角形?最多10行"; 8 cin >> n; 9 for (i = 0; i < n; i++) 10 a[i][0] = a[i][i] = 1; 11 for (i = 2; i < n; i++) 12 for (j = 1; j < i; j++) 13 a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; 14 15 for (i = 0; i < n; i++) 16 { 17 cout << setw((n - i) * 3) << ' '; 18 for (j = 0; j <= i; j++) 19 cout<<a[i][j]<<' '<<' '<<' '<<' '<<' '; 20 cout << endl; 21 } 22 system("pause"); 23 return 0; 24 }
2.
编写程序,将某一指定字符从一个已知的字符串中删除。假设已知字符串为“aaaasdfga”,将其中出现的'a'字母删除,删除后的字符串为“sdfg”。
yzy's version:
1 #include <iostream> 2 #include <stdio.h> 3 #define N 100 4 using namespace std; 5 int main() 6 { 7 char s[N], t; 8 int i, j; 9 cout << "输入一个字符串!"; 10 gets_s(s); 11 cout << "想从中删除什么字母呢?"; 12 cin.get(t); 13 i = 0; 14 for (int i = 0; s[i] != '\0';) 15 { 16 if (s[i] == t) 17 { 18 for (int j = i + 1; j < N + 1; j++) 19 { 20 s[j - 1] = s[j]; 21 22 } 23 24 } 25 else 26 i++; 27 28 } 29 puts(s); 30 system("pause"); 31 return 0; 32 }
3.
编一个程序,输入一个字符串,将其倒序存放后输出。例如,假设原数组a的内容为“VISUAL C++PROGRAM”,倒序后数组a中的内容为“MAGORP++C LASUIV”。
要求:不能借助另外一个数组实现倒序存放。
yzy's version:
1 #include <iostream> 2 #include <stdio.h> 3 #define N 100 4 using namespace std; 5 int main() 6 { 7 char s[N], t; 8 int i, j,k; 9 cout << "输入一个字符串!"; 10 gets_s(s); 11 k = strlen(s); 12 for (int i = 0; i<(k+1)/2; i++) 13 { 14 t = s[i]; 15 s[i] = s[k - i-1]; 16 s[k - i - 1] = t; 17 } 18 puts(s); 19 system("pause"); 20 return 0; 21 }
4.
输入一字符串,将该字符串中的大小写字母相互转换。如,假设原字符串的内容为“How are you”,则转换后的内容为“hOW ARE YOU”
yzy's version:
1 #include <iostream> 2 #include <stdio.h> 3 #define N 100 4 using namespace std; 5 int main() 6 { 7 char s[N]; 8 int i; 9 gets_s(s); 10 for (i = 0; s[i] != '\0'; i++) 11 { 12 if (s[i] >= 'a' && s[i] <= 'z') 13 s[i] = s[i] - 'a' + 'A'; 14 else if(s[i] >= 'A' && s[i] <= 'Z') 15 s[i] = s[i] - 'A' + 'a'; 16 } 17 puts(s); 18 system("pause"); 19 return 0; 20 }
5.
编写程序,将两个已知字符串中第二个字符串连接到第一个字符串的后面,并将连接后的第一个字符串的内容输出。
yzy's version:
1 #include <iostream> 2 #include <stdio.h> 3 #define N 100 4 using namespace std; 5 int main() 6 { 7 char s[N] = { "I wrote this program on my birthday!" }, t[N] = {"wish myself and you good luck!"}; 8 puts(s); 9 puts(t); 10 strcat_s(s, t); 11 puts(s); 12 system("pause"); 13 return 0; 14 }