c语言学习day2

1.定义一个整形数组arr,长度为5,终端输入5个数,依次存入数组中。

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int arr[4];
	int i;
	for(i=0;i<5;i++)
	{
		printf("输入的第%d数是:",i+1);
		scanf("%d",&arr[i]);
	}
	return 0;
}
结果
输入的第1数是:1
输入的第2数是:2
输入的第3数是:3
输入的第4数是:4
输入的第5数是:5

2.定义整形数组arr,长度为5,终端输入5个数,依次存入数组中,终端再输入一个数字num,判断是否存在此数组中,在的话,打印存在,不在打印不存在。

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int arr[4];
	int i,num;
	int flag;
	scanf("%d",&num);
	printf("依次输入5个数\n");
	for(i=0;i<5;i++)
	{
		flag = 0;
		scanf("%d",&arr[i]);
		if(num==arr[i])
		{
			flag = 1;
		}
	}
	if(flag == 1)
	{
		printf("存在\n");
	}
	else
	{
		printf("不存在\n");
	}

	return 0;
}
结果
7
依次输入5个数
1 2 3 5 8
不存在

3.定义整形数组arr,长度为len,终端输入len个数,依次存入数组中,求平均值、最小值、最大值、和。

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int len=0,i;
	int arr[len];
	int sum=0,mean;
	int max = 0, min = 0;
	printf("请输入len值\n");
	scanf("%d",&len);
	printf("请输入%d个值",len);
	for(i=0;i<len;i++)
	{
	
		scanf("%d",&arr[i]);//输入数组的值
	}
	max = arr[0];
	min = arr[0];
	for(i=0;i<len;i++)
	{
		if(max<=arr[i])//判断最大值
		{
			max = arr[i];
		}
		if(min>=arr[i])//判断最小值
		{
			min = arr[i];
		}
		sum = sum + arr[i];//求和
	}
	mean = sum / len;//求平均值
	printf("最大值为%d\n最小值为%d\n和为%d\n平均值为%d\n",max,min,sum,mean);
	return 0;
}
结果
请输入len值
5
请输入5个值1 2 3 4 5
最大值为5
最小值为1
和为15
平均值为3

4.有 1、2、3、4个数字,能组成多少互不相同且无重复的三位? 都是多少?

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int i,j,k;
	int arr[4]={1,2,3,4};
	int num;
	int cou=0;
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			for(k=0;k<4;k++)
			{
				num = arr[i]*100+arr[j]*10+arr[k];
				if(arr[i]==arr[j]||arr[i]==arr[k]||arr[j]==arr[k])
				{
					
				}
				else
				{
				cou = cou + 1;
				printf("%d\t",num);
				}
			}
		}
	}
	printf("\n");
	printf("一共可以组成%d个互不相同的无重复三位数,如上\n",cou);
	return 0;
}
结果
123	124	132	134	142	143	213	214	231	234	241	243	312	314	321	324	341	342	
一共可以组成18个互不相同的无重复三位数,如上

5.百钱买百鸡问题:我国古代数学家张丘建在《算经》一书中曾提出过著名的 “百钱买百鸡” 问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{//百钱买百鸡问题:我国古代数学家张丘建在《算经》一书中曾提出过著名的 “百钱买百鸡” 问题,
	//该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;
	//鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
	//一只公鸡 5钱
	//一只母鸡 3钱
	//三只小鸡 1钱   100钱买100只鸡
	int i,j,k;
	int sum=100;
	for(i=0;i<=20;i++)
	{

		for(j=0;j<=33;j++)
		{
			for(k=0;k<=100;k++)
			{
				if((sum ==i*5+3*j+k) && (i+j+3*k==sum))
				{
					printf("公鸡的数量是%d\t母鸡的数量是%d\t小鸡的数量是%d\n",i,j,k);
				
				}

			}
		}
	}
	return 0;
}
结果
公鸡的数量是0	母鸡的数量是25	小鸡的数量是25
公鸡的数量是4	母鸡的数量是18	小鸡的数量是26
公鸡的数量是8	母鸡的数量是11	小鸡的数量是27
公鸡的数量是12	母鸡的数量是4	小鸡的数量是28

6.数组的逆置。

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int i,j,k,n=0;
	int arr[n];
	int s;
	printf("请输入数组位数\n");
	scanf("%d",&n);
	printf("输入数组的值\n");
	for(i=0;i<n;i++)
	{
		scanf("%d",&arr[i]);
	}
	for(j=0;j<n/2;j++)
	{
		s = arr[n-j-1];
		arr[n-j-1] = arr[j];
		arr[j] = s;
		}
	for(k=0;k<n;k++)
	{
		printf("%d ",arr[k]);
	}
	return 0;
}
结果
1 2 3 4 5 6 7
7 6 5 4 3 2 1 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值