C如何将随机数与用户的输入进行比较

时间:2017-11-20 03:56:36

标签: c

我教授要求我制作的节目是取高度(h)和宽度(w)的输入。 宽度在10-20的范围内,高度为3-61。

我必须打印金额随机行,使得k = rand()%(w-1)+ 2

我的问题是我必须比较随机数K是否更接近" w"或零。 如何与非固定整数进行比较?

到目前为止我有什么

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

int main(void)
{
int h,w,k, x,y,z;
char l;
srand(time(NULL));

z=1;
x = rand();
while(z>0){

printf("Enter Width: ");
    scanf("%d", &w);
printf("Enter height: ");
    scanf("%d", &h);

    if(w >= 10 && w <= 20){
        if(h>=3 && h <= 61)
            z= -1;
    }
}

for(z=0;z < h; z++){
    printf("%d: ",k);
    k = (rand() % (w-1)) + 2;
    if(~ ~ ~){              // <--   <--   <--   <--   <--   ****
    for(y=0;y < k; y++){
    printf(" ");
    for(y=0;y < (k-1) ;y++){
        printf("j");
    }}}
    else{
    for(y=0;y < (k-1) ;y++){
        printf("j");
    }}
    printf("\n");
}
return 0;
}

在我的if语句中。我想比较K是否接近我的值W而不是0。 它将决定我是先打印K量的零还是只打印我的角色。

- &gt;已完成编辑。仍然在努力。我完成后会发一个答案。 如果我明白了。

1 个答案:

答案 0 :(得分:-1)

我不确定我理解你的问题......可能你只想让你的数字正确对齐?在这种情况下,请尝试:

printf("%*d", w, k)

这会打印k前面有足够的空格,因此打印的整个文字的宽度为w

有关详细信息,请参阅this answer