早教吧作业答案频道 -->其他-->
试编出能完成如下的操作程序1.使20H单元中数的高两位变0试编出能完成如下的操作程序1.使20H单元中数的高两位变0,其余不变2.使20H单元中数的高两位变1,其余不变3.使20H单元中数的高两位变
题目详情
试编出能完成如下的操作程序 1.使20H单元中数的高两位变0
试编出能完成如下的操作程序
1.使20H单元中数的高两位变0,其余不变
2.使20H单元中数的高两位变1,其余不变
3.使20H单元中数的高两位变反,其余不变
4.使20H单元中数的所有位数变反
试编出能完成如下的操作程序
1.使20H单元中数的高两位变0,其余不变
2.使20H单元中数的高两位变1,其余不变
3.使20H单元中数的高两位变反,其余不变
4.使20H单元中数的所有位数变反
▼优质解答
答案和解析
#include
#include
#include
#include
void swap(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
/*快速排序算法*/
void QuickSort(int a[], int l, int r)
{
int i=l; /*从左至右的游标*/
int j=r + 1; /*从右到左的游标*/
int pivot=a[l];
if (l >= r) return;
/*把左侧>= pivot的元素与右侧<= pivot 的元素进行交换*/
while (1)
{
do
{/*在左侧寻找>= pivot 的元素*/
i = i + 1;
} while (a[i] < pivot);
do
{/*在右侧寻找<= pivot 的元素*/
j = j - 1;
} while (a[j] > pivot);
if (i >= j) break; /*未发现交换对象*/
swap(&a[i],&a[j]);
}
/*设置p i v o t*/
a[l] = a[j];
a[j] = pivot;
QuickSort(a, l, j-1); /*对左段排序*/
QuickSort(a, j+1, r); /*对右段排序*/
}
void Huanf(int Array[][3],int n)
{
int i,j;
int a,b,m;
int tempArray1[3];
int tempArray2[3];
a=n/2;
b=a+1;
m=n%4;
switch(m)
{
case 0:
case 2:
/*穿心对调*/
for(i=0;ifor(j=0;j{
if(i{
if(i%2==1&&Array[i][j]%2==0)/*偶行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==1)/*奇行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
else
{
if(i%2==1&&Array[i][j]%2==1)/*偶行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==0)/*奇行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
}
/*End穿心对调*/
if(m==2)
{
for(i=0;i{
if((i!=0)&&(i!=a-1)&&(i!=b-1)&&(i!=n-1))
{
swap(&Array[i][a-1],&Array[n-1-i][a-1]);
swap(&Array[b-1][i],&Array[b-1][n-1-i]);
}
}
swap(&Array[0][a-1],&Array[0][b-1]);
swap(&Array[a-1][0],&Array[b-1][0]);
swap(&Array[2][0],&Array[2][n-1]);
swap(&Array[0][2],&Array[n-1][2]);
}
break;
case 1:
case 3:
/*穿心对调*/
for(i=0;ifor(j=0;j{
if(i{
if(i%2==1&&Array[i][j]%2==0) /*偶行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==0)/*奇行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
else if(i>n/2)
{
if(i%2==1&&Array[i][j]%2==0)/*偶行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==0)/*奇行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
}
/*End穿心对调*/
/*重排米字*/
for(i=0;i{
tempArray1[i]=Array[i][i];
tempArray2[i]=Array[a][i];
}
QuickSort(tempArray1,0,n-1);
QuickSort(tempArray2,0,n-1);
for(i=0;i{
Array[i][i]=tempArray2[i];
Array[a][i]=tempArray1[i];
}
for(i=0;i{
tempArray1[i]=Array[i][n-1-i];
tempArray2[i]=Array[i][a];
}
QuickSort(tempArray1,0,n-1);
QuickSort(tempArray2,0,n-1);
for(i=0;i{
Array[i][n-1-i]=tempArray2[i];
Array[i][a]=tempArray1[i];
}
/*End重排米字*/
if(m==3)
{
for(i=0;i{
if((i!=a-1)&&(i!=b-1)&&(i!=a+1))
{
swap(&Array[i][a-1],&Array[n-1-i][a-1]);
swap(&Array[a-1][i],&Array[a-1][n-1-i]);
}
}
swap(&Array[a-1][a-1],&Array[a+1][a+1]);
swap(&Array[a-1][b-1],&Array[a+1][b-1]);
}
break;
default:
break;
}
return;
}
void main()
{
int Ne[3][3];
int i,j,n;
n=3;
/*数组赋初值*/
for(i=0;ifor(j=0;jNe[i][j]=i*n+(j+1);
Huanf(Ne,n);
for(i=0;ifor(j=0;j{
printf("%-4d",Ne[i][j]);
if(j==n-1)
printf("\n\n");
}
printf("\n\n");
getch();
}
如果你想要根据输入的矩阵的列数或行数(它们当然是相等的)来输出魔方的程序,也可以给你!
#include
#include
#include
void swap(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
/*快速排序算法*/
void QuickSort(int a[], int l, int r)
{
int i=l; /*从左至右的游标*/
int j=r + 1; /*从右到左的游标*/
int pivot=a[l];
if (l >= r) return;
/*把左侧>= pivot的元素与右侧<= pivot 的元素进行交换*/
while (1)
{
do
{/*在左侧寻找>= pivot 的元素*/
i = i + 1;
} while (a[i] < pivot);
do
{/*在右侧寻找<= pivot 的元素*/
j = j - 1;
} while (a[j] > pivot);
if (i >= j) break; /*未发现交换对象*/
swap(&a[i],&a[j]);
}
/*设置p i v o t*/
a[l] = a[j];
a[j] = pivot;
QuickSort(a, l, j-1); /*对左段排序*/
QuickSort(a, j+1, r); /*对右段排序*/
}
void Huanf(int Array[][3],int n)
{
int i,j;
int a,b,m;
int tempArray1[3];
int tempArray2[3];
a=n/2;
b=a+1;
m=n%4;
switch(m)
{
case 0:
case 2:
/*穿心对调*/
for(i=0;i
if(i
if(i%2==1&&Array[i][j]%2==0)/*偶行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==1)/*奇行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
else
{
if(i%2==1&&Array[i][j]%2==1)/*偶行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==0)/*奇行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
}
/*End穿心对调*/
if(m==2)
{
for(i=0;i
if((i!=0)&&(i!=a-1)&&(i!=b-1)&&(i!=n-1))
{
swap(&Array[i][a-1],&Array[n-1-i][a-1]);
swap(&Array[b-1][i],&Array[b-1][n-1-i]);
}
}
swap(&Array[0][a-1],&Array[0][b-1]);
swap(&Array[a-1][0],&Array[b-1][0]);
swap(&Array[2][0],&Array[2][n-1]);
swap(&Array[0][2],&Array[n-1][2]);
}
break;
case 1:
case 3:
/*穿心对调*/
for(i=0;i
if(i
if(i%2==1&&Array[i][j]%2==0) /*偶行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==0)/*奇行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
else if(i>n/2)
{
if(i%2==1&&Array[i][j]%2==0)/*偶行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==0)/*奇行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
}
/*End穿心对调*/
/*重排米字*/
for(i=0;i
tempArray1[i]=Array[i][i];
tempArray2[i]=Array[a][i];
}
QuickSort(tempArray1,0,n-1);
QuickSort(tempArray2,0,n-1);
for(i=0;i
Array[i][i]=tempArray2[i];
Array[a][i]=tempArray1[i];
}
for(i=0;i
tempArray1[i]=Array[i][n-1-i];
tempArray2[i]=Array[i][a];
}
QuickSort(tempArray1,0,n-1);
QuickSort(tempArray2,0,n-1);
for(i=0;i
Array[i][n-1-i]=tempArray2[i];
Array[i][a]=tempArray1[i];
}
/*End重排米字*/
if(m==3)
{
for(i=0;i
if((i!=a-1)&&(i!=b-1)&&(i!=a+1))
{
swap(&Array[i][a-1],&Array[n-1-i][a-1]);
swap(&Array[a-1][i],&Array[a-1][n-1-i]);
}
}
swap(&Array[a-1][a-1],&Array[a+1][a+1]);
swap(&Array[a-1][b-1],&Array[a+1][b-1]);
}
break;
default:
break;
}
return;
}
void main()
{
int Ne[3][3];
int i,j,n;
n=3;
/*数组赋初值*/
for(i=0;i
Huanf(Ne,n);
for(i=0;i
printf("%-4d",Ne[i][j]);
if(j==n-1)
printf("\n\n");
}
printf("\n\n");
getch();
}
如果你想要根据输入的矩阵的列数或行数(它们当然是相等的)来输出魔方的程序,也可以给你!
看了 试编出能完成如下的操作程序1...的网友还看了以下:
使用dowhile编写java程序(1)将华氏温度转换为摄氏温度的具体公式为:C=(F-30)/2 2020-05-13 …
1.编程:统计各数字的个数.2.编程:求若干数的最小公倍数和最大公约数.3.编程:根据如下公式,求 2020-05-17 …
几道很简单的c++实习题,答的多的给分1.编写一内联函数,输出自己的学号和姓名inlinevoid 2020-05-20 …
帮忙做下下面这几道C++题,可以再追加分1.编写一内联函数,输出自己的学号和姓名inlinevoi 2020-06-06 …
设有一台计算机的指令系统共有10条指令,他们的使用频率分别为:0.19,0.12,0.10,0.1 2020-06-13 …
(2012•自贡三模)某地为上海“世博会”招募了20名志愿者,他们的编号分别是1号、2号、…、19 2020-06-21 …
设有一台计算机的指令系统共有10条指令,他们的使用频率分别为:0.19,0.12,0.10,0.1 2020-07-02 …
C++编程,详细代码作业8指针与引用1.编写函数voidsearch(int*a,intn,int* 2020-11-11 …
黄冈市为宣传红色旅游召集20名志愿者,他们的编号分别是1号、2号、…、19号、20号,若要从中任意选 2020-11-12 …
口袋中有质地、大小完全相同的5个球,编号分别为1、2、3、4、5,甲、乙两人玩一种游戏:甲先摸出一个 2021-01-20 …