天天看點

【C語言網】C語言基礎題集訓練詳解(四)前言一、題目1024 [程式設計入門]矩陣對角線求和二、題目1025 [程式設計入門]數組插入處理三、 題目1026 [程式設計入門]數字逆序輸出四、 題目1028 [程式設計入門]求一進制二次方程實根(複數)五、 題目1030 [程式設計入門]二維數組的轉置總結

【C語言網】基礎題集訓練詳解(四)

題目目錄

    • 【C語言網】基礎題集訓練詳解(四)
  • 前言
  • 一、題目1024 [程式設計入門]矩陣對角線求和
  • 二、題目1025 [程式設計入門]數組插入處理
  • 三、 題目1026 [程式設計入門]數字逆序輸出
  • 四、 題目1028 [程式設計入門]求一進制二次方程實根(複數)
  • 五、 題目1030 [程式設計入門]二維數組的轉置
  • 總結

前言

C語言程式設計訓練日常,用于記錄自身所學,歸納總結。

本篇文章代碼依舊采用的是vs2022版編譯器,scanf 據編譯器要求改為了scanf_s.

一、題目1024 [程式設計入門]矩陣對角線求和

題目:

【C語言網】C語言基礎題集訓練詳解(四)前言一、題目1024 [程式設計入門]矩陣對角線求和二、題目1025 [程式設計入門]數組插入處理三、 題目1026 [程式設計入門]數字逆序輸出四、 題目1028 [程式設計入門]求一進制二次方程實根(複數)五、 題目1030 [程式設計入門]二維數組的轉置總結

代碼詳解:

#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 [程式設計入門]數組插入處理

題目:

【C語言網】C語言基礎題集訓練詳解(四)前言一、題目1024 [程式設計入門]矩陣對角線求和二、題目1025 [程式設計入門]數組插入處理三、 題目1026 [程式設計入門]數字逆序輸出四、 題目1028 [程式設計入門]求一進制二次方程實根(複數)五、 題目1030 [程式設計入門]二維數組的轉置總結

代碼詳解:

#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 [程式設計入門]數字逆序輸出

題目:

【C語言網】C語言基礎題集訓練詳解(四)前言一、題目1024 [程式設計入門]矩陣對角線求和二、題目1025 [程式設計入門]數組插入處理三、 題目1026 [程式設計入門]數字逆序輸出四、 題目1028 [程式設計入門]求一進制二次方程實根(複數)五、 題目1030 [程式設計入門]二維數組的轉置總結

代碼解析:

#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 [程式設計入門]二維數組的轉置

題目:

【C語言網】C語言基礎題集訓練詳解(四)前言一、題目1024 [程式設計入門]矩陣對角線求和二、題目1025 [程式設計入門]數組插入處理三、 題目1026 [程式設計入門]數字逆序輸出四、 題目1028 [程式設計入門]求一進制二次方程實根(複數)五、 題目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語言程式設計基礎,簡單運用。

繼續閱讀