同时打印上行和下行数字

时间:2016-04-28 15:20:34

标签: c algorithm numbers

我需要同时打印upword和downword数字,但是使用单变量和单循环。

例如。

If I give input 5 then output should be
5 & 1
4 & 2
3 & 3
2 & 4
1 & 5

但主要条件是单循环和单变量

感谢。

5 个答案:

答案 0 :(得分:4)

您可以使用结构使单个变量具有多个数据。

#include <stdio.h>

int main(void) {
    struct data {
        int n, i;
    } d;
    if (scanf("%d", &d.n) != 1) return 1;
    for (d.i = 1; d.i <= d.n; d.i++) {
        printf("%d & %d\n", d.n - d.i + 1, d.i);
    }
    return 0;
}

答案 1 :(得分:0)

int main(n,v) char ** v; {
  n = atoi(v[1]) | (atoi(v[1]) << 16);

  while (n&0xFFFF)
  {
      printf ("%d & %d \n", n&0xFFFF, ((n&0xFFFF0000)>>16)-(n&0xFFFF)+1);
      n = (n&0xFFFF0000) | ((n&0xFFFF)-1);
  }
}

用gcc(GCC)3.4.4编译(cygming special,gdc 0.12,使用dmd 0.125) 像这样跑。
a.exe 7

7和1

6和2

5和3

4和4

3和5

2和6

1及7

答案 2 :(得分:0)

您可以使用变量并使用数字的不同位置来获取您的值。

#include <stdio.h>

int main()
{
    int i;

    printf("Enter Start number: ");
    if (scanf("%d", &i) > 0)
    {
        if (i<100)
        {
            i = (i*100)+1;

            while (i/100>0)
            {
                printf("%d & %d\n", i/100, i%100);

                i = (i-100) + 1;
            }
        }
    }

    return 0;
}

答案 3 :(得分:0)

#include <stdio.h>
#include <stdlib.h>

int main(void){
    int *p = calloc(1, sizeof(int[2]));

    puts("input n : ");
    scanf("%d", p);

    while(*p){
        printf("%d & %d\n", (*p)--, ++p[1]);
    }
    free(p);
    return 0;
}

答案 4 :(得分:-1)

for(i = 1; i <= 5; ++i)
{
  printf("%d & %d\n", i, 6 - i);
}