#include <stdio.h>
 void gcd(int, int); //函数声明
 int main()
 {
     int a, b;
     printf("请输入两个正整数\n");
     scanf("%d%d", &a, &b);
     gcd(a, b);
 }
 void gcd(int c, int d)  //定义求解函数
 {
     if (c % d == 0)
         printf("这两个数最大公约数为%d\n", d);
     else
         gcd(d, c % d);   //调用自身
 }

/*
 求(1/1-1/3+1/5-1/7+1/9)*4     对应此程序,求解的分数项为5
 */
 #include <stdio.h>
 #include <math.h>
 float sum (int); //函数声明
 int main()
 {
     int a;
     printf("请输入求解的分数项的项数\n");
     scanf("%d", &a);
     printf("此时的值为%f\n",sum(a));  
 }
 float sum(int a)  //定义求解函数
 {
 int i=0;  //定义循环控制变量
 int n=0; //定义分母
 float sum=0; //定义总和
 for(;i<a;i++)
 {
 n=2*i+1;
 sum=pow(-1,i)*1.0/n + sum;  //累加求和
 }
 return 4*sum;
 }

/*
 求2/1+3/2*******此处代码应该输入20
 分子分母都是前两个相加得到后一个
 */
 #include <stdio.h>
 float sum(int); //定义求解函数
 int main()
 {
     int m;
     printf("请输入求解的分数项的总项数\n");
     scanf("%d", &m);
     printf("此时的值为%.5f\n", sum(m)); //保留五位小数输出
 }
 float sum(int k)
 {
     int a[k];
     a[0] = 1;
     a[1] = 2; //定义初始的两个分母
     int b[k];
     b[0] = 2;
     b[1] = 3; //定义初始的两个分子
     int i = 2;
     for (; i < k; i++) //每一个分子分母初始值定义
     {
         a[i] = a[i - 1] + a[i - 2]; // printf("a[%d]=%d\n", i,a[i]);
         b[i] = b[i - 1] + b[i - 2]; // printf("b[%d]=%d\n",i, b[i]);
     }
     float sum = 0;
     int j;
     for (j = 0; j < k; j++)
     {
         sum = 1.0 * b[j] / a[j] + sum; //多次测试,此处需要乘上1.0将每一个分数的精确值取出,否则为整数,计算结果不对
     }
     return sum;
 } 
 
/*
 求100-200之间所有素数,每行打印输出5个   本题输入100 200
 */
 #include <stdio.h>
 void sushu(int, int);
 void sushu(int a, int b)
 {
     int i, j, k = 1;  //上下限i,j,格式控制k
     for (i = a; i <= b; i++)
     {
         for (j = 2; j < i; j++)
         {
             if (i % j == 0)
                 break; //被整除,不是素数,跳出当前循环
         }
         if (j >= i)  //找出在范围内的素数输出
         {
             printf("%d\t", i);
             k = k + 1;
             if (k == 6)   //控制输出格式
             {
                 k = 1;
                 printf("\n");
             }
         }
     }
 }
 int main()
 {
     int a, b;
     printf("请输入查找数据的范围\n");
     scanf("%d%d", &a, &b);
     printf("所查找数据范围的输出如下\n");
     sushu(a, b);
 } 

 #include<stdio.h>
 #include<string.h>
 int main(void)
 {
     char string[80];
     int i, count = 0, flag = 0;//flag为单词标记
     char c;
     printf("请输入单词: ");
     gets(string);  //读入一串字符串
     for(i=0; (c = string[i]) != '\0'; i++)
     {
         if(c == ' ') flag = 0; //如果当前字符是空格,则使flag为0
         else if(flag == 0)
         {
             flag = 1;
             count++;//单词数
         }
     }
     printf("总共有%d个单词\n",count);
     return 0;
 }

 #include <stdio.h>
 void two(int);
 void eight(int);
 void sixteen(int );
 void two(int n)
 {
     static int a[32];
     int i = 0;
     int j = 0;
     for (; i < 32; i++)
     {
         a[i] = n % 2;
         n = n / 2;
     }
     printf("转换为二进制为: ");
     for (i = 31; i >= 0; i--)
     {
         printf("%d", a[i]);
         j++;
         if (j == 4)
         {
             printf(" ");
             j = 0;
         }
     }
     printf("(B)");
     printf("\n");
 }
 void eight(int n)
 {
     int a[16];
     int i = 0;
     int j = 0;
     for (; i < 16; i++)
     {
         a[i] = n % 8;
         n = n / 8;
     }
     printf("转换为八进制为: ");
     for (i = 15; i >= 0; i--)
     {
         printf("%d", a[i]);
         j++;
         if (j == 4)
         {
             printf(" ");
             j = 0;
         }
     }
     printf("(O)");
     printf("\n");
 }
 void sixteen(int n)
 {
     char a[8];
     int k = 0;
     int i = 0;
     int j = 0; // switch 语句标志
     for (; i < 8; i++)
     {
         j = a[i] = n % 16;
         n = n / 16;
         switch (j)
         {
         case 10:
             a[i] = 'A';
             break;
         case 11:
             a[i] = 'B';
             break;
         case 12:
             a[i] = 'C';
             break;
         case 13:
             a[i] = 'D';
             break;
         case 14:
             a[i] = 'E';
             break;
         case 15:
             a[i] = 'F';
             break;
         default:;
             break;
         }
     }
     printf("转换为十六进制为: ");
     for (i = 7; i >= 0; i--)
     {
         if (a[i] >= 'A' && a[i] <= 'F')
             printf("%c", a[i]);
         else
             printf("%d", a[i]);
         k++;
         if (k == 4)
         {
             printf(" ");
             k = 0;
         }
     }
     printf("(H)");
     printf("\n");
 }
 int main()
 {
     printf("请输入要转换的正整数: ");
     int a;
     scanf("%d", &a);
     if (a > 0)
     {
         two(a);
         eight(a);
         sixteen(a);
     }
     else
         printf("请重新运行,输入要转换的正整数: ");
 }
