XJTU第八周编程例题选

1.
判断一个整数是否为回文数。
回文数:正着读和倒着读完全相同的数。

/*
判断一个整数是否为回文数
回文数:正着读和倒着读完全相同的数
*/
#include<stdio.h>
int isPalindrome(int n);//这里是先声明这个函数,在后面具体给出这个函数;Palindrome即互文数的英文;

int main()
{
	int x;
	scanf_s("%d", &x);
	if (isPalindrome(x))//这个函数的输出值为1(真)或0(假);
		printf("YES\n");
	else
		printf("NO\n");
	return 0;
}

int isPalindrome(int n)
{
	int k, m = 0;
	k = n;
	while (k != 0)
	{
		m = m * 10 + k % 10;//先×10,再加上k÷10,可以把k的十位数和m的个位数交换;
		k = k / 10;//如果k÷10是0,则说明此时k已经降至个位数,跳出while循环;
	}
	return m == n;
}


2.
对10个整数排序(从小到大)。

/*
 n个整数排序。
*/
#include<stdio.h>
int main()
{
	int i,a[10],temp;//temp用于临时(暂时)存储;
	printf("pls intput an array within 10 elements:\n");
	for (i = 0; i < 10; i++)
		scanf_s("%d", &a[i]);
	for (i = 0; i < 10; i++)
	{
		for (int j = 0; j < 9; j++)/这里j<9是因为下面是a[i+1],避免超出容量;
		{
			if (a[j + 1] < a[j])
			{
				temp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = temp;//这里排序的方法“冒泡法Bubble”:即i的每次循环可以把一组数中最大的数换到最后的位置,i循环n次,即可完成排序;
			}
		}
	}
	for (i = 0; i < 10; i++)
		printf("%d ", a[i]);
	return 0;
}

3.
用数组来处理求Fibonacci数列问题。

/*
用数组来处理求F ibonacci数列问题。(输出数列前n项)
*/

#include<stdio.h>
int main()
{
	int fib[100] = {0,1,1};
	int n,i;
	printf("pls input the number:\n");
	scanf_s("%d", &n);
	if (n == 1)//对n=1和n=2当作两个特殊情况,使用叠加的两个if/else条件结构
		printf("0");
	else 
		if(n == 2)
		printf("0,1");
		else
		{
			for (i = 2; i < n; i++)
				fib[i] = fib[i - 1] + fib[i - 2];
			for (i = 0; i < n; i++)
				printf("%d ", fib[i]);
		}
	return 0;
}

4.
逆序输出一个数组。

/*
逆序输出一个数组。
*/
#include<stdio.h>
int main()
{
	int a[10];
	printf("pls input an array within 10 elements:\n");//数字间以空格间隔
	for (int i = 0; i < 10; i++)
		scanf_s("%d", &a[i]);
	for (int i = 9; i >= 0; i--)//一定注意这里的i最大为9,而不是10;
		printf("%d ", a[i]);
	return 0;
}

5.
输入一组数,求最大值。

/*
5.输入一组数(七个元素),求最大值。
*/

#include<stdio.h>
int main()
{
	int a[7];
	printf("pls input an array within 7 elements:\n");
	for (int i = 0; i < 7; i++)
		scanf_s("%d", &a[i]);
	int big = a[0];
	for (int i = 0; i < 7; i++)
	{
		if (big < a[i])
			big = a[i];
	}
	printf("%d\n", big);
	return 0;
}

6.
求100以内的素数。
素数:又称质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

/*
素数:又称质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
算法分析:对于一个100以内的整数,将他除以比他小的每一个数,余数是否为0,为0则给j++,
最后,取i=1的所有数,即为素数
*/

#include<stdio.h>
int main()
{
	int i, j;
	int a[100];
	for (i = 0; i < 100; i++)
		a[i] = i;
	for (i = 0; i < 100; i++)//两个for循环叠加,第一个for循环为对所有a的元素的处理;
	{
		int n = 0;
		for (j = 1; j < i; j++)//第二个for循环为对小于a[i]的元素求质数的个数,对其进行计数;
		{
			if (a[i]%j == 0)
				n++;
		}
		if (n == 1)
			printf("%d  ", a[i]);
	}
	return 0;
}

输出结果:

2  3  5  7  11  13  17  19  23  29  31  37  41  43  47  53  59  61  67  71  73  79  83  89  97

猜你喜欢

转载自blog.csdn.net/Jefferymeng/article/details/105354491