1.输出10000以内所有完数
完数的概念 一个正整数的所有因子(除了自身以外的约数)的和恰巧等于它本身
#include <stdio.h>
int main()
{
int i = 0;
for (i = 2; i <= 10000; i++)//生成1到10000之间的数
{
int j = 0;
int sum = 0;//注意这里的sum每次循环结束都要重置一下
for (j = 1; j < i; j++)//每次
{
if (i % j == 0)//如果模等于0 说明该数是因子
{
sum += j;//
}
}
if (sum == i)
printf("%d ", i);
}
return 0;
}
2.水仙花数
仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身。
例如:1^3 + 5^3+ 3^3 = 153。
#include <stdio.h>
int main()
{
int a, b, c;
int i = 0;
for (i = 100; i < 1000; i++)
{
a = i % 10;
b = i / 10 % 10;
c = i / 100;
if ((a * a * a + b * b * b + c * c * c) == i)
{
printf("%d为水仙花数\n", i);
}
}
return 0;
}
3.循环右移
#include <stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5 };
int k = arr[4];//把最后一位存储到一个变量中
int i = 0;
for (i = 4; i >=1; i--)
{
arr[i] = arr[i - 1];//每次后一位等于前一位的值
}
arr[0] = k;//把最后一位放到第一位中
for (i = 0; i < 5; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
4.数组的逆置
#include <stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int i, j, t;
for (i = 0,j = 9; i < j; i++, j--)
{
t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
5.字符串的逆置
#include <stdio.h>
#include <string.h>
int main()
{
char s[] = "helloworld";
int len = strlen(s);
char* p, * q;
char ch;
p = s;
q = s + len-1;
while (p < q)
{
ch = *p;
*p = *q;
*q = ch;
p++;
q--;
}
puts(s);
return 0;
}
6.删除字符串中的字符
#include <stdio.h>
#include <string.h>
int main()
{
char arr[] = "abcccbbaac";
char ch;
printf("请输入你要删除的字符\n");
scanf("%c", &ch);
int len = strlen(arr);//求字符串长度
int i, j = 0;
for (i = 0; i < len; i++)
{
if (arr[i] == ch)
continue;//如果为要删除字符,跳过继续循环
else
{
arr[j] = arr[i];// 如果不是要删除的字符,字符向前覆盖
j++;
}
}
arr[j] = '\0';//循环结束 最后一个为字符串的\0
printf("%s\n", arr);
//for (i = 0; arr[i] != '\0'; i++)
//{
// printf("%c", arr[i]);
//}
return 0;
}
感谢大家能看到最后, 如果有不足的地方多多指出,会持续更新的!码字不易,求三连
标签:arr,include,int,节选,ch,++,源码,printf,例题 From: https://blog.csdn.net/z0108_999/article/details/139303153