![]()
#include <stdio.h>
 #include <string.h> //字符串操作库: puts(1)显示输出字符1,strcpy(1,2)复制字符2到1中,strcat(1,2)将字符串2与1连接之后存到1,要求1的空间比2大
 int main()
 {
     char string1[160]="你的电话号:"; //定义空间较大的字符串1
     printf("字符串1为: ");puts(string1);
     char string2[80]; //定义空间较小的字符串2
     printf("请输入字符串2: ");
     gets(string2);  //读入一串字符串
     printf("字符串2为: ");puts(string2);
     strcat (string1,string2);printf("连接字符串1和字符串2: ");puts(string1);
     strcpy (string2,string1); //由于上一步已经将字符串2和字符串1连接,此时再将字符串1复制到字符串2中,则字符串2为刚刚输出的字符串1
     printf("复制字符串1到字符串2后字符串2为: ");puts(string2);
 }
 
 #include<stdio.h>
 int main()
 {
     int arr[10];                  /*定义一个数组*/
     int i,j;                      /*i,j为将要使用的循环控制变量*/
     int temp;                     /*temp为数值交换时使用的临时变量*/
     for(i=0;i<=9;i++)             /*输入10个数*/
     {   
         printf("请输入第%d个数: ",i+1);
         scanf("%d",&arr[i]);
     }
     for(i=1;i<=10-1;i++)          /*i代表排序轮数,总轮数=元素个数-1*/
     {
         for(j=0;j<10-i;j++)       /*j代表每轮排序次数,次数=个数-轮数-1,但j初值为0*/
         {
             if(arr[j]>arr[j+1])   /*如果前一项比后一项大,则两项的值互换*/
             {
                 temp=arr[j];
                 arr[j]=arr[j+1];
                 arr[j+1]=temp;
             }
         }
     }
     printf("排序后的数组:");
     for(i=0;i<=9;i++)             /*输出排序后的数组*/
     {
         printf("%d ",arr[i]);
     }
     return 0;
 } 
#include <stdio.h>
 void test(void);//定义求解函数
 int main()
 {
     test();
 }
 void test(void)
 {
     printf("请输入一个在2-1290之间的整数\n");//本人电脑为64位,可以正确计算的数据范围最大到1290.
     int a;
     scanf("%d", &a);
     int c = a / 2; //奇数中间数,定位点
     int b[a];
     if (a % 2 != 0) // a如果为奇,那么对应的连续的奇数最中间一个就是a*a
     {
         int i = 0;
         b[c] = a * a;
         for (i = c; i >= 0; i--)
         {
             b[c - i] = a * a - 2 * i;
         }
         for (i = 0; i <= c; i++)
         {
             b[c + i] = a * a + 2 * i;
         }
     }
     else // a如果为偶数,那么对应的连续的奇数最中间一个就是a*a+1
     {
         int i = 0;
         b[c] = a * a + 1; //中间值
         for (i = c; i >= 0; i--)
         {
             b[c - i] = a * a + 1 - 2 * i;
         }
         for (i = 0; i <= c; i++)
         {
             b[c + i] = a * a + 1 + 2 * i;
         }
     }
     int i = 0;
     int test1 = a * a * a; // test1存放输入数据的立方值
     int test2 = 0;           // test2存放连续奇数的总和
     printf("连续的奇数分别为:");
     for (i = 0; i < a; i++)
     {
         printf("%d ", b[i]); //打印输出这一连串的奇数
         test2 = b[i] + test2;//求和这一连串的奇数
     }
     printf("\n");
     printf("立方和为%d,连续奇数和为%d\n", test1, test2);
     //验证数据
     if (test1 == test2)
         printf("数据验算成功,满足要求\n");
     else
     printf("程序错误\n");
 }









