0
我有一段代码(我是学生),理论上“应该”工作,但微软的Visual Studio 2010似乎与srand有关,因为它没有像其他保留名称一样高亮显示。MS VS 2010 srand()没有编译?
如果我从Auto_Complete_Matrix
中删除srand,那么代码将会毫无问题地编译。
功能Auto_Complete_Matrix
错误2错误C2143:错误德sintaxis:缺少 ';'在'type'c:\ users \ jorgee!\ desktop \ uade \ program之前。 1 \ proyectos \ tp3-matrices \ ejercicio 2 \ main.c 46 1 Ejercicio 2
我已经包含了stdlib和时间库。
非常感谢您的帮助。
/* 2. Realizar una función que determine si una matriz cuadrada de dimensión N
es simétrica con respecto a su diagonal principal. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#define FIL 5
#define COL 5
int True_False(char *message);
int Auto_Complete_Matrix(int matrix[ FIL ][ COL ]);
int Manual_Complete_Matrix(int matrix[ FIL ][ COL ]);
void Print_Matrix(int matrix[ FIL ][ COL ]);
int main() {
int matrix[ FIL ][ COL ];
if(True_False("Desea autocompletar la Matriz con números al azar? <Si/No> \n\n")) {
Auto_Complete_Matrix(matrix);
}
else {
Manual_Complete_Matrix(matrix);
}
Print_Matrix(matrix);
system("pause");
}
int True_False(char *message) {
char Answer[3];
fputs(message, stdout);
fgets(Answer, 3, stdin);
if (Answer[0] == 1) {
return 1;
}
if (strncmp(Answer, "Si", 2) == 0 || strncmp(Answer, "si", 2)) {
return 1;
}
return 0;
}
int Auto_Complete_Matrix (int matrix[ FIL ][ COL ]) {
srand(time(0));
int i, j;
for (i = 0; i < FIL; i ++) {
for (j = 0; j < COL; j ++) {
matrix[i][j] = rand() % (100 - 0 + 1) + 0;
}
}
return 0;
}
int Manual_Complete_Matrix(int matrix[ FIL ][ COL ]) {
int i, j;
for (i = 0; i < FIL; i++) {
for (j = 0; j < COL; j++) {
while(fscanf(stdin, "%d", matrix[i][j]) != 1) {
fflush(stdin);
continue;
}
}
}
}
void Print_Matrix(int matrix[ FIL ][ COL ]) {
int i, j;
for(i = 0; i < FIL; i++) {
for(j = 0; j < COL; j++) {
printf("%5d", matrix[i][j]);
}
puts("\n");
}
}
该死的noob错误...我知道,但由于某种原因,我忘记了srand。 非常感谢 – JorgeeFG
@Jorge在上面的打印输出中很难说清楚,但是如果您查看错误提到的行号,我希望它指出变量声明行有问题,而不是srand调用线。仔细查看错误消息中的细节将对您长期有帮助:) – reuben