rand()不断给我相同的数字,并按变量减少4

时间:2017-11-08 09:11:56

标签: c random

我试图为一个班级做这项工作,但由于某种原因我不能让#include <stdlib.h> #include <stdio.h> #include <time.h> int main() { srand( time(NULL) ); int num, rep, nu, ba, bas; char B[20] = ""; char C[20] = ""; printf("Jogo: Converter Bases!\n"); printf("\n Quantas perguntas desejas responder? (1-6)"); scanf("%d", &num); while (num <= 0 || num > 6) { printf("\n Introduz um valor valido de 1 a 6: "); scanf("%d", &num); } for (int p=0; p<num; p++) { nu=rand()% 10; bas=rand()% 3; ba=rand()% 3; printf("\nnu = %i bas = %i ba = %i", &nu, &bas, &ba); while (ba = bas) { ba = rand()% 3; } if (bas = 0) { char B[20] = "Octal"; } else if (bas =1) { char B[20] = "Decimal"; } else { char B[20] = "Hexadecimal"; } if (ba = 0) { char C[20] = "Octal"; } else if (ba =1) { char C[20] = "Decimal"; } else { char C[20] = "Hexadecimal"; } printf("Converte %i de base %c para base %c\n", &nu, &B, &C); scanf("%d", &rep); } return 0; } 工作,我已经测试了几个不同的东西试图让它工作,但我只是想不出来。我是C的新手所以我可能在这里做错了,请帮助。

#define ASMSWAP32(dest_addr,data)

`

1 个答案:

答案 0 :(得分:4)

这是因为你在写:

printf("%d", &x);

当你应该写作

printf("%d", x);

在第一种情况下,您要打印变量的内存地址;在第二个 - 变量的内容。

&需要scanf,因为它需要知道存储地址的位置,但printf只需要该值。