gpt4 book ai didi

c - 矩阵输入期间的段错误

转载 作者:行者123 更新时间:2023-11-30 20:30:35 24 4
gpt4 key购买 nike

因此,我必须创建一个程序,当用户插入表格时,必须仅在输出中发送表格的边框。我使用矩阵作为输入,但是当用户结束输入时,程序停止,并且出现段错误。

#include <stdio.h>
#define VAL 50

void inputMatrice(int m[VAL][VAL], int *ncol, int *nrig);
void bordi(int m[][VAL], int ncol, int nrig, int v[], int *nv);
void outputVettore(int v[], int nv);

int main(){
int m[VAL][VAL], v[VAL], *ncol, *nrig, nc, nr, nv;
ncol = &nc;
nrig = &nr;
inputMatrice(m, ncol, nrig);
nv=0;
printf("ciao");
bordi(m, nc, nr, v, &nv);
outputVettore(v, nv);

}
/*Funzione per input matrici*/

void inputMatrice(int m[VAL][VAL], int *ncol, int *nrig){

int i=0, j=0;
printf("Inserisci il numero di righe: ");
scanf("%d", nrig);
printf("Inserisci il numero di colonne: ");
scanf("%d", ncol);
for(i=0;i<*nrig;i++){
for(j=0;j<*ncol;j++){
printf("Inserisci i valori della tabella nella posizione %d,%d: ", i+1, j+1);
scanf("%d", &m[i][j]);
}
}
}

void bordi(int m[][VAL], int ncol, int nrig, int v[], int *nv){
int i=0, j=0, k=0;
for(j=1; j<ncol; j++){
v[k]=m[i][j];
*nv++;
}
for(i=1;i<nrig;i++){
v[k] = m[i][j];
*nv++;
}
for(j=(ncol-1); j>0; j++){
v[k]=m[i][j];
*nv++;
}
for(i=(nrig-1); j>0; i++){
v[k]=m[i][j];
*nv++;
}
}
void outputVettore(int v[], int nv){
int i=0;
for(i=0;i<nv;i++){
printf("|%d|", v[i]);
}

}

抱歉,意大利语输出和糟糕的英语。

最佳答案

错误发生在void bordi(int m[][VAL], int ncol, int nrig, int v[], int *nv) 函数。

修复第三个和第四个 for 循环条件。您在第一个循环中递增了 j,但没有递减或将其设置为 0,因此您得到了无限循环。

关于c - 矩阵输入期间的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53943034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com