CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

各位~我很菜。帮帮我啊~~~

楼主fly_higher(凌云一笑)2004-12-01 15:49:39 在 C/C++ / C语言 提问

给定一字母,要求打印出一个菱形,该菱形中间一行由此字母组成,其相邻的上下两行由它直接前趋字母组成。按此规律,真到字母A出现在第一行和最后一行为止。  
  如:       A  
              BBB  
            CCCCC       →给定字母C  
              BBB  
                A  
  读入任一含加、减运算的表达式并计算值。其中数为整数,每一数前有一字符,表达式用“=”结束,如输入:+20-4-5+168=  
  问题点数:20、回复次数:15Top

1 楼wwxsoft(婉儿)回复于 2004-12-01 16:00:23 得分 0

#include   <iostream>  
  #include   <stdlib.h>  
   
  using   namespace   std;  
   
  int   main(int   argc,   char   *argv[])  
  {  
      static   char   d[][5]={{'   ','   ','A','   ','   '},{'   ','B','B','B','   '},{'C','C','C','C','C'},{'   ','D','D','D','   '},{'   ','   ','E','   ','   '}};  
      int   i,j;  
      for(i=0;i<5;i++)  
      {  
      for(j=0;j<5;j++)  
      cout<<d[i][j];  
      cout<<endl;  
      }  
      system("PAUSE");  
      return   0;  
  }Top

2 楼wwxsoft(婉儿)回复于 2004-12-01 16:00:54 得分 0

很苯得办法  
  Top

3 楼fly_higher(凌云一笑)回复于 2004-12-01 16:04:42 得分 0

有没有搞错啊~    
          题目不是这样~Top

4 楼dean7411(痞子菜)回复于 2004-12-01 16:05:20 得分 0

main()  
  int   a,b,i;  
  for   (a=3,b=1;a>1;a--,b++)  
    for   (i=1;i<a;i++)  
      printf("   ");  
    for   (i=b;i>1;i--)  
      printf("%c",a+b);  
   
  printf("/n");  
  写了一半,可能有些错,但思想是这样的,给你借鉴一下Top

5 楼dean7411(痞子菜)回复于 2004-12-01 16:05:44 得分 0

下一半你自己写吧Top

6 楼dean7411(痞子菜)回复于 2004-12-01 16:09:33 得分 0

第二题代码量会很多,  
  Top

7 楼fly_higher(凌云一笑)回复于 2004-12-01 16:11:24 得分 0

谢谢楼上的大哥啦~Top

8 楼dean7411(痞子菜)回复于 2004-12-01 16:14:05 得分 0

