C语言数组练习题目

C语言数组练习题目

1、编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。

#include<stdio.h>
main()
{
	int a[10],i,j=0,k=0,l=0;
	printf("请输入10个整数:");
	for(i=0;i<10;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<10;i++)
	{
		if(a[i]>0)
		++j;
		else if(a[i]==0)
		++k;
		else
		++l;
	}
	printf("正数:%d,零:%d,负数:%d",j,k,l);
}

2、编写程序,输入10个整数存入一维数组,再按逆序重新存放后再输出

#include<stdio.h>
main()
{
	int i,a[10];
	for(i=0;i<=9;i++)
	scanf("%d",&a[i]);
	for(i=9;i>=0;i--)
	printf("%d ",a[i]);
}

3、输入10个整数,求出它们的和以及平均值并输出。

#include<stdio.h>
main()
{
	int i;
	float a[10],sum=0;
	printf("请输入10个整数:");
	for(i=0;i<=10;i++)
	{
		scanf("%f",&a[i]);
		sum=sum+a[i];
	}
	printf("和:%.0f,平均值:%f",sum,sum/10);
}

4、输入10个数,求出最大的数及其下标,以及最小的数及其下标

#include<stdio.h>
main()
{
	int a[10],i,max,i_max,min,i_min;
	scanf("%d",&a[0]);
	max=a[0];
	i_max=0;
	min=a[0];
	i_min=0;
	for(i=1;i<10;i++)
	{
		scanf("%d",&a[i]);
		if(a[i]>max)
		{
			max=a[i];
			i_max=i;
		}
		else if(a[i]<min)
		{
			min=a[i];
			i_min=i;
		}
	}
	printf("最大值=%d,下标=%d\n",max,i_max);
	printf("最小值=%d,下标=%d\n",min,i_min);
}

#由于编者水平有限,编写时间短促,难免存在不妥之处,敬请大家评判指正

<think>好的,我现在需要处理用户关于C语言数组编程练习题的请求。首先,用户明确表示想查找相关的编程题或练习,且提供了三个引用作为参考。我需要仔细分析这些引用的内容,看看如何从中提取合适的题或者根据这些内容生成新的题。 首先,引用[1]提到了三个数练习题,包括数组元素逆序排列,但没有具体代码。引用[2]提供了一个对十个数字进行排序的示例,使用的是冒泡排序算法。引用[3]则是关于二维数组的输出,使用双重循环逐个输出元素。用户的当前问题是想获得更多的C语言数组练习题,因此我需要结合这些引用中的例子,生成更多类似的题,同时确保覆盖不同的数组操作类型。 接下来,我需要考虑用户可能的水平。题需要从基础到稍微复杂一些,涵盖一维数组、二维数组、常见算法如排序、查找、逆序等。同时,用户提供的引用中有排序和二维数组的例子,所以我可能需要补充其他类型的题,比如数组的查找、统计、合等操作。 然后,我需要确保每个题都有明确的描述,可能包括输入输出示例,或者具体的功能要求。例如,引用[2]中的题要求输入十个整数排序,而引用[3]则是输出二维数组。因此,新生成的题也应该有类似的具体要求,便于用户练习。 另外,要注意题的多样性。除了排序和输出,还可以考虑插入元素、删除元素、数组的旋转、求最大值/最小值、计算平均值、统计特定元素出现次数等。这些操作都是数组处理中的常见任务,适合作为练习题。 同时,我需要参考用户提供的引用结构,比如在引用[1]中提到的三个题,可能用户希望每个题都有一定的挑战性但不过于困难。因此,生成的题应该分层次,从基础开始,逐步增加难度。 现在,我需要检查是否有重复或类似的题。例如,引用[2]已经有一个排序题,所以新题中可以包含其他排序方法,如选择排序,或者更复杂的操作。引用[3]是关于二维数组的输出,可以扩展到二维数组的其他操作,如矩阵转置、行列求和等。 最后,确保生成的题符合C语言的语法和常见实践,比如数组的声明、循环结构的使用、输入输出函数等。题应鼓励用户练习这些基本技能,巩固对数组的理解和应用。 总结一下,我需要生成至少五个不同但相关的C语言数组编程练习题,涵盖一维和二维数组,包括排序、查找、统计、修改等操作,确保题描述清晰,有明确的输入输出要求,参考用户提供的引用中的结构,保持一致性。</think>以下是根据C语言数组知识点设计的5个经典编程练习题,包含一维数组和二维数组的常见操作: ### 一维数组练习题 1. **数组元素逆序存储** ```c // 要求:输入10个整数存入数组,逆序存储后输出 // 示例输入:1 2 3 4 5 6 7 8 9 0 // 示例输出:0 9 8 7 6 5 4 3 2 1 ``` 实现思路:使用双指针法,首尾元素交换直到中间位置[^1] 2. **数组最值查找** ```c // 要求:输入n个学生成绩,找出最高分和最低分 // 扩展:统计高于平均分的人数 ``` 涉及知识点:数组遍历、条件判断 ### 二维数组练习题 3. **矩阵转置** ```c // 要求:实现3x4矩阵的转置(行列交换) // 原始矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 // 转置后: 1 5 9 2 6 10 3 7 11 4 8 12 ``` 实现要点:双重循环控制行列交换[^3] ### 算法应用练习 4. **冒泡排序优化** ```c // 要求:在基础冒泡排序上增加以下优化: // 1. 记录交换位置提前结束排序 // 2. 添加有序判断标志位 ``` 参考代码框架: ```c for(j=0; j<9; j++) { int flag = 1; for(i=0; i<9-j; i++) { if(a[i]>a[i+1]) { // 交换代码... flag = 0; } } if(flag) break; } ``` [^2] ### 综合应用题 5. **学生成绩管理系统** ```c // 要求: // 1. 存储5个学生的3门课成绩 // 2. 计算每个学生的总分 // 3. 按总分排序输出 // 4. 查找指定学生的成绩 ``` 涉及知识点:二维数组、排序算法、查找算法
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值