C语言代码编程200个例题(上)2

简介: C语言代码编程200个例题(上)

25.

#include "stdafx.h"
#include "stdio.h"
#include<math.h>
int main()
{
    double y;
    int x, m;
    for (y = 1; y >=  - 1; y -= 0.1)            /*0到π,π到2π分别绘制21个点*/
    {
        m = acos(y) *10;              /*求出对应的横坐标位置*/
        for (x = 1; x < m; x++)
            printf(" ");              /*画*前画空格数*/
        printf("*");                /*画**/
        for (; x < 62-m; x++)           /*画出对称面的**/
            printf(" ");
        printf("*\n");
    }
    getchar();
    return 0;
}

26.

#include "stdafx.h"
#include "stdio.h"
main()
{
  int a, b, c, x, sum;
  for (x = 1; x <= 5; x++)                  /*x的取值范围从1到5*/
  {
    if (10605 % (28-5 * x) == 0)              /*满足条件的x值即为所求*/
    {
      sum = 10605 / (28-5 * x);           /*计算出邮票总数*/
      a = 2 * sum / 10;               /*计算a集邮册中的邮票数*/
      b = 5 * sum / 7;                /*计算b集邮册中的邮票数*/
      c = 303;                    /*c集邮册中的有票数*/
      printf("total is %d\n", sum);           /*输出邮票的总数*/
      printf("A:%d\n", a);              /*输出A集邮册中的邮票数*/
      printf("B:%d\n", b);              /*输出B集邮册中的邮票数*/
      printf("C:%d\n", c);                /*输出C集邮册中的邮票数*/
    }
  }
}

27.

#include "stdafx.h"
#include "stdio.h"
main()
{
  int i, j, count;
  puts("the result is:\n");
  printf("time  red ball  white ball  black ball\n");
  count = 1;
  for (i = 0; i <= 3; i++)                    /*红球数量范围0到3之间*/
  {
    for (j = 0; j <= 3; j++)                  /*白球的数量范围0到3之间*/
    {
      if ((8-i - j) <= 6)                   /*判断要取黑色球的数量是否在6个以内*/
        printf("%3d%8d%9d%10d\n", count++, i, j, 8-i - j);  /*输出各种颜色球的数量*/
    }
  }
  return 0;
}

28.

#include "stdafx.h"
#include "stdio.h"
main()
{
  int n = 1, m, sum, i;                 /*定义变量为基本整形*/
  while (1)
  {
    m = n;                    /*m存储一楼灯的数量*/
    sum = 0;
    for (i = 1; i < 8; i++)
    {
      m = m * 2;                /*每层楼灯的数量是上一层的2倍*/
      sum += m;                 /*计算出除一楼外灯的总数*/
    }
    sum += n;                   /*加上一楼灯的数量*/
    if (sum == 765)               /*判断灯的总数量是否达到765*/
    {
      printf("the first floor has %d\n", n);      /*输出一楼灯的数量*/
      printf("the eight floor has %d\n", m);      /*输出八楼灯的数量*/
      break;                  /*跳出循环*/
    }
    n++;                    /*灯的数量加1,继续下次循环*/
  }
  return 0;
}

29.

#include "stdafx.h"
#include "stdio.h"
#include <math.h>
#include <stdlib.h>
main()
{
  int i, j, n = 0;                    /*定义变量为基本整型*/
  system("cls");
  printf("10-100之间的素数:\n");
  for (i = 10; i <= 100; i++)
  {
    for (j = 2; j <= sqrt(i); j++)
    {
      if (i % j == 0)               /*判断是否能被整除*/
        break;                /*如果能被整除,就不需要接着判断,跳出循环*/
      else
      {
        if (j > sqrt(i) - 1) 
        {
          printf("%d,", i);
          n++;                /*记录次数*/
          if (n % 5 == 0)           /*5个一换行*/
            printf("\n");
        }
        else
          continue;
      }
    }
  }
  printf("\n");
}

30.

#include "stdafx.h"
#include "stdio.h"
main()
{
  int i;                          /*定义基本整型变量i*/
  for (i = 100; i < 1000; i++)                /*for循环求一百到一千内的所有三位数*/
    /*根据题意写出对应的条件*/
    if (i % 2 == 1 && i % 3 == 2 && i % 5 == 4 && i % 6 == 5 && i % 7 == 0)
      printf("the number of the stairs is %d\n", i);    /*输出阶梯数*/
  return 0;
}

31.

#include "stdafx.h"
#include "stdio.h"
void main()
{
  int i;                        /*定义整型变量*/
  float total=0;                    /*定义实型变量,并初始化*/
  for(i=0;i<5;i++)                  /*循环*/
    total=(total+1000)/(1+0.025);           /*累计存款额*/
  printf("must save %5.2f at first. \n",total);       /*输出存款额*/
}

32.

#include "stdafx.h"
#include "stdio.h"
int main()
{
  char cString[100];                  /*定义保存字符串的数组*/
  int iIndex, iWord=1;                /*iWord表示单词的个数*/
  char cBlank;                    /*表示空格*/
  gets(cString);                    /*输入字符串*/
  if(cString[0]=='\0')                  /*判断如果字符串为空的情况*/
  {
    printf("There is no char!\n");
  }
  else if(cString[0]==' ')                /*判断第一个字符为空格的情况*/
  {
    printf("First char just is a blank!\n");
  }
  else
  {
    for(iIndex=0;cString[iIndex]!='\0';iIndex++)    /*循环判断每一个字符*/
    {
      cBlank=cString[iIndex];           /*得到数组中的字符元素*/
      if(cBlank==' ')               /*判断是不是空格*/
      {
        iWord++;                /*如果是则加1*/
      }
    }
    printf("%d\n",iWord);
  }
}

33.

#include "stdafx.h"
#include "stdio.h"
main()
{
  int i, v0 = 0, v1 = 0, v2 = 0, v3 = 0, n, a[50];
  printf("please input the number of electorate:\n");
  scanf("%d", &n);                      /*输入参加选举的人数*/
  printf("please input 1or2or3\n");
  for (i = 0; i < n; i++)
  {
    scanf("%d", &a[i]);                   /*输入每个人所选的人*/
  }
  for (i = 0; i < n; i++)
  {
    if (a[i] == 1)
    {
      v1++;                     /*统计1号候选人的票数*/
    }
    else if (a[i] == 2)
    {
      v2++;                     /*统计2号候选人的票数*/
    }
    else if (a[i] == 3)
    {
      v3++;                     /*统计三号候选人的票数*/
    }
    else
    {
      v0++;                     /*统计无效票数*/
    }
  }
  printf("The Result:\n");
  printf("candidate1:%d\ncandidate2:%d\ncandidate3:%d\nonuser:%d\n",v1,v2,v3,v0);   /*将统计的结果输出*/
  return 0;
}

34.

#include "stdafx.h"
#include "stdio.h"
#define MAX 50                        /*定义MAX为常量50*/
main()
{
  int i,num;                          /*定义变量i,num为基本整型*/
  int Chinese[MAX],Math[MAX],English[MAX];        /*定义数组为基本整型*/
  long StudentID[MAX];                    /*定义StudentID为长整形*/
  float average[MAX];
  printf("please input the number of students");
  scanf("%d",&num);                   /*输入学生数*/
  printf("Please input a StudentID and three scores:\n");
  printf("    StudentID  Chinese  Math    English\n");
  for( i=0; i<num; i++ )                    /*根据输入的学生数量控制循环次数*/
  {
    printf("No.%d>",i+1);
    scanf("%ld%d%d%d",&StudentID[i],&Chinese[i],&Math[i],&English[i]);
    /*依次输入学号及语文,数学,英语成绩*/
    average[i] = (float)(Chinese[i]+Math[i]+English[i])/3;    /*计算出平均成绩*/
  }
  puts("\nStudentNum    Chinese   Math   English  Average");
  for( i=0; i<num; i++ )                    /*for循环将每个学生的成绩信息输出*/
  {
    printf("%8ld %8d %8d %8d %8.2f\n",StudentID[i],Chinese[i],Math[i],English[i],average[i]);
  }
  return 0;
}

35.

