杨辉三角的代码参考了这个博主的文章:
(41条消息) C语言杨辉三角代码详解(超级详细,真的不进来看看吗?)_醒醒起来学习啦的博客-CSDN博客_杨辉三角c语言程序
题目描述:还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:
输出
打印出杨辉三角图形的10
行。格式见题目描述部分。每个整数后面接一个空格来分隔开整数
#include
int main(void)
{
int data[10][10];//定义一个二维数组
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
data[i][j]=1;//该二维数组全部赋初值为1
}
}
//处理中间的数据:从第3行第2列开始,当前数=上一行的数+上一行前面的数
for(int k=1;k<10;k++){
for(int p=1;p
题目描述:输入10
个互不相同的整数并保存在数组中,找到该最大元素并删除它,输出删除后的数组
#include
int main(void)
{
/*********Begin*********/
int a[10];
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
int max=a[0],num=0;
for(int i=0;i<10;i++){//找到最大值max,num
if(a[i]>max){
max=a[i];
num=i;
}
}
for(int i=num;i<9;i++){//删除最大值a[num]
a[i]=a[i+1];
}
//输出数组
for(int i=0;i<9;i++){
printf("%d ",a[i]);
}
/*********End**********/
return 0;
}
题目描述:找出具有m
行n
列二维数组Array
的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10
。
输入
输入数据有多行,第一行有两个数m
和n
,下面有m
行,每行有n
个数。
输出
按下列格式输出鞍点: Array[i][j]=x
其中x
代表鞍点,i
和j
为鞍点所在的数组行和列下标,我们规定数组下标从0
开始。 一个二维数组并不一定存在鞍点,此时请输出None
我们保证不会出现两个鞍点的情况,比如:
#include
int main(void)
{
/*********Begin*********/
int m,n;
scanf("%d %d",&m,&n);
int a[m][n];
//输入
for(int i=0;iMAX){
MAX= a[i][j];
//printf("%d***\n",MAX);
row=i;
col=j;
}
}
//判断该数是不是同一列最小的数
int flag=0;
for(int i=0;i
题目描述:将n
个从小到大排序的整数(n<1000000
)从1~n
进行编号,并一个待查找的整数m
,请使用二分法进行查找。
输入 输入包括3
行,第一行为整数n
,第二行包括n
个整数,以空格分隔,第三行为整数m
。
输出 如果能够在序列中找到整数m
,则输出编号(如果存在多个编号,返回编号最小的),如果不存在,则输出None
。
#include
int main(void)
{
/*********Begin*********/
int m,n,t;
scanf("%d",&n);
int a[n];
for(int i=0;ia[j]){
t=a[i];
a[i] = a[j];
a[j] = t;
}
}
}
scanf("%d",&m);
int low=0;
int high=n-1;
while(1){
int mid=(low+high)/2;
if(a[mid]==m){
printf("%d",mid+1);
break;
}else if(a[mid]m){
high=mid-1;
}
if(low>high){
printf("None");
break;
}
}
return 0;
}
题目描述:按如下函数原型编程从键盘输入一个m
行n
列的二维数组,然后计算数组中元素的最大值及其所在的行列下标值。其中m
和n
的值由用户键盘输入。已知m
和n
的值都不超过10
。
输入
输入数组大小:"%d,%d"
下面输入数组中元素。
输出
输出格式: 数组大小输入提示信息:"Input m, n:"
数组元素输入提示信息:"Input %d*%d array: "
输出格式:"max=%d, row=%d, col=%d"
#include
int main(void)
{
/*********Begin*********/
int m,n,col,row;
printf("Input m, n:");
scanf("%d,%d",&m,&n);
int a[m][n];
printf("Input %d*%d array:",m,n);
for(int i=0;i=max){
max= a[i][j];
row=i+1;
col=j+1;
}
}
}
printf("\nmax=%d, row=%d, col=%d",max,row,col);
return 0;
}
题目描述:给出一个包含n
个整数的数列,问整数a
在数列中的第一次出现是第几个。
输入
第一行包含一个整数n
。 第二行包含n
个非负整数,为给定的数列,数列中的每个数都不大于10000
。 第三行包含一个整数a
,为待查找的数。
输出
如果a
在数列中出现了,输出它第一次出现的位置(位置从1
开始编号),否则输出-1
。
样例输入:
6
1 9 4 8 3 9
9
样例输出:
2
提示: 数据规模与约定。 1 <= n <= 1000
#include
int main(void)
{
/*********Begin*********/
int a[10],n,b,c=0;
scanf("%d",&n);
for(int i=0;i
本关任务:将十个数进行从大到小的顺序进行排列。
输入 输入十个整数。
输出 以从大到小的顺序输出这个十个数。
#include
int main(void)
{
/*********Begin*********/
int a[10],t;
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<10;i++){
for(int j=i+1;j<10;j++){
if(a[i]