作者:旧梦拾遗186
每日励志:
不想认命,就去拼命,我始终相信,付出就会有收获,或大或小,或迟或早,始终不会辜负你的努力。有一种落差是,你总是羡慕别人的成功,自己却不敢开始。
题目来源点击即可进入:
目录
前言:
今天小编带大家学习,C语言相关题目的练习,做题是深入了解知识的关键,千万不可骄傲自满,要保持空卑心态,虚心学习。 包括(矩阵转置,上三角矩阵判定,有序序列判断)
一.矩阵转置
1.题目:
描述
KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。
输入描述:
第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)
从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。
输出描述:
输出m行n列,为矩阵转置后的结果。每个数后面有一个空格。
2.事例:
输入:
2 3 1 2 3 4 5 6输出:
1 4 2 5 3 6
3.解析:
相当于将行和列交换
4.答案:
#include<stdio.h> int main() { int m=0; int n=0; int a[10][10]={0}; scanf("%d%d",&m,&n); for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { scanf("%d",&a[i][j]); } } for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { printf("%d ",a[j][i]); } printf("\n"); } return 0; }
5.效果:
二. 上三角矩阵判定
1.题目:
描述
KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
输入描述:
第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (1≤n≤10)
从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。
输出描述:
一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。
2.用例:
输入:
3 1 2 3 0 4 5 0 0 6输出:
YES
3.解析:
主对角线以下的元素满足条件列永远小于行,这样我们就可以通过判断元素是否为零,改变变量例如将flag=0变为flag=1,这样就可以确定对角线一下元素是否全为零了
4. 答案:
#include<stdio.h> int main() { int n=0; int a[10][10]={0}; int flag=1; scanf("%d",&n); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { scanf("%d",&a[i][j]); } } for(int i=0;i<n;i++) { for(int j=0;j<i;j++) { if(a[i][j]!=0) { flag=0; goto end; } } } end: if(flag==1) { printf("YES\n"); } else{ printf("NO"); } return 0; }
5.效果:
三.有序序列判断
1.题目:
描述
输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序(相同元素也视为有序)。
数据范围: 3 \le n \le 50 \3≤n≤50 序列中的值都满足 1 \le val \le 100 \1≤val≤100
输入描述:
第一行输入一个整数N(3≤N≤50)。
第二行输入N个整数,用空格分隔N个整数。
输出描述:
输出为一行,如果序列有序输出sorted,否则输出unsorted。
2.用例:
输入:
5 1 6 9 22 30输出:
sorted
3.解析:
可以先定义两个变量flag1,flag2,为0,再将数组遍历,若出现递增则令flag1=1,若出现递减则令flag2=1,若不变则不赋值,若最后flag1+flag2<=1则说明,数组中数字有顺序。
4.答案:
#include<stdio.h> int main() { int a[100]={0}; int n=0; int i=0; int flag1=0; int flag2=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n-1;i++) { if(a[i+1]>a[i]) { flag1=1; } else if(a[i+1]<a[i]){ flag2=1; } else { ; } } if(flag1+flag2<=1) { printf("sorted"); } else{ printf("unsorted"); } return 0; }
5.效果:
结语:
每个人的成长都是能力和想要得到的东西,不断匹配的过程,当你的才华和欲望不匹配时,你就该静下心来学习了,如果小编的总结能对你有所帮助,希望小伙伴们三连加关注哦,你的支持是小编创作的最大动力。