三道c语言程序设计题,求详细代码

2024-12-02 10:38:56
推荐回答(2个)
回答1:

1、#include
void main()
{
int a[3][4]={1,2,3,4,1,2,3,4,1,2,3,4},b[4][3];
int i,j;

for(i=0;i<3;i++)
for(j=0;j<4;j++)
b[j][i]=a[i][j];
printf("转置前的数组\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
printf("\n");
}

printf("转置后的数组\n");
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
printf("%d ",b[i][j]);
printf("\n");
}
}

2、#include
void main()
{
int a[20],m;
int i,j;
printf("输入10个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);

printf("输入m:");
scanf("%d",&m);

for(i=0;i<10;i++)
if(a[i]==m)
break;
if(i>=10)
printf("数据不存在!");
else
{
for(j=i;j<9;j++)
a[j]=a[j+1];

printf("删除%d后的数组:\n",m);
for(i=0;i<9;i++)
printf("%d ",a[i]);
}
}

3、#include
void main()
{
int i,j,m,temp;
int a[20];
printf("输入10个整数:\n");

for(i=0;i<10;i++)
scanf("%d",&a[i]);

for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
printf("\n排序后的数组为:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);

printf("\n输入m的值:");
scanf("%d",&m);
for(i=0;i<10&&m>a[i];i++);

if(i>=10)
a[10]=m;
else
{
for(j=10;j>i;j--)
a[j]=a[j-1];
a[i]=m;

printf("插入%d后的数组:\n",m);
for(i=0;i<11;i++)
printf("%d ",a[i]);
}
}

回答2:

第一题:
#include
#define SIZE 100
void main()
{
int arr1[3][4] = {{1,2,3,4},{1,2,3,4},{1,2,3,4}};
int arr2[SIZE][SIZE];
int m, n, i, j;
m = 3;
n = 4;
printf("转置前:\n");
for (i = 0; i != m; ++i)
{
for (j = 0; j != n; ++j)
{
printf("%d ", arr1[i][j]);
arr2[j][i] = arr1[i][j];
}
printf("\n");
}
printf("转置后:\n");
for (i = 0; i != n; ++i)
{
for (j = 0; j != m; ++j)
{
printf("%d ", arr2[i][j]);
}
printf("\n");
}
}

第二题:
#include
void main()
{
int a[10], n, i, b[10];
int j = 0;
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
printf("删除什么元素:");
scanf("%d", &n);
for (i = 0; i < 10; i++)
{
if (a[i] == n)
{
continue;
}
b[j] = a[i];
j++;
}
if (j == 10)
{
printf("不存在\n");
}
printf("新数组:\n");
for (i = 0; i < j; i++)
{
printf("%d ", b[i]);
}
}

第三题:
#include
void main()
{
int a[10], n, i, j, temp, b[11];
int nFlag = 0;
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < 10; i++)
{
for (j = i + 1; j < 10; j++)
{
if (a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("排序后:\n");
for (i = 0; i < 10; i++)
{
printf("%d ", a[i]);
}
printf("\n插入什么元素:");
scanf("%d", &n);
j = 0;
for (i = 0; i < 10; i++)
{
if (a[i] < n || nFlag == 1)
{
b[j] = a[i];
j++;
}
else
{
b[j] = n;
i--;
j++;
nFlag = 1;
}
}
printf("插入后:");
for (i = 0; i < 11; i++)
{
printf("%d ", b[i]);
}
}