第十四章项目6-阅读程序(4、5、6、7、8、9、10、11)
2014-11-30 10:40
302 查看
/* *Copyright(c)2014,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:满星辰 *完成日期:2014年 11月 30日 *版本号:v1.0 * *问题描述:程序阅读 *程序输入: *程序输出: */
4、
#include <iostream> using namespace std; int main( ) { int n=0; char str[80]="Beijing-China 2008"; cout<<str<<endl; while(str !='\0') str[n++]=str >='a'&&str <='z'?str -'a'+'A':str ; cout<<str<<endl; return 0; }
预测结果:BEIJING-CHINA 2008
实际结果:Beijing-China 2008
BEIJING-CHINA 2008
学习心得:这是一个让小写字母变大写的程序,由ASCILL码来实现转换
5、
#include <iostream> using namespace std; int main( ) { int x[2][3]={5,4,6,7,8,9}; int m[2],i,j; for (i=0;i<2;i++) { m[i]=x[i][0]; for(j=1;j<3;j++) if(x[i][j]<m[i]) m[i]=x[i][j]; } for (i=0;i<2;i++) cout<<m[i]<<endl; return 0; }
预测结果:4
7
实际结果:4
7
学习心得:将 x [ i ] [ j ] 中的每一行元素中的最小值赋值给 m [ i ]
6、
#include <iostream> using namespace std; int main( ) { int a[4][4]= {1,2,4,7,2,3,5,8,4,5,6,9,7,8,9,10}; int i,j,found=0; for(i=0; j<4; i++) for(j=0; j<=i; j++) if(a[i][j]!=a[j][i]) { found=1; break; } if(found) cout<<"No!"<<endl; else cout<<"Yes!"<<endl; return 0; }
预测结果:No!
实际结果:Yes!
学习心得:
我以为这是个判断是否为中心对称的程序
忽略了第二个 for 循环里面的 j <= i ,即这是个判断对角线元素是否对称的程序
7、
#include <iostream> #include <iomanip> using namespace std; int main() { int a[5][5]= {0},i,j,k; k=1; for (i=0; i<5; i++) for (j=i; j>=0; j--) a[j][i-j]=k++; for (i=0; i<5; i++) { for (j=0; j<5-i; j++) cout<<setw(4)<<a[i][j]; cout<<endl; } return 0; }
预测结果:
1
2
3
4
5
实际结果:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
学习心得:
第二个 for 循环 中将 i 赋值给了 j 这样每循环一次,就给上一行第 j-i 列 赋值
setw ( n ) 即空 n 格
8、
#include <iostream> using namespace std; void reverse(int a[],int n); int main( ) { int b[10]= {1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8); for(i=5; i<10; i++) s+=b[i]; cout<<s<<endl; return 0; } void reverse(int a[],int n) { int i,t; for(i=0; i<n/2; i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; //将a 中的元素倒过来 } }
预测结果:25
实际结果:25
学习心得:
先将前八个元素倒过来,再累加后五个元素
9、
#include <iostream> using namespace std; void f(int a[],int i,int j); int main( ) { int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; f(b,0,9); for(i=5;i<10;i++) s+=b[i]; cout<<s<<endl; return 0; } void f(int a[],int i,int j) { int t; if(i<j) { t=a[i]; a[i]=a[j];a[j]=t; f(a,i+1,j-1); } }
预测结果:15
实际结果:15
学习心得:15
同上,用累加法将数组的元素倒过来
10、
#include <iostream> using namespace std; int f(int n); int main() { cout<<f(5)<<" "; cout<<f(8)<<endl; return 0; } int f(int n) { static int a=2; int b=0; a+=n; b+=a; return b; }
预测结果:7 15
实际结果:7 15
学习心得:
static为静态变量,每用一次,初值就赋为最后一次使用的值
11、
#include <iostream> #include <cstring> using namespace std; void f(char p[][10],int n); int main() { char p[][10]= {"China","America","Russia","England","France"}; f(p,5); cout<<p[0]<<","<<p[4]<<endl; return 0; } void f(char p[][10],int n) { char t[10]; int i,j; for(i=0; i<n-1; i++) for(j=i+1; j<n; j++) if(strcmp(p[i],p[j])<0) { strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[j],t); } }
预测结果:Russia,America
实际结果:Russia,America
学习心得:
strcpy ( t , p [ i ] ) ;
strcpy ( p [ i ] , p [ j ] ) ;
strcpy ( p [ j ] , t ) ;
也可以 交换 字符串,涨姿势了
相关文章推荐
- 第14周项目6-阅读程序(10,11)
- 第十四周项目六 阅读程序(10、11)
- 第十四周项目六 阅读程序 (10)
- 第十周项目一程序填充与阅读(1)
- 专访许鹏:谈C程序员修养及大型项目源码阅读与学习
- 第十六周上机项目阅读程序二
- 2013级C++第12周程序阅读项目——理解函数
- 第七周项目:阅读程序改错
- 第十周项目一 (程序填充与阅读)1:(拓展)
- 专访许鹏:谈C程序员修养及大型项目源码阅读与学习
- 谈C程序员修养及大型项目源码阅读与学习
- 用Apache Ivy实现项目里的依赖管理 分类: C_OHTERS 2014-07-06 18:11 564人阅读 评论(0) 收藏
- 60}的C程序 高手帮忙写下`` 46 35 27 21 16 10 9 5 然后输出数组a。已知 int a[11]={1 使数组a仍然有序 将x插入到有序整型数组a中 由键盘输入一个整数x
- 第10周项目1 程序的填充与阅读
- 第十周项目一 (程序填充与阅读) 1:
- 第七周项目—阅读程序
- APUE 中文第二版中 10.13节程序10-11 中的分析
- Android程序进行混淆,在导出签名a… 分类: Android开发 2014-05-30 10:58 47人阅读 评论(0) 收藏
- 专访许鹏:谈C程序员修养及大型项目源码阅读与学习