第五(六)周作业 p1
2014-04-13 16:27
323 查看
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
2.编程实现课本每一个编程习题。
一 课本例题
例一:
显示结果:
例二:
输出结果:
例三:
输出结果:
例四:
输出结果:
例五:
输出结果:
例七:
例八:
输出结果:
例九:
例十:
输出结果:
例十二:
例十三:
输出结果:
二 课本习题
习题一
输出结果:
习题二:
输出结果:
习题三:
输出结果:
习题四:
输出结果:
习题五:
输出结果:
习题六:
输出结果:
习题七:
输出结果:
2.编程实现课本每一个编程习题。
一 课本例题
例一:
#include<iostream> using namespace std; int main() { int a[10]; int i; for(i=0;i<10;i++) //给所有的数组元素赋初值 a[i]=i*2+2; for(i=0;i<10;i++) //输出所有的数组元素,每行显示5个数组元素 { cout<<a[i]<<'\t'; if((i+1)%5==0) cout<<endl; } return 0; }
显示结果:
例二:
/************************* **成绩筛选及统计********* ************************/ #include<iostream> using namespace std; int main() { int i,math[40],n; //math[40]最多可输入40个成绩 float aver=0.0; //平均分 int unpassedcout = 0; // 不及格学生人数 int highscorecout =0; // 90分以上学生人数 cout<<"请输入学生人数:"; cout<<endl; cin>>n; cout<<"请输入学生成绩:"; cout<<endl; for(i=0;i<n;i++) { cin>>math[i]; aver+=math[i]; } aver/=n; for(i=0;i<n;i++) { if(math[i]<60) unpassedcout++; if(math[i]>90) highscorecout++; } cout<<"平均分为:"<<aver<<endl; cout<<"90分以上人数为:"<<highscorecout<<endl; cout<<"不及格人数为:"<<unpassedcout<<endl; return 0; }
输出结果:
例三:
/********************************** *****扫描法——找最大的数组元素**** ***********************************/ #include<iostream> #include<iomanip> using namespace std; int main() { int a[10],i,big; cout<<"please input 10 numbers:\n"; for(i=0;i<10;i++) cin>>a[i]; cout<<"the numbers are:"; for(i=0;i<10;i++) cout<<setw(4)<<a[i]; cout<<endl; big=a[0]; for(i=1;i<10;i++) if(a[i]>big) big=a[i]; cout<<"the big number is :"<<big<<endl; return 0; }
输出结果:
例四:
/************************** ***** 冒泡法************* *************************/ #include<iostream> #include<iomanip> using namespace std; int main() { int a[10]; int i,j,t; cout<<"please input 10 numbers:\n"; for(i=0;i<10;i++) cin>>a[i]; //输入数组元素 cout<<"the numbers are:"; for(i=0;i<10;i++) cout<<setw(4)<<a[i]; cout<<endl; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } cout<<"the sorted numbers are:"; for(i=0;i<10;i++) cout<<setw(4)<<a[i]; //输出数组元素 cout<<endl; return 0; }
输出结果:
例五:
/************************************ *** 用一维数组处理Fibonacci数列问题** *************************************/ #include<iostream> #include<iomanip> using namespace std; int main() { int i; int f[40]={1,1}; for(i=2;i<40;i++) f[i]=f[i-2]+f[i-1]; //将前40个数存入数组 for(i=0;i<40;i++) { if(i%4==0) cout<<endl; cout<<setw(12)<<f[i]; } cout<<endl; return 0; }
输出结果:
例七:
#include<iostream> #include<iomanip> using namespace std; int main() { int a[2][3]; int i,j,big; cout<<"请输入二行三列二维数组的元素值:"<<endl; for(i=0;i<2;i++) for(j=0;j<3;j++) { cout<<"a["<<i<<"]" <<"["<<j<<"]="; cin>>a[i][j]; } cout<<"该二维数组为:"; for(i=0;i<2;i++) for(j=0;j<3;j++) { if(j%3==0) cout<<endl; cout<<setw(4)<<a[i][j]; } cout<<endl; big=a[0][0]; for(i=0;i<2;i++) for(j=0;j<3;j++) if(a[i][j]>=big) big=a[i][j]; for(i=0;i<2;i++) for(j=0;j<3;j++) if(a[i][j]==big) cout<<"该数组中最大元素为:"<<"a["<<i<<"]"<<"["<<j<<"]="<<a[i][j]<<endl; }输出结果:
例八:
#include<iostream> using namespace std; int main() { char str[50]; cout<<"Please input a string:"; cin.get(str,50); //默认结束符是回车键 cout<<"The string is:"<<str<<endl; return 0; }
输出结果:
例九:
#include<iostream> #include<cstring> using namespace std; int main() { char str[100]; cout<<"请输入一个字符串:"; cin.get(str,100); cout<<"字符串"<<str<<"的反向字符串为:"; for(int i=strlen(str)-1;i>=0;i--) cout<<str[i]; cout<<endl; return 0; }输出结果:
例十:
#include <iostream> using namespace std; int main() { char s[]="This is C programming test."; cout<<"This is C programming test 这个句子中"; int i=0,pLen=0,maxpLen = 0, pSeat = 0; while(s[i]!='\0') { while(s[i]!=' '&&s[i]!='\0') //区分单词并计算长度 { pLen++; i++; } if(pLen>maxpLen) //记录最长的单词的位置和长度 { pSeat=i-pLen; maxpLen=pLen; } while(s[i]==' ') i++; pLen=0; //为计算下一个单词长度赋值 } cout <<"最长的单词 :"; for(i=0;i<maxpLen;i++) cout << s[pSeat+i]; cout <<endl; return 0; }
输出结果:
例十二:
#include<iostream> #include<cstring> using namespace std; int main() { char str[10]; cout<<"请输入字符串,直到输入 hello 后程序结束:"<<endl; do{ cin>>str; }while(strcmp(str,"hello")!=0); return 0; }输出结果:
例十三:
#include<iostream> using namespace std; int main() { char str[50]; int len=0; cout<<"请输入一个字符串:"; cin.get(str,50); while(str[len] !='\0') len++; cout<<"字符串"<<str<<"的长度"<<len<<endl; return 0; }
输出结果:
二 课本习题
习题一
/******************************* ****冒泡法:大小排序输出** *******************************/ #include<iostream> #include<iomanip> using namespace std; int main() { int a[5],i,j,temp; cout<<"请输入五个数:"<<endl; for(i=0;i<5;i++) cin>>a[i]; cout<<"输入的五个数为:"; for(i=0;i<5;i++) cout<<setw(4)<<a[i]; cout<<endl; for(i=0;i<4;i++) //i为轮次变量,共四轮 for(j=0;j<4-i;j++) //j为每轮比较次数变量,共4-i次 if(a[j]<a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; //冒泡法排序 } cout<<"按照大到小的排序为:"; for(i=0;i<5;i++) //输出已排序的数据 cout<<setw(4)<<a[i]; cout<<endl; return 0; }
输出结果:
习题二:
#include<iostream> #include<iomanip> using namespace std; int main() { int a[2][3],i,j; cout<<"请输入6个数组元素:"<<endl; for(i=0;i<2;i++) for(j=0;j<3;j++) { cin>>a[i][j]; } cout<<"输入的数组为:"<<endl; for(i=0;i<2;i++) { for(j=0;j<3;j++) cout<<setw(5)<<a[i][j]; cout<<endl; } int row=0,col=0,max=a[0][0]; //找出该数组的最大元素以及其下标 for(i=0;i<2;i++) for(j=0;j<3;j++) if(max<a[i][j]) { max=a[i][j];row=i;col=j; } cout<<"最大的数组为:" <<"a["<<row<<"]["<<col<<"]=" <<a[row][col]<<endl; return 0; }
输出结果:
习题三:
#include<iostream> #include<iomanip> using namespace std; int main() { int i,sixteenth,count=0,f[20]={1,1}; //将Fibonacci数列的前20个数存入数组f中 for(i=2;i<20;i++) { f[i]=f[i-2]+f[i-1]; if(f[i]>=100&&f[i]<=999) //统计三位数的个数 count++; } sixteenth=f[15]; //第十六项数据的下标标为15 for(i=0;i<20;i++) { if(i>0&&i%4==0) cout<<endl; cout<<setw(8)<<f[i]; } cout<<endl<<endl <<"Fibonacci数列的前20个数中三位数的个数为:"<<count<<endl <<"Fibonacci数列的第十六项数据为:"<<sixteenth<<endl; return 0; }
输出结果:
习题四:
#include<iostream> #include<iomanip> using namespace std; int main() { char string[50]; cout<<"请输入一个字符串:"; cin.getline(string,50); int uppercase=0,lowercase=0,space=0,digit=0,others=0; for(int i=0;string[i]!='\0';i++) if(string[i]>='A'&&string[i]<='Z') uppercase++; else if(string[i]>='a'&&string[i]<'z') lowercase++; else if(string[i]==' ') space++; else if(string[i]>='0'&&string[i]<='9') digit++; else others++; cout<<"大写字符有:"<<uppercase<<"个"<<endl; cout<<"小写字符有:"<<lowercase<<"个"<<endl; cout<<"数字字符有:"<<digit<<"个"<<endl; cout<<"空格有"<<space<<"个"<<endl; cout<<"其他字符有:"<<others<<"个"<<endl; return 0; }
输出结果:
习题五:
#include<iostream> using namespace std; int main() { char string[100]; int len=0; cout<<"请输入一个字符串:"<<"(例如“hello world”)"<<endl; cin.getline(string,100); //依次将所输入的字符赋给各数组元素 while(string[len]) len++; cout<<"这个字符串的长度为:"<<len<<endl; cout<<"这个字符串反向输出为:"; for(int i=len-1;i>=0;i--) { cout<<string[i]; } cout<<endl; return 0; }
输出结果:
习题六:
#include<iostream> #include<iomanip> using namespace std; int main() { char string[30]; cout<<"请输入一个字符串:"<<endl; cin.getline(string,30); int count=0; for(int i=0;string[i];i++) if(string[i]>='0'&&string[i]<='9') count++; cout<<"该字符串中所有的十进制数字字符的个数有"<<count<<"个"<<endl; return 0; }
输出结果:
习题七:
#include<iostream> #include<iomanip> using namespace std; int main() { char a[50],b[50]; int i,j=0; cout<<"请输入一个字符串:"<<endl; cin.getline(a,50); for(i=0;a[i];i++) { if(a[i]>='0'&&a[i]<='9') continue; b[j]=a[i]; j++; } b[j]='\0'; cout<<"删除数字后的字符串为:"<<b<<endl; cout<<"字符串的长度为:"<<j<<endl; return 0; }
输出结果:
相关文章推荐
- Wireless
- Android开发时提示Your project contains error(s),please fix them be
- android蓝牙开发
- drupal7里将分类属语表(taxonomy/term)生成菜单
- java积累
- hdu1010 DFS和剪枝
- eclipse安装pydev不成功
- Leetcode_n-queens
- WM_CTLCOLOR消息
- Linux 下安装mysql
- 头指针,头结点,首元结点的区别,头结点的优点
- nyist 27 水池数目(dfs搜索)
- (传送门)Logistic regression (逻辑回归) 概述
- ArcGIS 10.1相关软件下载
- 操作系统---进程
- 【JAVA大数训练】N!
- 杭电2059龟兔赛跑
- C# Resources参数不支持重复项-Form拷贝出现的错误
- 第二章 栈和队列(1)——顺序存储
- Oracle,第六周