C基础作业

这篇文章展示了多个C语言编程的例子,包括猴子吃桃问题、百钱买百鸡问题、九九乘法表、金字塔图案、三角形判断、数据倒置、找出数组中的第二大数、字母图案、倒金字塔、正金字塔、计算字符串长度、字符数组操作以及斐波那契数列等。这些例子涵盖了循环、条件判断、数据处理等基本编程概念。
摘要由CSDN通过智能技术生成

 #猴子吃桃

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5 //定义天数,桃子个数
  6 int I = 10;
  7 int J = 1;
  8 /*while  (I>1)
  9     {
 10         I--;
 11         J++;
 12         J=J*2;
 13 printf("天数:%d 个数:%d\n",I,J);
 14     }
 15 */
 16 for(;I>1;I--)
 17     {
 18         J++;
 19         J=J*2;
 20     }
 21 printf("桃子共有%d个\n",J);
 22 
 23 return 0;
 24 }              

#百钱买百鸡

方法1

 1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5 int i = 0;
  6 int j = 0;
  7 int k = 0;
  8 int n = 0;
  9 int m = 0;
 10 for (i=0;i<=20;i++){
 11     for(j=0;j<=33;j++){
 12         for(k=0;k<=100;k=k+3){
 13             n=i+j+k;
 14             if(n==100){
 15                 m=5*i+3*j+k/3;
 16                 if(m==100){
 17                     printf("鸡翁:%d只 鸡母:%d只 鸡雏:%d只\n",i,j,k);
 18                 }
 19             }
 20         }
 21     }
 22 }
 23 return 0;
 24 }


方法2

25 
 26 {                                                                                                                                                                                   
 27 unsigned int i = 20;
 28 unsigned int j = 0;
 29 //鸡雏个数
 30 unsigned int n = 0;
 31 //鸡雏总价值
 32 float k ;
 33 //总的钱数
 34 float m = 0 ;
 35 for(;i>=0;i--)
 36     {
 37     for(j=100-5*i;j>=0;j--)
 38         {
 39         n=100-i-j;
 40         k=n/3;
 41         m=5*i+3*j;
 42         m=m+k;
 43         if (m==100.0)
 44         printf("有鸡翁%d只,有鸡母%d只,有鸡雏%d只\n",i,j,n);
 45         break; 
 46         }
 47     }
 48 return 0;
 49 }
 50 

 #九九乘法表

  1 #include<stdio.h>
  2 /*
  3 int main()
  4 { 
  5 int i; 
  6 int j; 
  7 int k; 
  8     for(i=1;i<=9;i++) 
  9     { 
 10         for(j=i;j<=9;j++) 
 11         { 
 12             k=i*j; 
 13             printf("%d*%d=%d\t",i,j,k); 
 14             if (j==9) 
 15             { 
 16                 printf("\n"); 
 17             } 
 18         } 
 19     } 
 20 return 0; 
 21 }
 22 */
 22 */
 23 int main()
 24 {
 25 int i;
 26 int j;
 27 int k;
 28     for(i=1;i<=9;i++)
 29     {
 30         for(j=1;j<=i;j++)
 31         {
 32             k=i*j;
 33             printf("%d*%d=%d\t",i,j,k);
 34             if (j==i)
 35             {
 36                 printf("\n");
 37             }
 38         }
 39     }
 40 return 0;
 41 }              

 #金字塔

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5 int i = 0;
  6 int j = 0;
  7 int hang = 0;
  8 scanf("%d",&hang);
  9 for(i=1;i<=hang;i++)
 10 {
 11     for(j=1;j<=hang-i;j++)
 12     {
 13         printf(" ");
 14     }
 15     for(j=1;j<=+2*i-1;j++)
 16     {
 17         printf("*");
 18     }
 19     printf("\n");
 20 }
 21 return 0;
 22 }          

 #判断三角形

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5 int a;
  6 int b;
  7 int c;
  8 scanf("%d,%d,%d",&a,&b,&c);
  9 if(a<b+c){
 10     if(b<a+c){
 11         if(c<a+b){
 12             printf("能构成三角形\n");
 13                 if(a==b&&a==c){
 14                     printf("构成等边三角形\n");
 15                 }
 16                 else
 17                     if(a==b||a==c||b==c){
 18                         printf("构成等腰三角形\n");
 19                     }
 20                 printf("构成普通三角形\n");
 21         }
 22     }
 23 }
 24 else
 25 printf("不构成三角形\n");
 26 }     

 #数据倒置

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     int num;
  6     int m = 0;
  7     int mun = 0;
  8     printf("请输入一个整数:");
  9     scanf("%d",&num);
 10     for(;num>1;)
 11     {
 12         m=num%10;
 13         mun=mun*10+m;
 14         num=num/10;
 15     }   
 16         m=num%10;
 17         mun=mun*10+m;
 18     printf("倒置后的数是:%d\n",mun);
 19 return 0;
 20 }      

