這段代碼會生成一個txt文件
成都服務(wù)器托管,成都創(chuàng)新互聯(lián)提供包括服務(wù)器租用、成都服務(wù)器托管、帶寬租用、云主機、機柜租用、主機租用托管、CDN網(wǎng)站加速、域名與空間等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:18980820575#include#include#define MAX(X,Y) ((X) >(Y) ? (X) : (Y))
char a[100][100];
void swap(char *i,char *j)//交換
{
char t;
t = *i;
*i = *j;
*j = t;
}
void putin(char arr[][100],int N,FILE *p)//輸入
{
int i,j,k,t;
for(i = 0;i< N;i++)
{
for(j = 0;j< N;j++)
{
scanf(" %c",&arr[i][j]);
fputc(arr[i][j],p);
if(j != N-1) fputc(' ',p);
}
fputc('\n',p);
}
fputc('\n',p);
fprintf(p,"#以上為初始矩陣:\n");
}
int success_shu(char arr[][100],int n)//成功生成樹
{
int yes = 1;
int i,j;
int AAA;
AAA = find_1(&i,&j,arr,n);
if(AAA == -1)
{
printf("你怎么敢全寫0??\n");
return -1;
}
if(arr[0][0] == '1') yes = -1;
else
{
for(i = 1;i< n;i++)
{
for(j = 1;j< n;j++)
{
if(arr[i][j] == '1') yes = 0;
break;
}
}
}
return yes;
}
void hebing_point(int fn,char arr[][100],FILE *p)
{
int N = fn;
int H = 0,L = 0;
find_1(&H,&L,arr,N);
printf("%d %d\n",H,L);
int max = H,min = L;
if(max< min) swap(&max,&min);
int sum,i,j;
for(sum = 0;sum< N;sum++)
{
arr[sum][min] = MAX(arr[sum][min],arr[sum][max]);
for(i = max;i< N-1;i++)
{
arr[sum][i] = arr[sum][i+1];
}
}
for(sum = 0;sum< N-1;sum++)
{
arr[min][sum] = MAX(arr[min][sum],arr[max][sum]);
for(i = max;i< N-1;i++)
{
arr[i][sum] = arr[i+1][sum];
}
}
arr[min][min] = '0';
for(i = 0;i< N-1;i++)
{
for(j = 0;j< N-1;j++)
{
fputc(a[i][j],p);
fputc(' ',p);
}
fputc('\n',p);
}
}
int find_1(int *i,int *j,char arr[][100],int n)//找到最近的1的位置
{
int h=0,l=0;
int yes=0;
for(h = 0;h< n;h++)
{
for(l = 0;l< n;l++)
{
if(arr[h][l] == '1')
{
*i = h; *j = l;
yes = 1;
break;
}
}
if(yes == 1) break;
}
if(yes == 0) return -1;
return 1;
}
int main()
{
int N;
FILE *fp;
printf("請輸入該無向樹矩陣的行列數(shù):");
scanf("%d",&N);
fp = fopen("D:/我愛你啊,離散.txt","w");
if(!fp)
{
printf("創(chuàng)建文件失敗\n");
return -1;
}
//開始輸入
char ch;
putin(a,N,fp);//輸入
//開始合并
int T=0,n = N;
for(T = 0;T< N-1;T++)
{
if(success_shu(a,n)==1)//成功生成樹
{
printf("YES\n");
break;
}
else if(success_shu(a,n)==-1)
{
printf("ERR\n");
break;
}
else
{
fprintf(fp,"第%d次合并:\n",T+1);
hebing_point(n,a,fp);
n--;
}
}
//關(guān)閉文件
fclose(fp);
return 0;
}
生成結(jié)果如下:
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