7.24练习

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


详细代码:

#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
	int arr[5];
	
	printf("请输入5个数字:\n");
	
	for(int i=0;i<5;i++){
		scanf("%d",&arr[i]);
	}
	for(int i=0;i<5;i++){
		printf("%d ",arr[i]);
	}
	printf("\n");

	return 0;
}

结果:

请输入5个数字:
1 2 3 4 5
1 2 3 4 5 

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


详细代码:

#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
	int arr[5];
	int n = 0;
	int num = 0;	

	printf("请输入5个数字:\n");
	
	for(int i=0;i<5;i++){
		scanf("%d",&arr[i]);
	}
	
	printf("请输入要匹配的数:\n");
	scanf("%d",&num);

	for(int i=0;i<5;i++){
		if(num == arr[i]){
			n = 0;
		}else{
			n = 1;
		}
	}
	
	if(n == 0){
		printf("存在\n");
	}else{
		printf("不存在\n");
	}
	
	return 0;
}

结果:

请输入5个数字:
1 2 3 4 5
请输入要匹配的数:
5
存在

请输入5个数字:
1 2 3 4 5
请输入要匹配的数:
9
不存在 

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


详细代码:

#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
	int len=0;
	int arr[len];
	int sum=0;
	float everage=0.0;
	int max=0;
	int less=9999;

	//输入len大小,即为数组大小
	printf("请输入数组的大小:\n");
	scanf("%d",&len);

	//初始化数组
	for(int i=0;i<len;i++){
		printf("请输入数组的第%d个值",i+1);
		scanf("%d",&arr[i]);
	}

	//求平均值
	for(int i=0;i<len;i++){
		sum = sum+arr[i];
		everage = (float)sum/len;
	}

	//求最大值
	for(int i=0;i<len;i++){
		if(arr[i]>max){
			max = arr[i];
		}
	}

	//求最小值
	for(int i=0;i<len;i++){
		if(arr[i]<less){
			less = arr[i];
		}
	}

	printf("平均值:%.2f 最大值:%d 最小值:%d\n",everage,max,less);
	return 0;
}

结果:

请输入数组的大小:
6
请输入数组的第1个值9
请输入数组的第2个值6
请输入数组的第3个值5
请输入数组的第4个值8
请输入数组的第5个值4
请输入数组的第6个值7
平均值:6.50 最大值:9 最小值:4

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


详细代码:

#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
	int arr[4]={1,2,3,4};
	int n=0;

	for(int i=0;i<4;i++){
		for(int j=0;j<4;j++){

			if(i==j){
				continue;
			}
			for(int k=0;k<4;k++){
				if(j==k){
					continue;
				}
				if(i==k){
					continue;
				}
				printf("%d ",arr[i]*100+arr[j]*10+arr[k]);
				n++;
			}
		}
		printf("\n");

	}
	printf("一共有:%d个\n",n);

	return 0;
}

结果:

123 124 132 134 142 143 
213 214 231 234 241 243 
312 314 321 324 341 342 
412 413 421 423 431 432 
一共有:24

5.百钱买百鸡问题:

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


详细代码:

#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{

	int x,y,z;
	for(x=0;x<20;x++){
		for(y=0;y<33;y++){
			z=100-y-x;
			if((5*x+3*y+z/3)==100 && z%3==0){
				printf("公鸡:%d 母鸡:%d 小鸡:%d\n",x,y,z);
			}
				
		}
	}

	return 0;
}
    

结果:

公鸡:0 母鸡:25 小鸡:75
公鸡:4 母鸡:18 小鸡:78
公鸡:8 母鸡:11 小鸡:81
公鸡:12 母鸡:4 小鸡:84

6.数组的逆置

示例: int arr[4] = {1,2,3,4}; 输出 4 3 2 1


详细代码:

#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
	int arr[]={1,2,3,4,5,6,7,9,10,14,17,31};
	
	int len = sizeof(arr)/sizeof(int);

	int temp;
	

	for(int i=0;i<len/2;i++){
		temp = arr[i];
		arr[i] = arr[len-i-1];
		arr[len-i-1] = temp;
	}
	
	for(int i=0;i<len;i++){
		printf("%d ",arr[i]);
	}
	printf("\n");
	return 0;
}

结果:

31 17 14 10 9 7 6 5 4 3 2 1 
  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值