那是代碼:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int linhas=0, col=0, num=0, i=0, pos1[100];
int pos[100];
scanf("%d %d %d", &linhas, &col, &num);
int matriz[linhas][col];
for(i=0; i<num;i ){
scanf(" %c%d", &pos[i], &pos1[i]);
}
for(i=0;i<num;i ){
pos[i] -= 97;
}
return 0;
}
這很簡單,我宣告了 2 個陣列,一個用于存盤 char( pos[] ) 的值,另一個用于存盤整數值 ( pos1[] ),它可以作業:D。
問題是,如果我宣告一個矩陣 ex: matrix[linhas][col],我的代碼并沒有真正存盤一個字符的值,如果我取下它,它會開始正常存盤,也沒關系無論是在獲取行和列(linhas 和 col)之后立即宣告矩陣,還是在代碼末尾宣告它。我不知道問題是什么,我很感激任何提示。
uj5u.com熱心網友回復:
int pos[100];
scanf("%d %d %d", &linhas, &col, &num);
int matriz[linhas][col];
for(i=0; i<num;i ){
scanf(" %c%d", &pos[i], &pos1[i]);
}
該%c格式說明將字符讀,但它需要一個字符讀入的地址。你將一個int的地址傳遞給它。
最簡單的解決方法是更改pos為char pos[100];. 另一個可能的解決方法是:
for(i=0; i<num;i ){
char c;
scanf(" %c%d", &c, &pos1[i]);
pos[i] = c;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/338882.html
上一篇:結構體中字符指標的記憶體分配