#include "stdafx.h"
#include "stdio.h"
#include <string.h>
main()
{
  int i, j = 1, n;
  float a[100], b[100], sum = 0;
  printf("\nEnter the number of players:\n");
  scanf("%d", &n);                    /*从键盘中输入选手的人数*/
  for (i = 1; i <= n; i++)
  {
    printf("now player %d\n", i);
    printf("please input score:\n");
    for (; j < 5 *n + 1; j++)
    {
      scanf("%f", &a[j]);               /*输入5个裁判每个裁判所给的分数*/
      sum += a[j];                  /*求出总份数*/
      if (j % 5 == 0)                 /*一位选手有5个裁判给打分*/
      {
        break;
      }
    }
    b[i] = sum;                     /*将每个选手的总分存到数组b中*/
    sum = 0;                    /*将总分重新置0*/
    j++;                      /*j自加*/
  }
  j = 1;
  printf("player     judgeA  judgeB  judgeC  judgeD  judgeE  total\n");
  for (i = 1; i <= n; i++)
  {
    printf("player %d", i);                 /*输出几号选手*/
    for (; j < 5 *n + 1; j++)
    {
      printf("%8.1f", a[j]);              /*输出裁判给每个选手对应的分数*/
      if (j % 5 == 0)
      {
        break;
      }
    }
    printf("%8.1f\n", b[i]);                /*输出每个选手所得的总成绩*/
    j++;
  }
  return 0;
}

36.

#include "stdafx.h"
#include <string.h>
main()
{
  int i,j,x=1,y=3,a[6][6]={0};        /*因为数组下标要用1到5,所以数组长度是6*/
  for(i=1;i<=25;i++)
  {
    a[x][y] =i;             /*将1到25所有数存到存到数组相应位置*/
    if(x==1&&y==5)
    {
      x=x+1;              /*当上一个数是第1行第五列时,下一个数放在它的下一行*/
      continue;             /*结束本次循环*/
    }
    if(x==1)              /*当上一个数是是第1行时,则下一个数行数是5*/
      x=5;
    else
      x--;                /*否则行数减1*/
    if(y==5)              /*当上一个数列数是第5列时,则下一个数列数是1*/
      y=1;
    else
      y++;              /*否则列数加1*/
    if(a[x][y]!=0)            /*判断经过上面步骤确定的位置上是否有非零数*/
    {
      x=x+2;              /*表达式为真则行数加2列数减1*/
      y=y-1;
    }
  }
  for(i=1;i<=5;i++)           /*将二维数组输出*/
  {
    for(j=1;j<=5;j++)
      printf("%4d",a[i][j]);
      printf("\n");           /*每输出一行回车*/
  }
}  

37.

#include "stdafx.h"
#include "stdio.h"
int age(int n)                      /*自定义函数age*/
{
  int f;
  if(n==1)
  f=10;                     /*当n等于1时,f等于10*/
  else
  f=age(n-1)+2;                   /*递归调用age函数*/
  return f;                     /*将f值返回*/
}
main()
{
  int i,j;                      /*定义变量i,j为基本整型*/
  printf("Do you want to know whose age?please input:\n");
  scanf("%d",&i);                 /*输入i的值*/
  j=age(i);                     /*调用函数age求年龄*/
  printf("the age is %d",j);                /*将求出的年龄输出*/
    printf("\n");
}

38.

#include "stdafx.h"
#include "stdio.h"
int sub(int n)                      /*定义函数递归求鱼的总数*/
{
  if (n == 1)                   /*当n等于1时递归结束*/
  {
    static int i = 0;
    do
    {
      i++;
    }
    while (i % 5 != 0);
    return (i + 1);                 /*5人平分后多出一条*/
  }
  else
  {
    int t;
    do
    {
      t = sub(n - 1);
    }
    while (t % 4 != 0);
    return (t / 4 * 5+1);
  }
}
main() 
{ 
  int total; 
  total=sub(5);                     /*调用递归函数*/
  printf("the total number of fish is %d\n",total); 
  return 0;
}

39.

