当前位置: 代码迷 >> C语言 >> 路过的帮忙解决点难题谢谢
  详细解决方案

路过的帮忙解决点难题谢谢

热度:117   发布时间:2007-12-04 20:21:34.0
路过的帮忙解决点难题谢谢
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");
}


[[italic] 本帖最后由 StarWing83 于 2007-12-19 01:15 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
  相关解决方案