路过的帮忙解决点难题谢谢
1.一个班有16个学生,把他们的成绩从高到低排列,★要求用二维数组完成★2.通过键盘★[bold]输入多少就显示多少行,并且和下面图形的规律一样[/bold]★,(输入7行打印7行,输入9行打印9行),要求用循环,如果输入的数不是奇数则重新输入。
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
----------------解决方案--------------------------------------------------------
郁闷!
[[italic] 本帖最后由 cosdos 于 2007-12-4 23:02 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
给你2个
代码和EXE文件
#include <iostream.h>
#include <conio.h>
void main()
{
int n;
too:
cout<<"输入你想要打印的上半节行数:"<<endl;
cin>>n;
for(int i=1;i<=n;i++)
{
{
for(int j=1;j<=n-i;j++)
cout<<" ";
}
{
for(int k=1;k<=2*i-1;k++)
cout<<"*";
}
cout<<endl;
}
for(int t=1;t<=n-1;t++)
{
{
for(int a=1;a<=t;a++)
cout<<" ";
}
{
for(int b=1;b<=2*(n-1)-2*t+1;b++)
cout<<"*";
}
cout<<endl;
}
int c;
cout<<"如果你觉得输入"<<n<<"能证明此程序是正确的,并且要求退出程序请按2,如果再想输入新的行数来验证此程序的正确性请按1"<<endl;
cin>>c;
if(c==1)
goto too;
if(c==2)
cout<<"程序已经结束,请按任意键退出"<<endl;
getch();
}
----------------解决方案--------------------------------------------------------
谢谢居士!麻烦能用C写出来吗?
----------------解决方案--------------------------------------------------------
第一题很简单。随便一个排序算法就可以搞定。你可以去看看最简单的冒泡法:因为人数少,所以效率不是很重要。
第二题很早以前我写过一个很简短的代码,但是时间太长搞忘了…………这个是现在写的,感觉还是不够简练,等我找找以前写的笔记再说,你先用着看吧……
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
int m,n,i,j;
do scanf("%d",&n);while(!(n%2));
for(i=0,m=n/2;i<n;i++,putchar('\n'))
for(j=0;j<n;j++)
putchar(abs(i-m)+abs(j-m)>m?' ':'*');
system("pause");
}
#include <stdlib.h>
int main(){
int m,n,i,j;
do scanf("%d",&n);while(!(n%2));
for(i=0,m=n/2;i<n;i++,putchar('\n'))
for(j=0;j<n;j++)
putchar(abs(i-m)+abs(j-m)>m?' ':'*');
system("pause");
}
[[italic] 本帖最后由 StarWing83 于 2007-12-19 01:15 编辑 [/italic]]
----------------解决方案--------------------------------------------------------