c语言:数组编程题(掌握数组!!!)

第一题:从10个数中找出最大值和最小值。

#include 
#include 
#define N 10
int main()
{
	int i,max,min,a[N];
	printf("\nplease input ten number:\n");
	for(i=0;ia[i])
		  min=a[i];
	}
	printf("max=%d\n",max);
	printf("min=%d\n",min);
	return 0;
}

c语言:数组编程题(掌握数组!!!)_第1张图片

第二题:给定一个包含10个有序整数的数组{6,13,17,29,33,48,59,61,73,98},折半查找x是否在数

组中,若找到,输出其数组下标,若找不到,输出“No Found”。

#include 
#include 
#define N 10
int main()
{
	int i,a[N]={6,13,17,29,33,48,59,61,73,98};
	int low=0,mid,high=N-1,x;      /*定义三个整型变量low、mid、high,分别表示数组的最小下 
                                     标、中间下标和最大下标*/
	printf("x=");
	scanf("%d",&x);
	while(low<=high)               //4.进入while循环,当low<=high时执行循环体。
	{
		mid=(low+high)/2;           //计算mid=(low+high)/2,即取数组中间位置的下标。
		if(x==a[mid])               //如果x等于a[mid],则输出查找结果并退出循环。
		{
			printf("\na[%d]=%d\n",mid,x);
			break;
		}
		else if(x>a[mid])       //如果x大于a[mid],则元素在mid的右侧,将low更新为mid+1。
		    low=mid+1;
		else high=mid-1;      //8.如果x小于a[mid],则元素在mid的左侧,将high更新为mid-1。
	}
	if(low>high)                //9.如果循环结束后仍未找到元素,则输出未找到的提示信息。
	printf("\nNo found\n");
	return 0;
}

c语言:数组编程题(掌握数组!!!)_第2张图片

c语言:数组编程题(掌握数组!!!)_第3张图片

第三题:随机生成10个0至100之间的整数,输出这10个随机整数。然后对这些整数从小到大升序

排列后输出。排序算法不限。

#include 
#include 
#include 
#define N 10
int main()
{
	int i,j,t,a[N];
	unsigned int x;
	x=(unsigned int)time(NULL);
	srand(x);
	for(i=0;ia[j])
		{
			t=a[i];
			a[i]=a[j];
			a[j]=t;
		}
	}
	printf("\nAfter Sort:");
	for(i=0;i

c语言:数组编程题(掌握数组!!!)_第4张图片

第四题:随机生成10个0至100之间的整数,输出这10个随机整数。然后对这些整数从小到大升序

排列后输出。排序算法不限。

#include 
#include 
#include
#define N 15
int main()
{
	int i,j,t,a[N];
	int b[N],c[N],nb=0;
	unsigned int x;
	x=(unsigned int)time(NULL);
	srand(x);             //随机生成数
	for(i=0;ic[j+1])
		{
		t=c[j];
		c[j]=c[j+1];
		c[j+1]=t;
		}
	}
	printf("\nc:");
	for(i=0;i

c语言:数组编程题(掌握数组!!!)_第5张图片

第五题:有17个人围成一圈(编号为0~16),从第0号的人开始从1报数,凡报到3的倍数的人离

开圈子,然后再数下去,直到最后只剩一个人为止。编程求此人原来的编号是多少号。

#include 
int main()
{
	int i,k=0,count=0,a[17];
	for(i=0;i<17;i++)
	    a[i]=i+1;      //从第0号的人开始从1报数
	for(i=0;i<17;i++)
	{
		if(a[i])
		{
			k++;
		if(k==3)
			{a[i]=0;
			k=0;
			count++;
			}
	    }
		if(count==16)break;
		if(i==16)
		   i=-1;
		
	}
		for(i=0;i<17;i++)
		if(a[i])
		printf("\n%d",i);
		return 0;	    
}


c语言:数组编程题(掌握数组!!!)_第6张图片

第六题:编写一个程序,其功能是自动统计从键盘输入的字符串中非元音字母的个数并将这些非元

音字母输出。例如,输入Hello,everyone!,则输出Hll,vryn! count=9

#include 
int main()
{
	char a[100];
	int i,count=0;
	gets(a);           //输入Hello,everyone!
	for(i=0;a[i];i++)
	switch(a[i])       //对字符进行筛选元音字母不要
	{
		case 'a':
		case 'e':
		case 'i':
		case 'o':
		case 'u':
		case 'A':
		case 'E':
		case 'I':
		case 'O':
		case 'U':break;
		default:putchar(a[i]);
		count++;
	}
	printf("\ncount=%d",count);
	return 0;
}

c语言:数组编程题(掌握数组!!!)_第7张图片

第七题:从键盘输入一个包含多个单词的字符串,将单词首字母转换为大写后输出。

#include 
int main()
{
	int i,flag=1;
	char a[100];
	gets(a);
	for(i=0;a[i];i++)
	{
		if(a[i]==3)
		  flag=1;
		if(flag&&a[i]!=32)
		{
			if(a[i]>='a'&&a[i]<='z')
			a[i]-=32;
			flag=0;
		}
	}
	puts(a);
    return 0;
}

c语言:数组编程题(掌握数组!!!)_第8张图片

你可能感兴趣的:(c语言,算法,数据结构)