烂泥化刚 发表于 2021-1-19 03:57:16

有个问题想请教一下

本帖最后由 烂泥化刚 于 2021-1-19 03:58 编辑



两张图中的“i”是在两个不同的地方声明的
按理来说对这段代码的运行不会有影响吧(应该是这样吧,如果不是的话见笑了)
为什么在我的代码中运行起来有很大影响
(从我发帖的时间来看就能推断出这是一个怎样凄惨悲凉的故事了{:10_266:} 菜鸟日常吗这是?)
先睡了{:9_222:}



chxchxkkk 发表于 2021-1-19 09:12:50

作用域不同,没啥影响。不知道在你的代码中有啥影响

心驰神往 发表于 2021-1-19 11:05:51

能把代码贴出来吗

烂泥化刚 发表于 2021-1-19 11:42:59

本帖最后由 烂泥化刚 于 2021-1-19 11:45 编辑

心驰神往 发表于 2021-1-19 11:05
能把代码贴出来吗

这样
我使用的是dev
有问题的代码在《进行矩阵运算(第36行)那一块
这个本可以忽略的问题让我的代码在能运行的基础下一直出错
#include <stdio.h>

int main()
{
        int m, n, p;
        printf("请输入第一个矩阵的尺寸:(M * P)\n");
        scanf("%d * %d", &m, &p);
        printf("请输入第二个矩阵的尺寸:(P * N)\n");
        scanf("%d * %d", &p, &n);
       
        int array, array2;
        int result;
        for(int i = 0; i < m*n; i++)
        {
                *(*result + i) = 0;
        }
       
        printf("请输入第一个矩阵的值:\n");
        for(int i = 0; i < m; i++)//存入第一个矩阵
        {
                for(int j = 0; j < p; j++)
                {
                        scanf("%d", &array);
                }
        }

        printf("请输入第二个矩阵的值:\n");
        for(int i = 0; i < p; i++)//存入第二个矩阵
        {
                for(int j = 0; j < n; j++)
                {
                        scanf("%d", &array2);
                }
        }
       
//进行矩阵的运算
        for(int j = 0; j < m; j++)
        {
                for(int i = 0; i < n; i++)
                {
                        for(int a = 0; a < p; a++)
                        {
                                result += array * array2;
                        }
                }
        }

        printf("计算结果如下:\n") ;
        for(int a = 0, b, i; a < m|| a < p;a++)//开始打印结果
        {
                for(i = 0; i < 3; i++)
        {
                if(a < m&& i == 0)
                {
                        putchar('|');
                        for(b = 0; b < p; b++)
                        {
                                printf(" %d", array);
                        }
                }
                else if(i == 0)
                {
                        putchar(' ');
                        for(b = 0; b < p; b++)
                        {
                                printf("");
                        }
                }
                else if(a < p&& i ==1)
                {
                        putchar('|');
                        for(b = 0; b < n; b++)
                        {
                                printf(" %d", array2);
                        }
                }
                else if(i == 1)
                {
                        putchar(' ');
                        for(b = 0; b < n; b++)
                        {
                                printf("");
                        }
                }
                else if(a < m&& i ==2)
                {
                        putchar('|');
                        for(b = 0; b < n; b++)
                        {
                                printf(" %d", result);
                        }
                }
                else if(i == 2)
                {
                        putchar(' ');
                        for(b = 0; b < n; b++)
                        {
                                printf("");
                        }
                }
               
               
               
                if(a == 2&& i == 0)
                {
                        printf(" | * ");
                }
                else if(a == 2&& i == 1)
                {
                        printf(" | = ");
                }
                else if(i == 2)
                {
                        printf(" |   \n");
                }
                else
                {
                        printf(" |   ");
                }
        }
        }
       
        return 1;
}
页: [1]
查看完整版本: 有个问题想请教一下