c - C中的数组输出故障
问题描述
此代码正在运行但没有输出我的错是什么?我,想要数组,我想写这个数组并比较这个数组的列和行。但是这段代码没有输出。另一个问题是我想使用动态编程我该怎么做?
代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double CompFunc(int *n, int *m, int *x, int *y) {
int first[*n][*m];
srand(time(0));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
first[i][j] = rand() % 10 + 1;
}
}
printf("First array:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d", first[i][j]);
if (j == m - 1) {
printf("\n");
}
}
}
int second[*x][*y];
srand(time(0));
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
second[i][j] = rand() % 10 + 1;
}
}
printf("Second array:\n");
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
printf("%d ", second[i][j]);
if (j == y - 1) {
printf("\n");
}
}
}
if (n == x || m == y)
return 1;
else
return 0;
}
int main() {
int a, b, c, d;
printf("How many elements do you want in the first array's column:");
scanf("%d", &a);
printf("How many elements do you want in the first array's row:");
scanf("%d", &b);
printf("How many elements do you want in the second array's column:");
scanf("%d", &c);
printf("How many elements do you want in the second array's row:");
scanf("%d", &d);
CompFunc(&a, &b, &c, &d);
}
解决方案
我注意到的一件事是变量n
, m
,x
和y
都被声明为指针,int*
但是当您在 for 循环中迭代它们时,您并没有取消引用它们。
例如
for(int i=0; i<n; i++){ // you wrote
for(int i=0; i<*n; i++){ // but you should dereference n
推荐阅读
- javascript - 如何根据一个条件返回两个值?
- tensorflow - 使用混淆矩阵值的 TensorFlow 自定义指标
- python - KERAS 在 docker 容器中添加第一层时随机卡住
- reactjs - Button doesn't disappear immediately; need to move mouse during animation using clip-path
- rabbitmq - spring.rabbitmq.addresses :负载均衡器地址与节点地址列表
- windows - 为管理员安装了不同版本的 npm;如何更新本地版本?
- android - 带有 *multiple* 的 Android 视图绑定
可能的? - javascript - 在 Javascript 中显示整个类,而不是运行到 ~100 个字符的部分文本(SVELTE,但可能更通用)
- coq - 我如何证明在 Coq 中要求特定功能的存在目标?
- arduino - 如何使用 API 将 HTTPS POST 请求转换为 ESP8266