C++第五章课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章




(函数与编译预处理)
指导老师束鑫
1140501218 彭祥
1.设计函数void input(int a[][4])用于对二维数组初始化,函数void output(int a[][4])用于输出数组中的元素;定义函数int search_max(int a[][4], int &col, int &vol),用于查找二维数组a中的最大值元素,并记录其最大值元素的行、列下标,其中最大值元素的值由函数返回值带回给主函数,而对应的下标分别存储到col和vol中。

在主函数中测试。

源程序代码:
#include<iostream.h>
void input(int a[][4])
{
for(int i=0;i<3;i++)
for(int t=0;t<4;t++)
a[i][t]=0;
}
void output(int a[][4])
{ int count=0;
for(int i=0;i<3;i++)
for(int t=0;t<4;t++){
count++;
cout<<a[i][t]<<'\t';
if(count%4==0)
cout<<'\n';}
}
int search_max(int a[][4],int &col,int &vol)
{
int x=a[0][0];
for(int i=0;i<3;i++)
for(int t=0;t<4;t++)
if(x<a[i][t]){
x=a[i][t];
col=i;vol=t;}
cout<<"col="<<col+1<<'\t'<<"vol="<<vol+1<<'\t';
return x;
}
void main()
{
int b[3][4],col,vol,a;
input(b);
for(int i=0;i<3;i++)
for(int t=0;t<4;t++)
cin>>b[i][t];
output(b);
a=search_max(b,col,vol);
cout<<a<<'\n';
}
运行结果是:
2.设计函数int int_to_string(int num, char a[], int &n),对从键盘读入的一个值不为0的任意位数的十进制整数num,统计出num 的位数n及各位数字之和s;在主函数中调用int_to_string()函数,对从键盘读入的整数进行测试。

调用该程序的运行结果如下所示(下划线部分为输入内容):
请输入一个整数:12345
12345是5位数其各位数字之和为15.
源程序代码:
#include<iostream.h>
int int_to_string(int num,char a[],int &n)
{
int k,s=0,i=0,c=num;
while(num){
k=num%10;
num/=10;
s+=k;i++;
}
cout<<c<<"是"<<i<<"位数"<<'\t'; return s;
}
void main()
{
int num,i,k;
char a[100];
cin>>num;
int c=num;
k=int_to_string(num,a,i);
cout<<"其各位数字之和为"<<k<<'\n'; }
运行结果是:
3. 将字符串逆序
源程序代码:
#include<iostream.h> void z(char *x)
{
char *p1=x;
char *p2=x;
while(*p1)
p1++;
p1--;
while(p2<p1)
{
char y=*p2;
*p2=*p1;
*p1=y;
p1--;
p2++;
}
}
void main()
{
char str[100];
cin.getline(str,100);
z(str);
cout<<str<<'\n';
}
运行结果是:
4. 找出所有的水仙花数
源程序代码:
#include<iostream.h> void sum(int m)
{
int s=0,k,n=m;
while(n)
{
k=n%10;
n/=10;
s+=k*k*k;
}
if(m==s)cout<<m<<'\n';
}
void main()
{
for(int i=100;i<=999;i++) sum(i);
}
运行结果是:
5.输出200以内所有素数,要求当数是素数是返回1,否则返回0
源程序代码:
#include<iostream.h>
int fun(int n)
{
for(int i=2;i<=n-1;i++)
if(n%i==0)
return 0;
return 1;
}
void main()
{
int count=0;
for(int i=2;i<200;i++)
{
if(fun(i))
{
cout<<i<<'\t';
count++;
if(count%5==0)
cout<<'\n';
}
}
}
运行结果是:
实验结论:
定义无参函数时,函数名后的圆括号不能省略,括号中可以
写void,也可以什么都不写。

定义有参函数时,如果函数有多
个参数,必须逐一指定每个形参的数据类型和形参名,多个形参
之间要用逗号隔开。

C++规定程序中不能嵌套定义函数,但允许
函数嵌套调用。

进行函数重载时,要求同名不同参。

相关文档
最新文档