UVA 4 5 追蹤單元格 512

2021-07-25 21:52:11 字數 1698 閱讀 1109

uva-4.5-追蹤單元格-512

大意就是對**進行增添刪除列或者行的操作,尋找操作前和操作後某單元格的位置的變回,也就是追蹤單元格。

題目分析:

這個題我想的辦法是建立兩個一摸一樣的**,對每個單元格用數字進行標記,操作完成後查詢標記數字的位置就可以了。

對於每種操作,可以寫乙個函式來實現,注意題目中的增刪行列是整體增刪,比如散去第二行和第四行,不是在散去第二行後在新形成的**中刪去第四行,而是在舊**中刪去第二行和第四行。

這裡我想用陣列存下要刪去或者增加的行和列,注意要進行排序,然後運用關係式進行改變。

注意:一開始寫**的時候注意到了要排序,但是後來犯懶沒寫,導致wa了好多次

tat。

給出**:

#include 

#include

#include

//int num[110][110];

void ex(int p[110][110],int

*m,int

*n)void dc(int p[110][110],int

*m,int

*n) }

for(k=0;kint a=num[k]-k;

//scanf("%d",&a);

//int i,j;

for(i=1;i<=*m;i++)

}*n=*n-1;

}}void dr(int p[110][110],int

*m,int

*n) }

for(k=0;kint a=num[k]-k;

for(i=1;i<=*n;i++)

}*m=*m-1;

}}void ic(int p[110][110],int

*m,int

*n) }

for(k=0;kint a=num[k]+k;

for(i=1;i<=*m;i++)

else}}

*n=*n+1;

}}void ir(int p[110][110],int

*m,int

*n) }

for(k=0;kint a=num[k]+k;

for(i=1;i<=*n;i++)

else}}

*m=*m+1;

}}int main()

int num;

scanf("%d",&num);

char comd[5];

while(num--)

else

else

else

else}}

}}

int n;

intx,y;

scanf("%d",&n);

printf("spreadsheet #%d\n",book1);

while(n--)

}if(mark)

break;

}if(mark)

printf("cell data in (%d,%d) moved to (%d,%d)\n",x,y,i,j);

else

printf("cell data in (%d,%d) gone\n",x,y);

mark=0;

}//printf("\n");

}return

0;}

追蹤公式引用的單元格

描述 公式引用很多單元格進行計算是經常的事,在檢查公式 審核結果時很容易因為公式引用的 過於複雜而造成麻煩,下面通過乙個例項為大家介紹下如何標記公式 引用到哪些單元格,或者間接引用了哪些單元格,大概步驟就是在a1單元格輸入100,a9輸入200,c2輸入公式 a1 50,回車,繼續在e5單元 格輸入...

labview 活動單元格 活動單元格屬性

短名稱 activecell 必需 基礎軟體包 類 多列列表框類的屬性 用途 建立屬性。設定活動單元格的行和列。名稱說明 行設定活動單元格的行。取值範圍為0至n,n為行數 1。輸入 2可選擇所有行。列設定活動單元格的列。取值範圍為0至m,m為列數 1。輸入 2可選擇所有列。輸入 1可選擇列首。下表為...

清空合併單元格之隱藏單元格

合併單元格有真有假,如果大家不知道二者的區別,請移步 excel合併單元格之真假李逵 先了解一下。識別兩種合併單元格的方法也很簡單,輔助列使用公式讀取一下單元格內容,如果合併單元格之隱藏單元格仍然有內容,那麼這就是貼上格式建立的合併單元格。接下來要講的合併單元格是用貼上格式產生的,如果希望清空d列中...