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