# 输出第二大的数

  1 #include<stdio.h>                                                                                                                                                                   
  2 
  3 int main()
  4 {
  5     int arr[5]={0};
  6     int i;
  7     for(i=0;i<5;i++)
  8     {
  9         scanf("%d",&arr[i]);
 10     }
 11     int max = arr[0];
 12     int min = arr[0];
 13     for(i=0;i<5;i++)
 14     {
 15         if(max<arr[i])
 16         {
 17             max=arr[i];
 18         }
 19         if(min>arr[i])
 20         {
 21             min=arr[i];
 22         }
 23     }
 24     int max2 = min;
 25     for (i=0;i<5;i++)
 26     {
 27         if(arr[i]>max2&&arr[i]<max)
 28         {
 29             max2=arr[i];
 30         }
 31     }
 32     printf("%d\n",max2);
 33     return 0;
 34 }

#字母图案

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5 char zm;
  6 char i = 0;
  7 char j = 0;
  8 char k = 0;
  9     printf("请输入一个大写字母");
 10     scanf("%c",&zm);
 11     getchar();
 12         k=zm;
 13         j=zm-65;
 14         for(;j>=0;j--){
 15             for (i=j;i<zm-65;i++){
 16             printf("%c",95);
 17             }
 18             for (i=j,k=zm;i<=zm-65;i++){
 19                 if (k>=65){                                           
 20                     printf("%c",k);
 21                     k--;
 22                 }
 23             }    
 24             printf("\n");
 25         }
 26 
 27         return 0;
 28 
 29 }
        

#倒金字塔

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     int i,hang,j;
  6     scanf("%d",&hang);
  7     for (i=1;i<=hang;i++)
  8     {
  9         for(j=1;j<i;j++)
 10         {
 11             printf(" ");
 12         }
 13         for(j=2*(hang-i)+1;j>=1;j--)
 14         {
 15             printf("*");
 16         }
 17         printf("\n");
 18     }
 19 return 0;
 20 }  

#正金字塔

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5 int i = 0;
  6 int j = 0;
  7 int hang = 0;
  8 scanf("%d",&hang);
  9 for(i=1;i<=hang;i++)
 10 {
 11     for(j=1;j<=hang-i;j++)
 12     {
 13         printf(" ");
 14     }
 15     for(j=1;j<=+2*i-1;j++)
 16     {
 17         printf("*");
 18     }
 19     printf("\n");
 20 }
 21 return 0;
 22 }       

#计算字符串有多少个字符

  1 #include<stdio.h> 
  2 int main() 
  3 { 
  4     char str[30]={0}; 
  5     int i = 0; 
  6     scanf("%s",str); 
  7     while(str[i]!='\0') 
  8     { 
  9         i++; 
 10     } 
 11     printf("%d\n",i); 
 12 }

#把字符数组2的字符覆盖到字符数组1中

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     char str1[30]={0};
  6     char str2[20]={0};
  7     scanf("%s %s",str1,str2);
  8     int i=0;
  9     for(;str2[i]!='\0';i++)
 10     {
 11         str1[i]=str2[i];
 12     }
 13     printf("%s",str1);
 14 return 0;
 15 }

#把字符数组中的2的字符放到字符数组1的后面

 1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     char str1[30]={0};
  6     char str2[20]={0};
  7     gets(str1);
  8     gets(str2);
  9     int i = 0;
 10     int j = 0;
 11     while(str1[i]!='\0')
 12     {
 13         i++;
 14     }
 15     for(;str2[j]!='\0';)
 16     {
 17         str1[i]=str2[j];
 18         i++;
 19         j++;
 20     }
 21     str1[i]=str2[j];
 22     puts(str1);
 23     printf("%d",sizeof(str1));
 24     return 0;
 25 }    

#两个字符数组中字符的ASCII码的差值

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     char str1[30]={0};
  6     char str2[30]={0};
  7     char i = 0;
  8     gets(str1);
  9     gets(str2);
 10     while(str1[i]==str2[i])
 11     {
 12         i++;
 13         if(str1[i]==0||str2[i]==0)
 14         {
 15             break;
 16         }
 17     }
 18     printf("%d\n",str1[i]-str2[i]);
 19     return 0;
 20 } 

#肥波那契数列

  1 #include<stdio.h>
  2 #include<string.h>
  3 int main()
  4 {
  5     int arr1[100]={1,1};
  6     int i = 2;
  7     int j = 1;                                                        
  8     int k = 0;
  9     int n = 0;
 10     scanf("%d",&n);
 11     printf("%d ",arr1[0]);
 12     for(;arr1[j]<=n;i++)
 13     {
 14         arr1[i]=arr1[j]+arr1[k];
 15         printf("%d ",arr1[j]);
 16         j++;
 17         k++;
 18     }
 19     printf("\n");
 20     return 0;
 21 }
~           

 #100以内数字的和

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5 int num = 0;
  6 int i = 1;
  7 for(;i<=100;i++)
  8 {
  9     num=num+i;
 10 }
 11 printf("%d\n",num);
 12 return 0;
 13 } 

#把数组1中的偶数元素替换套数组2中

  1 #include<stdio.h>
  2 #include<string.h>
  3 int main()
  4 {
  5     int arr[5]={0};
  6     int brr[5]={0};
  7     int i = 0;
  8     for(;i<5;i++)
  9     {
 10         scanf("%d",&arr[i]);
 11     }
 12     for(i=0;i<5;i++)
 13     {
 14         scanf("%d",&brr[i]);
 15     }
 16     for(i=0;i<5;i=i+2)
 17     {
 18         brr[i]=arr[i];
 19     }
 20     for(i=0;i<5;i++)
 21     {
 22         printf("%d ",brr[i]);
 23     }
 24     printf("\n");
 25     return 0;
 26 }  

#四页玫瑰数

  1 #include<stdio.h>
  2 /*
  3 int main()
  4 {
  5     int num = 1000;
  6     int i = 0;
  7     int j = 0;
  8     int k = 0;
  9     int n = 0;
 10     for(;num<10000;num++)
 11     {
 12         i=num%10;
 13         j=num/1000;
 14         k=num%1000/100;
 15         n=num%100/10;
 16         if(num==i*i*i*i+j*j*j*j+k*k*k*k+n*n*n*n)
 17         {
 18             printf("%d\n",num);
 19         }                                                             
 20     }   
 21 return 0;
 22 }
 23 */
 24 int main()
 25 {
 26     int i = 1;
 27     int j = 0;
 28     int k = 0;
 29     int n = 0;
 30     int num = 0;
 31     for(;i<=9;i++)
 32     {
 33         for(j=0;j<=9;j++)
 34         {
 35             for(k=0;k<=9;k++)
 36             {
 37                 for(n=0;n<=9;n++)
 38                 {
 39                     num=i*1000+j*100+k*10+n;
 40                     if(num==i*i*i*i+j*j*j*j+k*k*k*k+n*n*n*n)
 41                     {
 42                         printf("%d\n",num);
 43                     }
 44                 }
 45             }
 46         }
 47     }
 48 return 0;
 49 }  

#使用switch case完成简易计算器

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     int i = 0;
  6     char j = 0;
  7     int k = 0;
  8     scanf("%d",&i);
  9     scanf("%c",&j);
 10     scanf("%d",&k);
 11     switch(j)
 12     {
 13         case'+' :
 14             printf("%d+%d=%d\n",i,k,i+k);
 15             break;
 16         case '-':
 17             printf("%d-%d=%d\n",i,k,i-k);
 18             break;
 19         case '*':
 20             printf("%d*%d=%d\n",i,k,i*k);
 21             break;
 22         case '/':
 23             printf("%d/%d=%d\n",i,k,i/k);
 24             break;
 25         case '%':
 26             printf("%d%%%d=%d\n",i,k,i%k);
 27             break;
 28     }
 29 }   

#输出因数

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     int num = 0;
  6     int i = 1;
  7     scanf("%d",&num);
  8     for(;i<=num;)
  9     {
 10         if(0==num%i)
 11         {
 12             printf("%d ",i);
 13         }
 14     i++;
 15     }
 16 return 0;
 17 }

#1000以内的完数

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     int arr[100]={0};
  6     int num = 1;
  7     int i = 1;
  8     int j = 0;
  9     int k = 0;
 10     int n = 0;
 11     for(;num<1000;num++)
 12     {
 13         for(i=1;i<=num;)
 14         {
 15             if(0==num%i)
 16             {
 17                 arr[j]=i;
 18                 j++;
 19             }
 20             i++;
 21         }
 22         n=0;
 23         for(k=0;k<j-1;k++)
 24         {
 25             n=n+arr[k];
 26         }
 27         if(n==num)
 28         {
 29             printf("%d\n",num);
 30         }
 31         j=0;
 32     }
 33 return 0;
 34 }   

#输入5个数字,判断某个数字是否和这5个数字相同,并且输出有几个相同

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     int arr[5]={0};
  6     int a;
  7     int n = 0;
  8     int i = 0;
  9     for(i=0;i<5;i++)
 10     {
 11         scanf("%d",&arr[i]);
 12     }
 13     scanf("%d",&a);
 14     for(i=0;i<5;)
 15     {
 16         if(a==arr[i])
 17         {
 18             n++;
 19         }
 20         i++;
 21     }
 22     if(n>0)
 23     {
 24         printf("存在:%d个\n",n);
 25     }
 26     else
 27     {
 28         printf("不存在\n");
 29     }
 30 return 0;
 31 }    

#正直角三角形和倒直角三角形

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     int i,j;
  6     for(i=5;i>=1;i--)
  7     {
  8         for(j=i;j>=1;j--)
  9         {
 10         printf("*");
 11         }
 12         printf("\n");
 13     }
 14     return 0;
 15 }
 16 /*
 17 int main()
 18 {
 19     int i,j;
 20     for(i=1;i<=5;i++)
 21     {
 22         for(j=i;j>=1;j--)
 23         {
 24             printf("*");
 25         }
 26         printf("\n");
 27     }
 28 return 0;
 29 }
 30 */ 

#冒泡函数

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     int arr[5]={0};
  6     int i = 0;
  7     int j = 0;
  8     int num;
  9     for(i=0;i<5;i++)
 10     {
 11         scanf("%d",&arr[i]);
 12     }
 13     for(i=0;i<5;i++)
 14     {
 15         for(j=1;j<5-i;j++)
 16         {
 17         if(arr[j-1]>arr[j])
 18         {
 19             num=arr[j];
 20             arr[j]=arr[j-1];
 21             arr[j-1]=num;
 22         }
 23         }
 24     }
 25     for(i=0;i<5;i++)
 26     {
 27         printf("%d ",arr[i]);
 28     }
 29         printf("\n");
 30 return 0;
 31 }     

#选择函数

  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5     int arr[5]={0};
  6     int i,j,max,k;
  7     for(i=0;i<5;i++)
  8     {
  9         scanf("%d",&arr[i]);
 10     }
 11     for(i=1;i<5;i++)
 12     {
 13         for(j=i,max=j-1;j<5;j++)
 14         {
 15             if(arr[j]>arr[max])
 16             {
 17                 max=j;
 18             }
 19         }
 20         k=arr[i-1];
 21         arr[i-1]=arr[max];
 22         arr[max]=k;
 23     }
 24     for(i=0;i<5;i++)
 25     {
 26         printf("%d ",arr[i]);
 27     }
 28     printf("\n");
 29 return 0;
 30 }                 

#goto的使用

  1 #include <stdio.h>
  2 int main(int argc, const char *argv[])
  3 {
  4 A:
  5     printf("1");
  6     int i = 0;
  7     while (i<=2)
  8     {
  9 
 10         i++;
 11         goto B;
 12     }
 13 B:
 14     printf("3");
 15 
 16                                                                       
 17     //goto B; 
 18     return 0;
 19 }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

malingshu404

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值