C 矢量位置的内容分析

C 矢量位置的内容分析,c,C,我需要比较向量上的所有数字是否都等于零。如果不是,请打印一条消息 我想指出地址的内容,但我怎么做呢 我的代码: #include <stdio.h> #include <stdlib.h> int main (void) { int linha_user=0, coluna_user=0; float *identidade[linha_user][coluna_user]; int linha, coluna; int se=0,sim

我需要比较向量上的所有数字是否都等于零。如果不是,请打印一条消息

我想指出地址的内容,但我怎么做呢

我的代码:

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

int main (void)
{
    int linha_user=0, coluna_user=0;
    float *identidade[linha_user][coluna_user];
    int linha, coluna;
    int se=0,sim=0,nao=0;
    printf("Digite o número de linhas desejado na matriz:\n");
    scanf("%d", &linha_user);
    printf("Digite o número de colunas desejado na matriz:\n");
    scanf("%d", &coluna_user);

    for (linha=0;linha<linha_user;linha++)
    {
        for (coluna=0;coluna<coluna_user;coluna++)
        {
            printf("Digite o número desejado para a posição %d,%d\n",linha,coluna);
            scanf("%d", &identidade[linha][coluna]);
        }
    }

    for (linha=0;linha<linha_user;linha++)
    {
        for (coluna=0;coluna<coluna_user;coluna++)
        {
            if (*identidade[linha][coluna] != 0)
            {
                se=nao;
            }
            else
            {
                se=sim;
            }
        }
    }

    if (se == nao)
    {
        printf("Nem todos os elementos são iguais a zero\n");
    }
    else
    {
        printf("Todos os elementos são iguais a zero.\n");
    }
#包括
#包括
内部主(空)
{
int linha_user=0,coluna_user=0;
float*identidade[linha_user][coluna_user];
科鲁纳林哈国际酒店;
int-se=0,sim=0,nao=0;
printf(“Digite o número de linhas desejado na matriz:\n”);
scanf(“%d”和linha_用户);
printf(“Digite o número de colunas desejado na matriz:\n”);
scanf(“%d”、&coluna_用户);

对于(linha=0;linha您的两个对象
sim
nao
在您的程序中具有相同的
0
值。如果您想在以下方面区分它们,它们需要具有不同的值(如
0
1
):

if (se == nao)

然后,当你观察到一个非零元素时,你需要在
for
循环中
中断

你的两个对象
sim
nao
在你的程序中具有相同的
0
值。如果你想在以下方面区分它们,它们需要有不同的值(如
0
1
):

if (se == nao)

然后,当您观察到非零元素时,您需要在
for
循环中
中断

请在注释、消息和标识符名称中使用英语

我用GNU
indent
重新嵌入了您的代码,然后用
GCC-Wall-Wextra
编译了它(使用GCC4.8),得到了

walter.c: In function 'main':
walter.c:22:4: warning: format '%d' expects argument of type 'int *', but argument 2 has type 'float **' [-Wformat=]
scanf ("%d", &identidade[linha][coluna]);
^
walter.c:49:1: warning: control reaches end of non-void function [-Wreturn-type]
}

你的声明呢

 int linha_user=0, coluna_user=0;
 float *identidade[linha_user][coluna_user];
这肯定是错误的。您正在声明一个零大小的浮点指针矩阵(如果以后使用a.g.
scanf
或某些赋值设置
linha\u user
coluna\u user
,则该矩阵不会更改)

我强烈推荐阅读一些好的C编程书籍

您可能希望(至少在Linux上)使用调试器(如Linux上的gdb)和内存泄漏检测器(如Linux上的gdb)调试您的程序


顺便说一句,您使用的矢量术语使我建议使用(GCC 4.8编译器)及其容器类,尤其是其标准模板。当然,在这种情况下,您希望使用
g++-std=c++11-Wall-g
进行编译。

请在注释、消息和标识符名称中使用英语

我用GNU
indent
重新嵌入了您的代码,然后用
GCC-Wall-Wextra
编译了它(使用GCC4.8),得到了

walter.c: In function 'main':
walter.c:22:4: warning: format '%d' expects argument of type 'int *', but argument 2 has type 'float **' [-Wformat=]
scanf ("%d", &identidade[linha][coluna]);
^
walter.c:49:1: warning: control reaches end of non-void function [-Wreturn-type]
}

你的声明呢

 int linha_user=0, coluna_user=0;
 float *identidade[linha_user][coluna_user];
这肯定是错误的。您正在声明一个零大小的浮点指针矩阵(如果以后使用a.g.
scanf
或某些赋值设置
linha\u user
coluna\u user
,则该矩阵不会更改)

我强烈推荐阅读一些好的C编程书籍

您可能希望(至少在Linux上)使用调试器(如Linux上的gdb)和内存泄漏检测器(如Linux上的gdb)调试您的程序



顺便说一句,您使用的矢量术语让我建议使用(GCC 4.8编译器)及其容器类,尤其是其标准模板。当然,如果是这样的话,您希望使用
g++-std=c++11-Wall-g
进行编译。

很抱歉,这是西班牙语吗?葡萄牙语…我来自巴西:)好的,我下次会知道。=)这个问题似乎离题了,因为它不太可能在将来帮助其他人。对不起,离题了,是西班牙语吗?葡萄牙语。。。我来自巴西……)好的,下次我会知道的这个问题似乎离题了,因为它不太可能在将来帮助其他人。有可能从两个循环中
中断
吗?@Alex您需要在第一个循环中中断
,然后在第二个循环中中断测试条件和
中断
。或者在两个循环后加上标签的
goto
。我个人会选择
goto
从N个循环中断的另一种方法是从函数中提前返回。但是这需要循环在一个单独的函数中,而不是在main中(无论如何这是一个好主意)是否可以从两个循环中
中断
?@Alex您需要在第一个循环中中断
,然后在第二个循环中设置测试条件和
中断
。或者在两个循环后加上标签的
goto
。我个人会选择
goto
从N个循环中断的另一种方法是从函数中提前返回。但是这需要循环在一个单独的函数中,而不是在main中(无论如何这是个好主意)。现在,这个问题可以在葡萄牙语网站上提出。现在,这个问题可以在葡萄牙语网站上提出。