【C语言网】基础题集训练详解(四)
题目目录
前言
C语言编程训练日常,用于记录自身所学,归纳总结。
本篇文章代码依旧采用的是vs2022版编译器,scanf 据编译器要求改为了scanf_s.
一、题目1024 [编程入门]矩阵对角线求和
题目:
代码详解:
#include<stdio.h>//矩阵对角线求和
int main()
{
int i, j; int a[3][3];
for (i = 0; i <= 2; i++)
for (j = 0; j <= 2; j++)
scanf_s("%d", &a[i][j]);
printf("原矩阵为:\n");
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
printf("%2d", a[i][j]);
printf("\n");
}
printf("主对角线之和:%d\n", a[0][0]+a[1][1]+a[2][2]);
printf("副对角线之和:%d", a[0][2]+a[1][1]+a[2][0]);
return 0;
}
二、题目1025 [编程入门]数组插入处理
题目:
代码详解:
#include<stdio.h>//数组插入处理
int main()
{
int a[10]; int i,n,t=-1;
printf("请升序输入9个数字:\n");
for (i = 0; i < 9; i++)
scanf_s("%d",&a[i]);
printf("请输入要插入的数:");
scanf_s("%d",&n);
for (i = 0; i < 9; i++)
if (a[i] < n) t++;
if (t + 1 == 9) a[9] = n;
else if (t + 1 >= 0 && t + 1 <= 8)
for (i = 8; i >= t+1; i--)
a[i + 1] = a[i];
a[t + 1] = n; printf("\n");
printf("插入之后的序列为:");
for (i = 0; i <=9; i++)
printf("%5d", a[i]);
return 0;
}
三、 题目1026 [编程入门]数字逆序输出
题目:
代码解析:
#include<stdio.h>//数字逆序输出
int main()
{
int a[10], i, j;
for (i = 0; i < 10; i++)
scanf_s("%d", &a[i]);
printf("逆序之后的序列为:\n");
for (j = 9; j >= 0; j--)
printf("%d ", a[j]);
return 0;
}
四、 题目1028 [编程入门]求一元二次方程实根(复数)
题目:
求b^2-4ac大于0,等于0,小于0时的根,并输出结果。
输入格式:a,b,c
输出格式:x1= ;x2= ;
代码解析:
#include <stdio.h>//求一元二次方程的实根(复数)
#include <math.h>
int main()
{
float a, b, c;
float P, Q, K, X;
printf("请输入a,b,c的值:");
scanf_s("%f %f %f", &a, &b, &c); //输入时以空格分隔
P = b * b - 4 * a * c; // ▲
Q = (-b) / (2 * a);
K = 2 * a;
X = sqrt(fabs(P)) / K;
if (P < 0) // ▲< 0 无实数根,2个共轭复根
printf("x1=%.3f+%.3fi x2=%.3f-%.3fi", Q, X, Q, X);
if (P == 0) // ▲ = 0 时,方程有两个相等的实数根
printf("x1=%.3f x2=%.3f", Q + X, Q + X);
if (P > 0) // ▲ > 0 时,方程有两个不相等的实数根
printf("x1=%.3f x2=%.3f", Q + X, Q - X);
return 0;
}
五、 题目1030 [编程入门]二维数组的转置
题目:
代码解析:
#include<stdio.h>//二维数组的转置
void fun(int a[3][3])
{
int i,j, b[3][3];
for (i = 0; i <= 2; i++)
for (j = 0; j <= 2; j++)
b[j][i] = a[i][j];
printf("转置后的矩阵为:\n");
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
printf("%3d", b[i][j]);
printf("\n");
}
return ;
}
int main()
{
int a[3][3]; int i,j;
for (i = 0; i <= 2; i++)
for (j = 0; j <= 2; j++)
scanf_s("%d",&a[i][j]);
fun(a);
return 0;
}
总结
C语言编程基础,简单运用。