zapline 发表于 2010-2-26 00:10

编程小练习(3)

题目:

输出来回数组

要求,输入正整数x和y,x和y的值不超过50,然后输出一个来回的数组


举例:
输入 x=3,y=3
则输出
1   2   3
6   5   4
7   8   9

输入 x=5,y=2
则输出
1   2   3   4   5
109   8   7   6

输入 x=2,y=4
则输出
1   2
4   3
5   6
8   7

zapline 发表于 2010-2-26 00:22

再用图描述一下:
--->
<---
--->
<---
--->

挂挂 发表于 2010-2-26 00:26

我晕啊,赶着点 发作业

blueapplez 发表于 2010-2-26 00:40

#include "stdafx.h"
int main(int argc, char* argv[])
{
    int iOut = 1;
    int ix = 0;
    int iy = 0;
    printf("Please input two numbers:\nx = ");
    scanf("%d", &ix);
    printf("y = ");
    scanf("%d", &iy);
    printf("*********************************GAME*************************");
    for (int j=0; j<iy; j++)
    {
      printf("\n         ");
      for (int i=0; i<ix; i++)
      {
            int iTemp = ix - i*2 - 1;
            if (!(j%2))
            {
                iTemp = 0;
            }
            printf("%-6d", (iOut++) + iTemp);
      }
      
    }
    printf("\n*********************************GAME*************************\n");
    return 0;
}

zapline 发表于 2010-2-26 00:48


blueapplez 发表于 2010-2-26 00:40 http://www.52pojie.cn/images/common/back.gif


    真快

chenyuzheng 发表于 2010-2-26 10:06

本帖最后由 chenyuzheng 于 2010-2-26 10:42 编辑

/* Note:Your choice is C IDE */
//第一感觉用数组.后又想了如下法子.
#include "stdio.h"
void main()
{int i,k,f,j,g=1,l=1;
printf("input two integer\n");
scanf("%d,%d",&i,&k);
for(f=1;f<=k;f++)
{ for(j=1;j<=i;j++)
if(l%2!=0) printf("%-5d",g),g++;
else printf("%-5d",--g);
g=g+i,l++;
printf("\n");
}
}

chenyuzheng 发表于 2010-2-26 10:36

printf("%md")的打印格式
问个问题,"%md"其中m,能否实现变量????????

blueapplez 发表于 2010-2-26 10:52

printf("%md")的打印格式
问个问题,"%md"其中m,能否实现变量????????
chenyuzheng 发表于 2010-2-26 10:36 http://www.52pojie.cn/images/common/back.gif


    不能!
但是你可以用其他方式来完成同样的功能
eg. char *szData = new char; //m是变量
   memset(szData, ' ', m);
   szData = 0;
   sprintf(szData, "%d", idata) // idata是一个数,并且这个szData不能溢出了
   szData = ' ';
    printf("%s", szData);

O_o 发表于 2010-2-26 12:31

菜鸟 也来凑热闹
procedure TForm1.Button1Click(Sender: TObject);
var
i , j, x, y, tem : integer;
Str : string;
b : boolean;
begin
x := 5;
y := 4;
tem := 1;
for i :=1 to y do
begin
    Str := Str + #13;
    if b then b := false else b := true;
    for j :=1 to x do
    begin
      if b then Str := Str + IntToStr(tem + x -2 * j +1) + ' '
      else Str := Str + inttostr(tem) + ' ';
      tem := tem + 1;
    end;
end;
Showmessage(Str);
end;

zapline 发表于 2010-2-26 23:09

貌似目前还只有单一的一种方法啊
没人用填表法吗?
页: [1] 2
查看完整版本: 编程小练习(3)