【C语言网】C语言基础题集训练详解(四)

【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语言编程基础,简单运用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值