9.5C基础作业

1、编写一个程序。输出以下形式的前五行杨辉三角图案 (石峰)

#include <stdio.h>
int main()
{
	int a,m,n;
	scanf(" %d",&a);//输入行数
	//已知行a,则列为2a-1,中位下标为(2a-1)/2==a-1
	int arr[a][2*a-1];
	//数组填充
	for(m=0;m<a;m++)//行循环
	{
		//初始化填充0
		for(n=0;n<2*a-1;n++)
		{
			arr[m][n]=0;
		}
		//外侧填充1
		arr[m][a-1-m] =1;//左
		arr[m][a-1+m] =1;//右
		for(n=1;n<=m-1;n++)
		{
			int t =a-1-m+2*n;//内部下标
			arr[m][t]=arr[m-1][t-1]+arr[m-1][t+1];
		}
	    //打印
		for(n=0;n<2*a-1;n++)
		{
			0!=arr[m][n] ? printf("%-2d ",arr[m][n])
						 : printf("  ");
		}
		putchar('\n');
	}
	return 0;
}

 结果:

 

2、编写一个程序。请用 C、JAVA、C# 任一种语言,对数组 {3, 2, 10, 1, 23, 15, 82} 进行由小到大的排序。(安在软件)

#include <stdio.h>
int main()
{
	int arr[]={3,2,10,1,23,15,82},m,n,t;
	for(m =0;m<sizeof(arr)/4;m++)
	{
		for(n =m+1;n<sizeof(arr)/4;n++)
		{
			t=0;
			arr[m]>arr[n] ? (t=arr[m],arr[m]=arr[n],arr[n]=t)
						  : (t=0);
		}
	}
	for(m=0;m<sizeof(arr)/4;m++)
	{
		printf("%d ",arr[m]);
	}
	return 0;
}

3、编写一个程序。假设你有一只刚出生的母兔,母兔第3年开始生小兔,以后每年生一只。如果生出的都是母兔,请代码实现:输入你拥有该母兔后的第几年,输出该年你拥有的兔子数。(北京信果科技)

#include <stdio.h>
int main()
{
	int n,i;
	scanf(" %d",&n);
	int arr[n];
	for(i=0;i<n;i++)
	{
		arr[i]=(i>1 ? arr[i-1]+arr[i-2] : 1);
	}
	printf("%d\n",arr[n-1]);
}

4、编写一个程序。输入两个n行m列的矩阵A和B,输出他们的和A+B(小孩哥)

#include <stdio.h>
int main()
{
	int m,n;
	printf("输入行数、列数:");
	scanf(" %d %d",&n,&m);
	int i,r, a[n][m],b[n][m],c[n][m];
	for(i=0;i<n;i++)
	{
		for(r=0;r<m;r++)
		{
			printf("输入数组数组b下标为%d %d的数据:",i,r);
			scanf(" %d %d",&a[i][r],&b[i][r]);
			c[i][r]=a[i][r]+b[i][r];
		}
	}
	for(i=0;i<n;i++)
	{
		for(r=0;r<m;r++)
		{
			printf("%d ",c[i][r]);
		}
		putchar('\n');
	}
}

5、编写一个程序。一个长度为10的数组中重复数据,现要求相同数据只保留一份,其他的用0来代替,被替换的数据移到数组末尾。(数组内容自定) (富士安全,云尖软件开发)

#include <stdio.h>
int main()
{
	int arr[10],i,n,m=0;
	for(i=0;i<10-m;i++)
	{
		top:
		//超出长度退出
		if(9<i+m) break;
		printf("请输入第%d个数据:",i+1+m);
		scanf(" %d",&arr[i]);
		//查重
		for(n=0;n<i;n++)
		{
			arr[i]=(arr[i]==arr[n] ? 0 : arr[i]);
		}
		//0移到尾部,重新获取
		if(0==arr[i])
		{
			arr[9-m]=0;
			m++;
			goto top;
		}
	}
	for(i=0;i<10;i++)
		printf("%d ",arr[i]);
	return 0;
}

 

6、【选做题】编写一个程序。给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值的那两个整数,并输出它们的数组下标。输入: nums = [3,2,4],target = 6 输出:[1,2]。(郎宁电力)

#include <stdio.h>
int main()
{
	int n,i,target;
	printf("请输入数组长度:");
	scanf(" %d",&n);
	int nums[n];
	for(i=0;i<n;i++)
	{
		printf("请输入第%d个数据:",i+1);
		scanf(" %d",&nums[i]);
	}
	printf("请输入目标值:");
	scanf(" %d",&target);
	printf("求和结果可以为:\n");
	for(n=0;n<sizeof(nums)/4-1;n++)
	{
		for(i=n+1;i<sizeof(nums)/4;i++)
		{
			if(target==nums[n]+nums[i])
				printf("[%d,%d]",n,i);
		}
	}
	printf("\n");

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值