懊恼王子 2021-11-04 21:16 采纳率: 0%
浏览 24

如果a=3 ,但是只能输入三个数而不是9个

#include <stdio.h>
#include<stdlib.h>
int main() {
int a = 0, i = 0, j = 0, c = 0,d = 0,sum = 0,e = 0;
int** b = NULL;

printf("请输入方阵的阶数a:");
scanf_s("%d", &a);
d = a * a;
b = (int **)malloc(d* sizeof(int));
printf("请输入元素,并且每a个元素换一次行。\n");

for (i = 1; i <= a; i++) {
    for (j = 1; j <=a; j++) {
        scanf_s("%d", &c);



        b[i][j] = c;

    }
}

for(i = 1 ;i<=a;i++)
{
    e = b[i][i];
    sum = sum + e;
}
printf("%d", sum);
free(b);
return 0;

}

如果a=3 ,但是只能输入三个数而不是9个

  • 写回答

2条回答 默认 最新

  • 关注

    主要的问题是:数组的下标是从0开始的,到a-1结束,b[a]会越界

    b = (int **)malloc(d* sizeof(int))这里,改成:
    
    b = (int **)malloc(a* sizeof(int*))
    for(i=0;i<a;i++)
      b[i] = (int *)malloc(a*sizeof(int));
    
    另外:
    for (i = 1; i <= a; i++) { 改成 for (i = 0; i < a; i++) { 
        for (j = 1; j <=a; j++)  改成  for (j = 0; j <a; j++) 
    
    
    for(i = 1 ;i<=a;i++) 改成for(i = 0 ;i<a;i++)
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月4日

悬赏问题

  • ¥60 如何批量获取json的url
  • ¥15 对法兰连接元件所承受的表面载荷等效转化为法兰开孔接触面上的等效表面载荷?
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