第六周作业
来源:互联网 发布:装修软件定哪种好 编辑:程序博客网 时间:2024/06/06 09:36
第四章 数组学习要求和实验
学习要求:
理解数组的基本概念,了解数组存储方法。
掌握一维和二维数组定义格式和数组元素使用。了解多维数组的定义和引用形式。
掌握字答数组的定义、字符数组与字符串的关系。
掌握常用字符串处理函数的使用。
进一步掌握循环程序设计技巧和方法。
进一步积累程序调试经验。
实验作业
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
2.编程实现课本每一个编程习题。
3. 编程定义一个4X5矩阵和5X3矩阵,并计算它们的积。
4.编程输出1到n的平方的自然数构成的“魔方阵”,魔方阵是指它每一行和每一列及对角线之和均相等的方阵。
5.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。
作业要求
网上提交各个程序和相关要求的文字。
可以分两个博客文章来交。前2个题和后3个题各放到一个博客文章中提交。
作业1.
例4.1
/********************************* 例题4.1 *********************************/#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++){cout<<a[i]<<'\t';if((i+1)%5==0)cout<<endl;}return 0;}
例4.2
/***************************** 例题4.2 *****************************/#include<iostream>using namespace std;int main(){int i,math[40],n;float aver = 0.0;int no =0;int yes =0;cout<<"请输入学生人数:";cin>>n;cout<<"请输入成绩:";for(i=0;i<n;i++){cin>>math[i];aver +=math[i];}aver/=n;for(i=0;i<n;i++){if(math[i]<60) no++;if(math[i]>=90) yes++;}cout<<"平均分为:"<<aver<<endl;cout<<"90分以上人数为:"<<yes<<endl;cout<<"不及格人数为:"<<no<<endl;return 0;}
例4.3
/******************************* 例题4.3 *******************************/#include<iostream>#include<iomanip>using namespace std;int main(){int a[10],i,big;cout<<"请输入10个整数:\n";for(i=0;i<10;i++)cin>>a[i];cout<<"输入的整数分别为:\n";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<<"最大的整数为:"<<big<<endl;return 0;}
例4.4
/***************************** 例题4.4 *****************************/#include<iostream>#include<iomanip>using namespace std;int main(){int a[10];int i,j,t;cout<<"请输入10个整数:\n";for(i=0;i<10;i++)cin>>a[i];cout<<"输入的整数分别为:\n";for(i=0;i<10;i++)cout<<setw(5)<<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<<"所输入的数从小到大排列依次是:\n";for(i=0;i<10;i++)cout<<setw(5)<<a[i];cout<<endl;return 0;}
例4.5
/**************************** 例题4.5 ****************************/#include<iostream>#include<iomanip>using namespace std;int main(){int i;int f[40]={2,2};for(i=2;i<40;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<40;i++){if(i%4 ==0)cout<<endl;cout<<setw(12)<<f[i];}cout<<endl;return 0;}
例4.6
/****************************** 例题4.6 ******************************/#include<iostream>#include<iomanip>using namespace std;int main(){int i;int j;int a[5][5];for(i=0;i<5;i++){for(j=0;j<5;j++){if(i%2==0)a[i][j]=i*5+j+1;elsea[i][4-j]=i*5+j+1;}}for(i=0;i<5;i++){for(j=0;j<5;j++)cout<<setw(4)<<a[i][j];cout<<endl;}return 0;}
例4.7
书上好像印刷错误.书上例题4.7与4.6 几乎完全一样.所以不输入了.
例4.8
/****************************** 例题4.8 ******************************/#include<iostream>using namespace std;int main(){char str[50];cout<<"Please input strings:";cin.get(str,50);cout<<"The string is :";cout<<str<<endl;return 0;}
例4.9
/****************************** 例题4.9 ******************************/#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;}
例4.10
/************************ 例题1.10 ************************/#include<iostream>using namespace std;int main(){char s[]="This is C programming test.";int i =0,pLen=0,maxLen=0,pSeat=0;while(s[i]!='\0'){while(s[i]!=' ' &&s[i] !='\0'){pLen++;i++;}if(pLen>maxLen){pSeat =i - pLen;maxLen = pLen;} while(s[i] == ' ')i++;pLen =0;}cout<<"最长的单词为:";for(i=0;i<maxLen;i++)cout<<s[pSeat + i];cout<<endl;return 0;}
例4.11
/******************************** 例题4.11 ********************************/#include<iostream>#include<cstring>using namespace std;int main(){char str[50];cout<<"请输入一个字符串:";cin.get(str,50);cout<<"改字符串的长度是:"<<strlen(str)<<endl;return 0;}
例4.12
/****************************** 例题4.12 ******************************/#include<iostream>#include<cstring>using namespace std;int main(){char str[100];cout<<"请输入您的银行卡号及密码,按#号结束:"<<endl;do{cin>>str;}while(strcmp(str,"#")!=0);return 0;}
例4.13
/*************************** 例题4.13 ***************************/#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;}
作业2.
习题1.
/******************************* 习题1 *******************************/#include<iostream>#include<iomanip>using namespace std;int main(){int a[5];int i,j,t;cout<<"请输入5个整数:\n";for(i=0;i<5;i++)cin>>a[i];cout<<"输入的整数分别为:\n";for(i=0;i<5;i++)cout<<setw(4)<<a[i];cout<<endl;for(i=0;i<4;i++){for(j=0;j<4-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}cout<<"所输入的数从大到小排列依次是:\n";for(i=4;i>=0;i--)cout<<setw(5)<<a[i];cout<<endl;return 0;}
习题1 相当于对例题4.4的进一步运用 只是将最后的一个循环语句改改的OK了.本来都不想写了..
习题2.
/****************************** 习题2 ******************************/#include<iostream>#include<iomanip>using namespace std;int main(){int a[2][3],i,j;cout<<"请输入一个2行3列的数组:"<<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(6)<<a[i][j];}int x=0,y=0,max=a[0][0];for(i=0;i<2;i++){for(j=0;j<3;j++){if(max<a[i][j]){x=i;y=j;max=a[i][j];}}}cout<<"该数组中最大元素为:"<<endl;cout<<max<<endl;cout<<"其下标为:"<<x<<y<<endl;return 0;}
习题3.
/***************************** 习题3 *****************************/#include<iostream>#include<iomanip>using namespace std;int main(){int i,num=0;int f[20]={1,1};for(i=2;i<20;i++){f[i]=f[i-2]+f[i-1];if(f[i]>=100&&f[i]<1000)num++;}for(i=0;i<20;i++){if(i%4==0)cout<<endl;cout<<setw(10)<<f[i];}cout<<endl;cout<<"该数组中前20个数中有"<<num<<"个三位数"<<endl;cout<<"该数组中的第16项为:"<<f[15]<<endl;return 0;}
习题4.
/******************************* 习题4 *******************************/#include <iostream> #include <iomanip> using namespace std; int main() { char string[100]; cout<<"请输入一个字符串:"; cin.get(string,100); int A=0,a=0,b=0,c=0,d=0; for(int i=0;string[i]!='\0';i++) if(string[i]>='A'&&string[i]<='Z') A++; else if(string[i]>='a'&&string[i]<='z') a++; else if(string[i]==' ') b++; else if(string[i]>='0'&&string[i]<='9') c++; else d++; cout<<"大写字母有:"<<A<<"个"<<endl; cout<<"小写字母有:"<<a<<"个"<<endl; cout<<"空格有:"<<b<<"个"<<endl; cout<<"数字有:"<<c<<"个"<<endl; cout<<"其他字符有:"<<d<<"个"<<endl; return 0; }
习题5.
/************************* 习题5 *************************/#include<iostream>#include<cstring>using namespace std;int main(){char str[100];cout<<"请输入一个字符串:";cin.get(str,100);cout<<"该字符串的反向字符串为:"<<endl;for(int i =strlen(str) -1;i>=0;i--)cout<<str[i];cout<<endl;cout<<"该字符串的长度为:"<<strlen(str)<<endl;return 0;}
习题6.
/**************************** 习题6 ****************************/#include <iostream> #include <iomanip> using namespace std; int main() { char a[50],b[50]; int i,j=0; cout<<"请输入一个字符串:"<<endl; cin.get(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; }
删除数字这个不会 在这一个地方借鉴了一下光荣榜的同学..还是有些不理解.希望老师上课能讲一下..
作业3.
/******************************** 矩阵的积 ********************************/#include<iostream>#include<iomanip>using namespace std;int main(){int a[4][5],b[5][3],c[4][3]={0},d,e,f,g;cout<<"请输入一个4行5列数组"<<endl;for(d=0;d<4;d++){for(e=0;e<5;e++){cin>>a[d][e];}}cout<<"请输入一个5行3列数组"<<endl;for(d=0;d<5;d++){for(e=0;e<3;e++){cin>>b[d][e];}}for(d=0;d<4;d++) for(e=0;e<3;e++) { for(f=0;f<5;f++) { g=a[d][e]*b[d][e]; c[d][e]=c[d][e]+g; } } cout<<"由c[4][3]=a[4][5]*b[5][3]"<<endl; cout<<"矩阵c[4][3]为:"<<endl; for(d=0;d<4;d++) { for(e=0;e<3;e++) cout<<c[d][e]<<'\t'; cout<<endl; } return 0; }
当输入矩阵元素的时候 不使用回车键的情况下,即使超出了矩阵的容量,依旧可以输入,直到用户按了回车键才会弹到下一行程序..这个不知道应该怎样做才能避免这种情况..希望老师上课得时候讲解一下.如何在输入了足够的元素之后强制运行下一行的程序 而不是等到用户自己去数 是否已经输入了20个 或者是无意间按了回车才继续运行..
作业4.
好难!!!
百度一下之后 发现不是自己能力范围的..看了好几遍看不懂..估计是做不出来的了..
0 0
- 第六周作业
- 第六周作业
- 第六周作业 3
- 第六周作业 4
- 第六周作业 5
- 第六周作业
- 第六周作业
- 第六周作业
- Java第六周作业
- 第六周作业
- 第六周作业1
- 第六周作业
- 第六周作业
- 第六周作业
- 第六周作业
- 第六周作业
- 第六周作业
- 第六周作业!
- softboy为开发者&产品方案提供解决方案和技术支持。
- Android中LayoutInflater的使用
- 递归函数的汇编表示
- 第七周项目三-成员函数、友元函数和一般函数的区别
- 将一个字符串的元音字母复制到另一个字符串,并排序,让小写在前,大写在后,分别有序
- 第六周作业
- IE旺旺快速登陆分析
- 菜鸟的第一次笔试---腾讯2014实习生笔试
- 第五周作业
- jquery.validate.js的基本用法入门
- 工厂模式和抽象工厂模式总结与比较(屌丝专用)
- Factovisors - PC110704
- PAT 1003. 我要通过!(20)
- 中美印日四国程序员比较