我是初学C语言的小朋友 这2个问题想了很久也不知道该怎么做,特向大家请教一下.
1. 建立一个数组,输入一个数,把这个数相应地插入到这个数组中.
要求: 数组是一个已经排好序的数组.
实现插入的方法要用函数实现.
2.编程将由整数构成的n(n大于等于2)阶方阵A就地顺时针方向转90度,要求不允许使用另外的矩阵作为转存的临时工作单元.
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#define N 50
void insertsort(int a[],int n,int m)
{
int i=n;
while(i>0&&a[i-1]>m)
{
a[i]=a[i-1];
i--;
}
a[i]=m;
}
int main()
{
int i,n,m,data[N];
printf("输入元素个数,不超过%d:",N);
scanf("%d",&n);
printf("输入一从小到大的%d个元素的序列:",n);
for(i=0;i<n;i++)
{
scanf("%d",&data[i]);
}
printf("输入要插入的数值:");
scanf("%d",&m);
insertsort(data,n,m);
printf("插入后的数组序列:");
for(i=0;i<=n;i++)
{
printf("%-3d",data[i]);
}
printf("\n");
return(0);
}
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#define N 3
int main()
{
int i,j,t,data[N][N];
printf("输入%d行%d列的矩阵\n",N,N);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&data[i][j]);
}
}
for(i=0;i<N;i++)/*先倒置*/
{
for(j=0;j<i;j++)
{
t=data[i][j];
data[i][j]=data[j][i];
data[j][i]=t;
}
}
for(i=0;i<N;i++)/*再列对调*/
{
for(j=0;j<N/2;j++)
{
t=data[i][j];
data[i][j]=data[i][N-1-j];
data[i][N-j-1]=t;
}
}
printf("转置后的矩阵\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%-3d",data[i][j]);
}
printf("\n");
}
return(0);
}
----------------解决方案--------------------------------------------------------
谢谢楼主 谢谢 谢谢!
----------------解决方案--------------------------------------------------------
下次要钱
----------------解决方案--------------------------------------------------------