所以練習是這樣的:
我們得到一個矩陣,我們假設將矩陣的元素以同心的方式添加到向量陣列中。我的意思是,例如,我們有一個具有某些值的 5x5 矩陣和另一個向量sum[3](我假設為 3,因為對于 5x5 矩陣,我們有 3 個同心的數字“圓圈”),然后我們將它們添加到那里。我希望我足夠清楚。
所以無論如何我記得幾周前做了類似的事情,我們必須做一個同心的數字陣列,這意味著給定的行數和列數矩陣應該看起來像這樣:(我在這里做了一個 3x3 只是為了演示)
1 2 3
8 1 4
7 6 5
所以基本上我在這里使用了相同的想法但無濟于事
我沒有得到我應該得到的值。對于那些想知道自從我從檔案中讀取矩陣的值是什么的人:
1 2 3 4 5
6 7 8 9 0
1 2 3 4 5
6 7 8 9 0
1 1 1 1 1
這是我到目前為止所做的:
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
int v[N][N];
int i, j;
int k = 0;
FILE*file;
file = fopen("file", "r");
int sum[3] = {0,0,0};
for (i = 0; i < N; i )
{
for (j = 0; j < N; j )
{
fscanf(file, "%d", &v[i][j]);
}
}
printf("The matrix: \n");
for (i = 0; i < N; i )
{
for (j = 0; j < N; j )
{
printf("%d ", v[i][j]);
}
printf("\n");
}
while (k < 3)
{
for (i = 0; i < N; i )
{
for (j = i; j < N - 1; j )
sum[k] = sum[k] v[i][j];
for (j = i - 1; j < N - 1 - i; j )
sum[k] = sum[k] v[j][N - 1 - i];
for (j = N - 2 - i; j >= i; j--)
{
sum[k] = sum[k] v[N - 1 - i][j];
}
for (j = N - 2 - i; j > i; j--)
{
sum[k] = sum[k] v[j][i];
}
k ;
}
}
for (i = 0; i < 3; i )
{
printf("%d ", sum[i]);
}
return 0;
}
uj5u.com熱心網友回復:
我不知道我是否正確理解了你的問題......
這是你要找的嗎?
int main(void) {
int MatrixSize = 5;
int Matrix[5][5] = {
{1,1,1,1,1},
{1,3,2,2,1},
{1,2,3,2,1},
{1,2,2,4,1},
{1,1,1,1,1}
};
int Sum[3] = {0,0,0};
int ArraySize = 3;
for (int k = 0; k < ArraySize; k) {
for (int j = k; j < MatrixSize - k; j) {
Sum[k] = Matrix[k][j];
if (MatrixSize - 1 - k > k) {
Sum[k] = Matrix[MatrixSize - 1 - k][j];
}
}
for (int i = k 1; i < MatrixSize-k-1; i) {
Sum[k] = Matrix[i][k];
Sum[k] = Matrix[i][MatrixSize - 1 - k];
}
}
for (int i = 0; i < ArraySize; i) {
printf("%d ", Sum[i]);
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/407564.html
標籤:
上一篇:C中的結構-需要一些建議
