6.13c基础

1.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int arr[100][100];
	int i,j,n=0;
	printf("输入要打印的杨辉三角的行数:");
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		arr[i][0]=1;//第一列都是1
		for(j=0;j<=i;j++)
		{
			if(i==j)
			{
				arr[i][j]=1;//斜边都为1
			}
			if(i>=2&&j>=1)
			{
				arr[i][j]=arr[i-1][j-1]+arr[i-1][j];//上面两个相加等于下面
			}
		}
	}
		for(i=0;i<n;i++)
	{
	/*	for(j=0;j<n-1;j++)
		{
			printf("*");//打印空格
		}*/

			for(j=0;j<=i;j++)
		{
			printf("%d",arr[i][j]);
		}
	
	        printf("\n");
	}
	
	return 0;
}

2.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int n;	
	int i;
	printf("输入一个一维数组的元素个数并输入该数组:\n");
	scanf("%d",&n);
	int arr[n];
	int max1=arr[0];//最大值
	int max2=arr[0];//第二大值
	int min=arr[0];//最小值

	for(i=0;i<n;i++)
	{
		scanf("%d",&arr[i]);
	}
	max2 = max1 = min = arr[0];
    for (i = 0; i < n; i++) {
        if (arr[i] > max1) {
            max1 = arr[i];
        }
        if (arr[i] < min) {
            min = arr[i];
        }
    } 
    printf("最大值:%d\n", max1);
    printf("最小值:%d\n", min);	
		for(i=0;i<n;i++)
	{
		if(arr[i]==max1)
		continue;
		else if(max2<arr[i])
		{
			max2=arr[i];
		}
	}
	printf("第二大值为:%d\n",max2);
	printf("该数组最大和为%d\n",max1+max2);
	printf("该数字最大差为%d\n",max1-min);
	return 0;
}

3.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int n,m;	
	int i,j;
	printf("输入一个m行n列的数组,并输入该数组:\n");
	scanf("%d %d",&m,&n);
	int arr[n][m];
	int min1=arr[0][0];//最小值
	int min2=arr[0][0];//第二小值

	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		scanf("%d",&arr[i][j]);
	}
	min2 = min1 = arr[0][0];
    for (i = 0; i < m; i++) 
	{
		for(j = 0;j<n;j++)
        if (arr[i][j] < min1) {
            min1 = arr[i][j];
        }
    } 
    printf("最小值:%d\n", min1); 
	if(min1==arr[0][0])
		min2=arr[0][1];
		for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
		if(arr[i][j]==min1)
		continue;
		else if(min2>arr[i][j])
		{
			min2=arr[i][j];
		}
	}
	}
	printf("第小大值为:%d\n",min2);
	return 0;
}

 

4.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int n;	
	int i,j,k;
	int key;
	printf("输入数组的元素数:\n");
	scanf("%d",&n);
	int arr[n];	
	printf("输入数组:");
		for(i=0;i<n;i++)
	{
		scanf("%d",&arr[i]);//输入数组
	}
		printf("输入的数组为:\n");
		for(i=0;i<n;i++)
		{
			printf("%d\n",arr[i]);
		}
	printf("please enter key:\n");
	scanf("%d",&key);//输入key

	for(i=0;i<n;i++)
	{
		if(arr[i]==key)	
		{
			j+=1;
			k=i;
		}
	}
		if(j==0)
			printf("不存在key\n");
		else if(j==1)
			printf("下标为%d\n",k);
		else
			printf("key出现多次\n");

		return 0;
}

5.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int n,m;	
	int i,j;
	printf("输入一个n行m列的数组,并输入该数组:\n");
	scanf("%d %d",&n,&m);
	int arr[n][m];
		for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		scanf("%d",&arr[i][j]);//输入数组
	}
	for(i=0;i<n;i++)
	{
		int row_sum = 0;
		for(j=0;j<m;j++)
		{
			row_sum = row_sum +arr[i][j];
		}
		printf("第%d行的和为%d\n",i+1,row_sum);	
		}	
	for(j=0;j<m;j++)
	{
		int line_sum = 0;
		for(i=0;i<n;i++)
		{
			line_sum = line_sum+arr[i][j];
		}
		printf("第%d列的和为%d\n",j+1,line_sum);	
	}
	return 0;
}

6.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int m;	
	int i,j;
	printf("输入一个m行m列的数组,并输入该数组:\n");
	scanf("%d",&m);
	int arr[m][m];
		for(i=0;i<m;i++)
	{
		for(j=0;j<m;j++)
		scanf("%d",&arr[i][j]);//输入数组
	}
		int sum1=0;//反对角线的和
		int sum2=0;//正对角线的和
		for(i=0;i<m;i++)
		{
			sum1+=arr[i][i];
		}
		for(i=0;i<m;i++)
		{
			sum2+=arr[i][m-i-1];
		}
		printf("差为%d",sum2-sum1);
	return 0;
}

 

7.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	 int a[2][3];
    int b[3][2];
    int i,j;
    
    for(i = 0;i < 2; i++)
    {
        for(j = 0;j < 3; j++)
        {
            scanf("%d", &a[i][j]);//循环输入数组
        }
    }
    for(i = 0;i < 2; i++)
    {
        for(j = 0;j < 3; j++)
        {
            b[j][i] = a[i][j];//转置行列对换
        }
    }
    for(i = 0;i < 2; i++)
    {
        for(j = 0;j < 3; j++)
        {
            printf("%d ", a[i][j]);//输出数组a
        }
        printf("\n");
    }
    for(i = 0;i < 3; i++)
    {
        for(j = 0;j < 2; j++)
        {
            printf("%d ", b[i][j]);//输出转置后的数组b
        }
        printf("\n");
    }
	return 0;
}

8.

18.000000

9.

g

10.

3

11.

8

12.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值