我需要同时打印upword和downword数字,但是使用单变量和单循环。
例如。
If I give input 5 then output should be
5 & 1
4 & 2
3 & 3
2 & 4
1 & 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);
}