修改一下:  
  #include   "stdio.h"  
  main()  
  {  
  int   a,b,i;  
  for   (a=3,b=1;a>1;a--,b++)  
    {  
    for   (i=1;i<a;i++)  
      printf("   ");  
    for   (i=b;i>1;i--)  
      printf("%c",a+b);  
   
  printf("/n");  
      }  
  ......  
  写了一半,可能有些错,但思想是这样的,给你借鉴一下,看懂了上半段你应该可以写出下半段  
  Top

9 楼seasy(海瞳)回复于 2004-12-01 16:14:18 得分 0

char   ch_out   =   'a',   ch_in;  
  int   i,j;  
  int   num   =   ch_in   -   ch_out;  
   
  for(j=num,   j>=0;   j--)  
  {  
    for(i=0;   i<j;   i++)  
    {  
      printf("   ");  
    }  
    printf("%c\n",   ch_out++);  
  }  
   
  for(j=num,   j>=0;   j--)  
  {  
    for(i=j;   i>=0;   i--)  
    {  
      printf("   ");  
    }  
    printf("%c\n",   --ch_in);  
  }  
   
  大概就这样吧Top

10 楼seasy(海瞳)回复于 2004-12-01 16:15:59 得分 0

第二题有个帖子刚讨论过Top

11 楼huanmm(射手小王子)回复于 2004-12-01 17:43:08 得分 0

main()  
  {  
          printf("     A     \n");  
          printf("   BBB   \n");  
          printf("CCCCC\n");  
          printf("   BBB   \n");  
          printf("     A     \n");  
  }Top

12 楼Michael_555(Nothing)回复于 2004-12-01 17:47:15 得分 20

第一个问题,在VC上调试通过。  
   
  #include   <stdio.h>  
   
  void   main()  
  {  
  char   baseLetter,   ch   =   'A';  
  int   count,   i,   m,   j;  
   
  printf(   "Please   Input   A   Letter:"   );  
  scanf(   "%c",   &baseLetter   );  
   
  /*   check   the   input   character   */  
  while(   baseLetter   <   'A'    
          ||   baseLetter   >   'z'    
          ||   (   baseLetter   >   'Z'   &&   baseLetter   <   'a'   )   )  
  {  
  printf(   "Input   Error!\n"   );  
  printf(   "Please   Input   A   Letter:"   );  
          scanf(   "%c",   &baseLetter   );  
  }  
   
  if(   baseLetter   >=   'a'   &&   baseLetter   <=   'z'   )  
          {  
  baseLetter   =   baseLetter   -   (   'a'   -   'A'   );  
  }  
   
  m   =   baseLetter   -   'A'   +   1;  
  count   =     2   *   (   baseLetter   -   'A'   )   +   1;  
   
  for(   i   =   1;   i   <=   count   ;   i   ++   )  
  {  
  for(   j   =   1;   j   <=   count;   j   ++   )  
  {  
  if(   j   <   m   )  
  {  
  if(   j   <   baseLetter   -   ch   +1   )  
  {  
  printf(   "   "   );  
  }  
  else  
                                  {  
  printf(   "%c",   ch   );  
  }  
  }  
  else  
  {  
  if(   (   count   -   j   )   >=   (   baseLetter   -   ch   )   )  
  {  
  printf(   "%c",   ch   );  
  }  
  else  
  {  
  printf(   "   "   );  
  }  
  }  
  }  
   
  if(   i   >=   m   )  
  {  
  ch--;  
  }  
  else  
  {  
  ch++;  
  }  
   
  printf(   "\n"   );  
   
  }  
   
  while(   getchar()   !=   '5'   );     //   input   5   to   exit.  
   
  }Top

13 楼Michael_555(Nothing)回复于 2004-12-01 19:04:49 得分 0

读入任一含加、减运算的表达式并计算值。其中数为整数,每一数前有一字符,表达式用“=”结束,如输入:+20-4-5+168=  
   
   
   
  #include   <stdio.h>  
  #include   <math.h>  
   
  int   GetNumber(   char   *paramStr   );  
  int   mergeOperAndNum(   char   oper,   int   num   );  
  int   CalculateTwoNum(   int   n,   int   m,   char   operation   );  
   
  void   main()  
  {  
  char   str[50];  
  char   oper;  
  int   val=0;  
  int   num1,   num2;  
   
  printf(   "Please   Input:   ");  
  scanf(   "%s",   str   );  
   
  printf(   "You   Input   String:   %s",   str   );  
   
  oper   =   *str;  
  str++;  
                   
  num1   =   GetNumber(   str   );  
  num1   =   mergeOperAndNum(   oper,   num1   );  
   
  while(   *str   !=   '='   )  
  {  
  oper   =   *str;  
  str++;  
                   
  num2   =   GetNumber(   str   );  
  val   =   CalculateTwoNum(   num1,   num2,   oper   );  
  }  
   
  printf(   "%d\n",   val   );  
   
  while(   getchar()   !=   Q   );   //input   Q   to   exit  
   
  }  
   
  int   GetNumber(   char   *paramStr   )  
  {  
  int   value;  
   
  while   (   *str   >=   '1'   &&   *str   <=   '9'   )  
  {  
  value   =   (   10   *   *value   +   (   *str++   -   '0'   )   )   &   0xFFFF;  
  }  
   
  return   value;  
  }  
   
  int   mergeOperAndNum(   char   oper,   int   num   )  
  {  
  if(   oper   ==   '+'   )  
          {  
  return   num;  
  }  
  else   if(   oper   ==   '-'   )  
  {  
  num   =   num   -   2   *   num;  
  return   num;  
  }  
  else  
  {  
  printf(   "Error1!\n");  
  return   0xFFFF;  
  }  
  }  
   
   
  int   CalculateTwoNum(   int   n,   int   m,   char   operation   )  
  {  
  switch(   operation   )  
  {  
  case   '+':  
  return   (   n   +   m   );  
  case   '-':  
  return   (   n   -   m   );  
  case   '*'  
  return   (   n   *   m   );  
  case   '/'  
  return   (   n   /   m   );  
  default:  
  printf(   "Error2!\n");  
  return   0xFFFF;  
  }  
   
  }Top

14 楼Michael_555(Nothing)回复于 2004-12-01 19:06:20 得分 0

不好意思,要修修  
   
   
  #include   <stdio.h>  
  #include   <math.h>  
   
  int   GetNumber(   char   *paramStr   );  
  int   mergeOperAndNum(   char   oper,   int   num   );  
  int   CalculateTwoNum(   int   n,   int   m,   char   operation   );  
   
  void   main()  
  {  
  char   str[50];  
  char   oper;  
  int   val=0;  
  int   num1,   num2;  
   
  printf(   "Please   Input:   ");  
  scanf(   "%s",   str   );  
   
  printf(   "You   Input   String:   %s",   str   );  
   
  oper   =   *str;  
  str++;  
                   
  num1   =   GetNumber(   str   );  
  num1   =   mergeOperAndNum(   oper,   num1   );  
   
  while(   *str   !=   '='   )  
  {  
  oper   =   *str;  
  str++;  
                   
  num2   =   GetNumber(   str   );  
  val   =   CalculateTwoNum(   num1,   num2,   oper   );  
  }  
   
  printf(   "%d\n",   val   );  
   
  while(   getchar()   !=   Q   );   //input   Q   to   exit  
   
  }  
   
  int   GetNumber(   char   *paramStr   )  
  {  
  int   value;  
   
  while   (   *str   >=   '1'   &&   *str   <=   '9'   )  
  {  
  value   =   (   10   *   value   +   (   *str++   -   '0'   )   )   &   0xFFFF;  
  }  
   
  return   value;  
  }  
   
  int   mergeOperAndNum(   char   oper,   int   num   )  
  {  
  if(   oper   ==   '+'   )  
          {  
  return   num;  
  }  
  else   if(   oper   ==   '-'   )  
  {  
  num   =   num   -   2   *   num;  
  return   num;  
  }  
  else  
  {  
  printf(   "Error1!\n");  
  return   0xFFFF;  
  }  
  }  
   
   
  int   CalculateTwoNum(   int   n,   int   m,   char   operation   )  
  {  
  switch(   operation   )  
  {  
  case   '+':  
  return   (   n   +   m   );  
  case   '-':  
  return   (   n   -   m   );  
  case   '*'  
  return   (   n   *   m   );  
  case   '/'  
  return   (   n   /   m   );  
  default:  
  printf(   "Error2!\n");  
  return   0xFFFF;  
  }  
   
  }Top

15 楼fly_higher(凌云一笑)回复于 2004-12-02 15:54:16 得分 0

哇~~   楼上这位强!    
          不过咧~   我就是有点地方看不懂哦~   能否详解~Top

相关问题

  • 各位前辈,我是新来的,问个很菜的问题?
  • 一个很菜的问题,请各位高手教教我
  • 一个很菜的问题请各位帮我解决一下
  • 我是菜鸟请各位高手帮帮忙!我很急,很急的!!!先谢谢各位高手
  • 很菜的问题,各位请进!!!
  • 我是菜鸟,请教各位GG,MM??????
  • 各位大虾:我是菜鸟,请问???
  • 各位大虾,我是菜鸟,请教
  • 各位大侠快来帮帮忙,我的VC很菜,我送分200,如何
  • 一个java的很菜的问题,麻烦各位帮我指点一下。

关键词

  • 字母
  • baseletter
  • getnumber
  • calculatetwonum
  • mergeoperandnum
  • 表达式
  • num
  • paramstr
  • oper
  • str

得分解答快速导航

  • 帖主:fly_higher
  • Michael_555

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo