24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 434  |  回复: 7
当前主题已经存档。
【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 龙鼎天 的 6 个金币

龙鼎天

金虫 (小有名气)

[交流] 【求助】求高手帮忙解决两个c语言编程

1.编程输出右边图形,其行数n (<= 26)由输入而定。                A
                                                                                          A B A
                                                                                       A B C B A
                                                                                    A B C D C B A
2. 已知某班N(〈=50)名学生进行了高数、英语和C语言等3门课考试,将3门课的成绩以及计算3门课的总分存放于一个二维数组中,将学生姓名存放在另一个二维字符数组中,按总分(由高到低)将学生姓名排序并输出排序结果(序号和姓名)。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

龙鼎天

金虫 (小有名气)

错了第一题的图形是                                                               
                                                                                             A   
                                                                                          A B A
                                                                                       A B C B A
                                                                                    A B C D C B A
2楼2009-05-11 15:47:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liyuanliyh

金虫 (初入文坛)

★ ★ ★ ★ ★ ★ ★
龙鼎天(金币+4,VIP+0):谢谢你认真写了。后来我又想了下,其实单用循环就可以做出来的,你在看看是不是这样 5-12 21:58
sunxiao(金币+3,VIP+0):谢谢参与,欢迎常来仿真编程版 5-13 02:38
第一个问题的源码如下:不过感觉思想不是很新,希望能对你有所帮助。
第二个有时间的话再写写看





#include "stdafx.h"
#include "stdio.h"
void fun1();
int fun2(int i);
int fun3(int a);
int fun4(int a);

int main()
{       
        int a;
        scanf("%d",&a);
        int k=a;
        if(a<=0||a>26)
                printf("输入有误!";
        else
        for(int i=1;i<=a;i++,k--)
        {
                fun1();
                fun2(k);
                fun3(i);
                fun4(i);
        }

        fun1();
        return 0;
}


//换行的函数
void fun1()
{
        printf("\n";
}

//输出(a-1)个空格的函数
int fun2(int i)
{
       
        for(int j=0;j         {
                printf(" ";
        }
                return 0;
}


//正向输出字母
int fun3(int a)
{
        char ch='A';
        for(int i=0;i         {
                printf("%c",ch+i);
        }
        return 0;
       
}

//反向输出字母
int fun4(int a)
{
        char ch='A';
        for(int i=a-2;i>=0;i--)
        {
                printf("%c",ch+i);
        }
        return 0;
}
3楼2009-05-12 18:51:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liyuanliyh

金虫 (初入文坛)


gwdavid(金币+1,VIP+0):程序软件版新开版!大家多多支持,欢迎常来! 5-30 22:41
习惯把东西做成一块一块的
做面向对象的东西做多了
很久没用面向过程的思想做东西了
4楼2009-05-12 22:23:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tang-bo001

木虫 (正式写手)

第一题我在visual c++上编译通过的,是建立在liyuanliyh 的基础上的

★ ★ ★
gwdavid(金币+3,VIP+0):程序软件版新开版!大家多多支持,欢迎常来! 5-30 22:42
#include "stdio.h"
int main(void)
{        
        int a,k,i;
        scanf("%d",&a);
                 k=a;
        void fun1();
        int fun2(int i);
        int fun3(int a);
                int fun4(int a);
        if(a<=0||a>26)
                printf("输入有误!";
        else
        for(i=1;i<=a;i++,k--)
        {
                        fun1();
                        fun2(k);
                        fun3(i);
                        fun4(i);
        }
               
        fun1();
        return 0;
}


//换行的函数
void fun1()
{
        printf("\n";
}

//输出(a-1)个空格的函数
int fun2(int i)
{
       
        for(int j=0;j         {
                printf(" ";
        }
        return 0;
}


//正向输出字母
int fun3(int a)
{
        char ch='A';
        for(int i=0;i         {
                printf("%c",ch+i);
        }
        return 0;
       
}

//反向输出字母
int fun4(int a)
{
        char ch='A';
        for(int i=a-2;i>=0;i--)
        {
                printf("%c",ch+i);
        }
        return 0;
}
5楼2009-05-24 08:09:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

prestoner

木虫 (小有名气)

#include
#include
#include

int main(int argc, char* argv[])
{
        int                n;
        int                i, j;
        if ( argc < 2 )
        {
                printf("usage: test N\n";
                return 0;
        }
        n = atoi(argv[1]);
        for (i=0; i         {
                for (j=0; j                         printf(" ";
                for (j=0; j<2*i+1; j++)
                        printf("%c", 'A'+i-abs(j-i));
                printf("\n";
        }
        return 0;
}

test 10 的输出效果:
          A
         ABA
        ABCBA
       ABCDCBA
      ABCDEDCBA
     ABCDEFEDCBA
    ABCDEFGFEDCBA
   ABCDEFGHGFEDCBA
  ABCDEFGHIHGFEDCBA
ABCDEFGHIJIHGFEDCBA

[ Last edited by prestoner on 2009-5-31 at 23:28 ]
╰╭︿︿☆╮ {/ . .\} ( (oo) ) ︶︶︶︶
6楼2009-05-31 23:27:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

prestoner

木虫 (小有名气)

如果输出的字符之间有空格的话,只需要更改部分代码:
        for (i=0; i         {
                for (j=0; j                         printf("  ";
                for (j=0; j<2*i+1; j++)
                        printf("%c ", 'A'+i-abs(j-i));
                printf("\n";
        }
效果:
                  A
                A B A
              A B C B A
            A B C D C B A
          A B C D E D C B A
        A B C D E F E D C B A
      A B C D E F G F E D C B A
    A B C D E F G H G F E D C B A
╰╭︿︿☆╮ {/ . .\} ( (oo) ) ︶︶︶︶
7楼2009-05-31 23:31:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

第二个感觉很奇怪,为什么一定要用2个2维数组呢?
把姓名、序号、成绩全部保存在一个结构中,然后为结构做个索引排序不是很好吗。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
8楼2009-06-01 16:27:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 龙鼎天 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见