- 计算数组中完数的个数
【完数:除本身约数和等于本身。例如6:1 23 1+2+3=6 例如:28:1+2+4+7+14=18】
在该函数【void PerfectFun(int arr[],int n) 】循环数组每一个值
在该函数【int Perfect(int num) 】 判断完数,返回约数的和
1 #include<stdio.h>
2 #include<string.h>
3 int Perfect(int num);
4 void PrefectFun(int arr[],int n)
5 {
6 int i;
7 for(i=0;i<n;i++)
8 {
9 int sum=Perfect(arr[i]);
10 if(sum==arr[i])
11 {
12 printf("%d\t",arr[i]);
13 }
14 }
15 }
16 int Perfect(int num)//num=arr[i]
17 {
18 int sum=0;
19 int i;
20 for(i=1;i<num;i++)
21 {
22 if(num%i==0)
23 {
24 sum=sum+i;
25 }
26 }
27 return sum;
28 }
29 int main(int argc, const char *argv[])
30 {
31 int arr[20];
32 int n;
33 printf("请输入数组的个数:");
34 scanf("%d",&n);
35 for(int i=0;i<n;i++)
36 {
37 scanf("%d",&arr[i]);
38 }
39 PrefectFun(arr,n);
40 return 0;
41 }
- 实现单词的逆置 “hello my student”
最终结果是”student my hello”
在该函数【void StrFun( char str[]) 】 循环字符串的
在该函数【void StrRev(char str[]) 】 主要是实现逆置的
1 #include<stdio.h>
2 #include<string.h>
3 void StrRev(char str[],int i,int j);
4 void StrFun(char str[])
5 {
6 int i=0,j=0,k;
7 while(str[i]!='\0')
8 {
9 while(str[j]!=' '&&str[j]!='\0')
10 {
11 j++;
12 }
13 k=j-1;
14 StrRev(str,i,k);
15 while(str[j]==' ')
16 {
17 j++;
18 }
19 i=j;
20 }
21 }
22 void StrRev(char str[],int i,int j)
23 {
24 char t;
25 while(i<j)
26 {
27 t=str[i];str[i]=str[j];str[j]=t;
28 i++;j--;
29 }
30
31 }
32
33 int main(int argc, const char *argv[])
34 {
35 char str[50]="";
36 printf("请输入一串字符\n");
37 gets(str);
38 StrRev(str,0,strlen(str)-1);
39 StrFun(str);
40 puts(str);
41 return 0;
42 }