#include "stdafx.h"
#include "stdio.h"
int gys(int x,int y)              /*定义求最大公约数函数*/
{
  return y?gys(y,x%y):x;          /*递归调用gys,利用条件语句返回最大公约数*/
}
int gbs(int x,int y)              /*定义求最小公倍数函数*/
{
  return x/gys(x,y)*y;
}
void yuefen(int fz,int fm)          /*定义约分函数*/
{
  int s=gys(fz,fm);
  fz/=s;
  fm/=s;
  printf("the result is %d/%d\n",fz,fm);
}
void add(int a,int b,int c,int d)         /*定义加法函数*/
{
  int u1,u2,v=gbs(b,d),fz1,fm1;
  u1=v/b*a;
  u2=v/d*c;
  fz1=u1+u2;
  fm1=v;
  yuefen(fz1,fm1);
}
void mul(int a,int b,int c,int d)         /*定义乘法函数*/
{
  int u1,u2;
  u1=a*c;
  u2=b*d;
  yuefen(u1,u2);
}
void sub(int a,int b,int c,int d)         /*定义减法函数*/
{
  int u1,u2,v=gbs(b,d),fz1,fm1;
  u1=v/b*a;
  u2=v/d*c;
  fz1=u1-u2;
  fm1=v;
  yuefen(fz1,fm1);
}
void div(int a,int b,int c,int d)         /*定义除法函数*/
{
  int u1,u2;
  u1=a*d;
  u2=b*c;
  yuefen(u1,u2);
}
void main()
{
  char op;
  int a,b,c,d;
  scanf("%ld,%ld,%c,%ld,%ld",&a,&b,&op,&c,&d);
  switch(op)              /*根据输入的符号选择不同函数的调用*/
  {
   case '+':add(a,b,c,d);break;       /*调用加法函数*/
   case '*':mul(a,b,c,d);break;       /*调用乘法函数*/
   case '-':sub(a,b,c,d);break;         /*调用减法函数*/
   case '/':div(a,b,c,d);break;         /*调用除法函数*/
  }
}

40.

#include "stdafx.h"
#include<stdio.h>
#include<string.h>
void main()
{
    char a[100], b[100], c[200],  *p;
    int i = 0, j = 0, k = 0;
    printf("please input string a:\n");
    scanf("%s", a);                   /*输入字符串1放入a数组中*/
    printf("please input string b:\n");
    scanf("%s", b);                   /*输入字符串2放入b数组中*/
    while (a[i] != '\0' && b[j] != '\0')
    {
        if (a[i] < b[j])                  /*判断a中字符是否小于b中字符*/
        {
            c[k] = a[i];                /*如果小于,将a中字符放到数组c中*/
            i++;                  /*i自加*/
        }
        else
        {
            c[k] = b[j];                /*如不小于,将b中字符放到c中*/
            j++;                  /*j自加*/
        }
        k++;                    /*k自加*/
    }
    c[k] = '\0';                    /*将两个字符串合并到c中后加结束符*/
    if (a[i] == '\0')                 /*判断a中字符是否全都复制到c中*/
        p = b + j;                  /*p指向数组b中未复制到c的位置*/
    else
        p = a + i;                  /*p指向数组a中未复制到c的位置*/
    strcat(c, p);                     /*将p指向位置开始的字符串连接到c中*/
    puts(c);                    /*将c输出*/
}

41.

#include "stdafx.h"
#include<stdio.h>
#include<string.h>
#include <windows.h>
char* insert (char s[],  char  t[],  int i)         /*自定义函数insert*/
{
  char string[100];               /*定义数组string作为中间变量*/
  if  ( i < 0||i > (int)strlen (s) )              /*当i超出输入字符串的长度将输出error*/
  {
    printf ( "error!!\n");
    exit (1);
  }
  if  (!strlen (s))         
    strcpy (s,  t);         /*若s数组长度为0,则直接将t数组内容复制到s中*/
    else   if (strlen (t))        /*若长度不为空,执行以下语句*/
       {
         strncpy (string,s,i);      /*将s数组中的前i个字符复制到string中*/
         string[i]='\0';        
         strcat (string,t) ;        /*将t中字符串连接到string*/
         strcat (string,(s+i));     /*将s中剩余字符串连接到string*/
         strcpy (s,string);       /*将string中字符串复制到s中*/
         return s;          /*返回值为s*/
       }
}
void main ()
{
  char str1[100],str2[100];       /*定义str1,str2两个字符型数组*/
  int position;           /*定义变量position为基本整型*/
  printf("please input str1:\n");
  gets(str1);           /*gets函数获得第一个字符串*/
  printf("please input str2:\n");
  gets(str2);           /*gets函数获得第二个字符串*/
  printf("please input position:\n");
  scanf("%d",&position);        /*输入字符串二插入字符串一的位置*/
  insert(str1,str2,position);       /*调用insert函数*/
  puts(str1);           /*输出最终得到的字符串*/
}  

