| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 723 人关注过本帖
标题:[求助]请教各位这两到题怎样做
只看楼主 加入收藏
comethisway
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-1-9
收藏
 问题点数:0 回复次数:4 
[求助]请教各位这两到题怎样做

1.编写函数输出以下形状的图形,其中构成图形的符号和输出的行数通过参数传送。

图片附件: 游客没有浏览图片的权限,请 登录注册


2.编写一个程序,实现如下功能:

(1)输入k(<100)个整数到数组x[100]中;

(2)计算k个数的平均值及大于平均值的元素个数。
请问各位大虾这两大题怎样做?


[此贴子已经被作者于2006-1-9 12:00:55编辑过]



DO9rWjU9.jpg (2.6 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 平均值 元素 
2006-01-09 11:47
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
你哪个地方不会阿?不知道算法?还是语法就根本不会阿?

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-01-09 13:36
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 

我这样会不会被人PK呀!!

#include <iostream>
#include <stdlib.h>
#include <iomanip>
using namespace std;
void form(int row);
int main(int argc, char *argv[])
{
int rows;
cout<<"请输入行数(请不要超过40行,DOS没有那么大!):";
cin>>rows;
form(rows);
system("PAUSE");
return 0;
}
void form(int row)
{
for(int j=row,i=0;i<row*2;i+=2,j--)
{
cout.fill(' ');
cout<<setw(j)<<'#';
if(i==row*2-2)
{
cout.fill('#');
cout<<setw(i)<<'#'<<endl;
break;
}
if(i!=0)
cout<<setw(i)<<'#'<<endl;
else
cout<<endl;
}
}


=×&D o I p R e E n C g T l X&×=
2006-01-09 14:12
chengzhuan
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-1-9
收藏
得分:0 
回复:(comethisway)[求助]请教各位这两到题怎样做
是这样的,你看你的三角形,有特点就是
1)等腰三角形,
2)而且底边上每一个“#”符号的竖直方向上都会有一个“#”符号出现,(除了两端的);

第一步:
这就说明,底边上的“#”的个数和你的行数之间存在对应的关系:
如果你输入行数1,那么底边上的“#”个数就是1;
如果你输入行数2,底边上的底边上的“#”个数就是3;
如果你输入行数3,底边上的底边上的“#”个数就是5;
如果你输入行数4,底边上的底边上的“#”个数就是7;
……
如果你输入行数n,底边上的底边上的“#”个数就是2n-1;

第二步:
知道了底边上的“#”个数还不行,你必须知道每一行上面如何输出。
显然,
第1行,首先输出n-1个空格,然后输出一个“#”,然后再输出n-1个空格;

第2行,首先输出n-2个空格,然后输出一个“#”,然后再输出1个空格,再输出一个“#”,,接着输出n-2个空格‘
第3行,首先输出n-3个空格,然后输出一个“#”,然后再输出3个空格,再输出一个“#”,,接着输出n-3个空格;
第4行,首先输出n-4个空格,然后输出一个“#”,然后再输出5个空格,再输出一个“#”,,接着输出n-4个空格;
……

第n-1行,首先输出n-(n-1)个空格,然后输出一个“#”,然后再输出 2(n-1)-1 个空格,再输出一个“#”,,接着输出n-3个空格;

第n行,全部输出。

应该注意的是:第1行和最后一行的输出 与 其他行的输出相比,不具通项公式的表达形式

第三步:根据上面的描述,应该能写出程序了吧;

void shuchukongge(int geshu) /*专门用于输出指定个数的空格*/
{
for(int i=0;i<geshu;i++)
cout<<" ";
}

void DaYin(int hangshu,char tuan) /*输出三角形*/
{
int i=1;

if(hangshu==0)
cout<<"行数值应该大于0的整数"<<endl;

while(i<=hangshu)
{

if(i==1)
{
shuchukongge(hangshu-1);
cout<<tuan<<endl;
}

else if(i<hangshu)
{
shuchukongge(hangshu-i);
cout<<tuan;
shuchukongge(2*(hangshu-1)-1)
cout<<tuan<endl;
}

else
for(int j=0;j<2*hangshu-1;j++)
cout<<tuan;
}
}



2006-01-09 14:54
chengzhuan
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-1-9
收藏
得分:0 
回复:(comethisway)[求助]请教各位这两到题怎样做

第二题应该比较简单吧:


float ShuRu(int *p,int &n)
{
float average=0.0;

while(1)
{
cout<<"请输入整数个数(100以内)"<<endl;
cin>>n;

if(n<=100&&n>0)
break;
}

cout<<"逐个输入整数"<<endl;
for(int i=0;i<n;i++)
{
cin>>p[i];
average+=p[i];
}

average/=n;

return(average);
}


int DaYu(int *p,int n,float ave)
{
int num=0;
for(int j=0;j<n;j++)
if(p[i]>ave)
num++;
return (num);
}


int main()
{
const int MAX=100;
int a[MAX],k;
float ave;

ave=ShuRu(a,k);

int count;
count=DaYu(a,k,ave);

cout<<"average="<<ave<<endl;
<<"count="<<count<<endl;

renturn 0;
}


2006-01-09 15:51
快速回复:[求助]请教各位这两到题怎样做
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056066 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved