c语言数组练习题

1)定义大小为100的整型数组, 使用随机函数给数组元素赋值。数值范围1..100, 并且排序,使用冒泡排随机函数

2)定义大小为100的整型数组,使用随机函数给数组元素赋值。数值的范围是1.. 100,并且不容许重复

(两题类似都用同一种方法,只不过第二题,进行了数字筛选)

#include
#include
#include
#define ARSIZE 100
//int FindValue(int ar[], int n, int val)
//{
//	int i = 0;
//	for (i = 0; i <= n - 1; i++)
//	{
//		if (val == ar[i])
//		{
//			return i;
//		}
//		if (val != ar[i])
//		{
//			return -1;
//		}
//	}
//}
int main()
{
	int ar[ARSIZE] = { 0 };
	int br[ARSIZE + 1] = { 0 };
	int i = 0;
	srand(unsigned int(time(NULL)));//随机种子
	while (i < ARSIZE)
	{
		int ret = rand() % 100 + 1;//伪随机数
		if (br[ret] == 0)
		{
			ar[i++] = ret;//有两个数组,都初始化为0且大小都为100,把br下标填进ar中,查表法
			br[ret] = 1;
		}
	}
	for (int i = 1; i  ar[n + 1])
			{
				int tmp = 0;
				tmp = ar[n + 1];
				ar[n + 1] = ar[n];
				ar[n] = tmp;
				flag = 0;
			}
		}	
		if (flag == 1)
			{
				break;
			}
	}
	for (i = 0; i 

3)统计字符串中每个英文字符出现的次数, 不区分大小写, 只统计英文字符。

#include
#include
#define ARSIZE 26
int main()
{
	int arr[ARSIZE] = { 0 };
	char ch;
	while ((ch = getchar()) != EOF)
	{
		if (isalpha(ch))//如果得到的字符是英文字符就进入if语句
		{
			arr[tolower(ch) - 'a'] += 1;//由于是不区分大小写,所以要用tolower将大写英文字符转换成小写英文字符
		}
	}
	for (int i = 0; i < ARSIZE; i++)
	{
		printf("%c=>%d\n", i+'a', arr[i]);
	}
	printf("\n");
	return 0;
}

4)统计字符串中每个英文字符出现的次数, 区分大小写,只统计英文字符。

#include
#include
#include
#define ARSIZE 26
int main()
{
	int arr[ARSIZE] = { 0 };
	int brr[ARSIZE] = { 0 };
	char ch;
	while ((ch = getchar()) != EOF)
	{
		if (isalpha(ch))
		{
			if (islower(ch))
			{
				arr[ch - 'a'] += 1;
			}
			if (isupper(ch))
			{
				brr[ch - 'A'] += 1;
			}
		}
	}
	for (int i = 0; i < ARSIZE; i++)
	{
		printf("%c=>%d\n", i + 'a', arr[i]);
		
	}
	for (int i = 0; i < ARSIZE; i++)
	{
		printf("%c=>%d\n", i + 'A', brr[i]);
	}
	printf("\n");
	return 0;
}

你可能感兴趣的:(1024程序员节,c语言)