42.

#include "stdafx.h"
#include "stdio.h"
float average(float array[],int n)              /*自定义求平均身高函数*/
{
  int i;
  float aver,sum=0;
  for(i=0;i<n;i++)
  sum+=array[i];                  /*用for语句实现sum累加求和*/
  aver=sum/n;                   /*总和除以人数求出平均值*/
  return(aver);                   /*返回平均值*/
}
int main()
{
  float average(float array[],int n);           /*函数声明*/
  float height[100],aver;
  int i,n;
  printf("请输入学生的数量:\n");
  scanf("%d",&n);                 /*输入学生数量*/
  printf("请输入学生们的身高:\n");
  for(i=0;i<n;i++)
  scanf("%f",&height[i]);               /*逐个输入学生的身高*/
  printf("\n");
  aver=average(height,n);               /*调用average函数求出平均身高*/
  printf("学生的平均身高为:%6.2f\n",aver);      /*将平均身高输出*/
  return 0;
}

43.

#include "stdafx.h"
#include "stdio.h"
#define swap(a,b) {int c;c=a;a=b;b=c;}/*定义一个带参的宏swap*/
main()
{
int i,j,a[10],b[10];/*定义数组及变量为基本整型*/
printf("please input array a:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);/*输入一组数据存到数组a中*/
printf("please input array b:\n");
for(j=0;j<10;j++)
scanf("%d",&b[j]);/*输入一组数据存到数组b中*/
printf("\nthe array a is:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);/*输出数组a中的内容*/
printf("\nthe array b is:\n");
for(j=0;j<10;j++)
printf("%d,",b[j]);/*输出数组b中的内容*/
for(i=0;i<10;i++)
swap(a[i],b[i]);/*实现数组a与数组b对应值互换*/
printf("\nNow the array a is:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);/*输出互换后数组a中的内容*/
printf("\nNow the array b is:\n");
for(j=0;j<10;j++)
printf("%d,",b[j]);/*输出互换后数组b中的内容*/
}
相关文章
|
1月前
|
存储 安全 数据管理
C语言之考勤模拟系统平台(千行代码)
C语言之考勤模拟系统平台(千行代码)
53 4
|
20天前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
40 8
|
22天前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
24天前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
57 4
|
28天前
|
存储 安全 物联网
C语言物联网开发之设备安全与代码可靠性隐患
物联网设备的C语言代码安全与可靠性至关重要。一是防范代码安全漏洞,包括缓冲区溢出和代码注入风险,通过使用安全函数和严格输入验证来预防。二是提高代码跨平台兼容性,利用`stdint.h`定义统一的数据类型,并通过硬件接口抽象与适配减少平台间的差异,确保程序稳定运行。
|
23天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
54 1
|
2月前
|
存储 搜索推荐 C语言
深入C语言指针,使代码更加灵活(二)
深入C语言指针,使代码更加灵活(二)
|
2月前
|
存储 程序员 编译器
深入C语言指针,使代码更加灵活(一)
深入C语言指针,使代码更加灵活(一)
|
2月前
|
C语言
深入C语言指针,使代码更加灵活(三)
深入C语言指针,使代码更加灵活(三)
深入C语言指针,使代码更加灵活(三)
|
7月前
|
C语言
c语言编程练习题:7-10 算术入门之加减乘除
对于输入的两个整数,按照要求输出其和差积商。
124 0