C语言学习与感悟——《C语言学习基础程序》

前言

博主在几年前的C语言后中,结合自身学习情况和学习感悟在当时的一个寒假做了两份C语言学习的经验总结,分别为 《C语言学习基本框架》《C语言学习基础程序》
现在把它们分享出来,供大家交流学习,如果能给初学C语言的小伙伴们提供一些帮助也是不错的,想当初我也是从C语言的折磨中走出来的,吼吼吼!

一、常见练习题

1. 计算1!+2!+n!

思路:运用两层for循环,一层进行阶乘计算,一层进行加法运算.

#include
int main()
{
   
int n,i,j,k=1,s=0;
printf("请输入项数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
   
               k=1;  
for(j=1;j<=i;j++)
{
   
k=k*j;
}
s=s+k;
}
printf("结果=%d\n",s);
return 0; }

2. 计算斐波那列数列第n项

思路:先对项数进行判断,分为两部分计算,第二部分运用递归的思想.

#include
int main()
{
   
int n,i,f,f1=1,f2=1;
printf("请输入项数:\n");
scanf("%d",&n);
if(n<=2)
f=1;
else
for(i=3;i<=n;i++)
{
   
f=f1+f2;
f1=f2;
f2=f;
}
printf("结果=%d\n",f);
return 0;
}

3. 爱因斯坦阶梯问题

思路:通过while循环判断,不断增加倍数,直至循环结束.

#include
int main()
{
   
int x=7,i=1;
while(!((x%2==1)&&(x%3==2)&&(x%5==4)&&(x%6==5)))
{
   
i++;
x=7*i;
}
printf("%d\t",x);
return 0;
}

4. 求勾股数

思路:通过三层for循环依次递增,再运用if语句进行判断.

#include
int main()
{
   
int x,y,z,k=0;
for(x=1;x<100;x++)
{
   
for(y=1;y<100;y++)
{
   
for(z=1;z<100;z++)
{
   
if(x*x+y*y==z*z&&x<y&&y<z)< p=""></y&&y<z)<>
printf("x=%dy=%dz=%d\n",x,y,z),k++;
}
}
}
printf("%d\n",k);
return 0;
}

5. 百钱百鸡问题

思路:通过三层for循环将鸡翁,鸡母,鸡雏依次递增,在运用if语句进行两个条件合并判断.

#include
int main()
{
   
int x,y,z;
for(x=1;x<=20;x++)
{
   
for(y=1;y<=33;y++)
{
   
for(z=1;z<=100;z++)
{
   
if(15*x+9*y+z==300&&x+y+z==100)
printf("公鸡:%d母鸡:%d鸡雏:%d\n",x,y,z);
}
}
}
return 0;
}

6. 编写函数,一趟循环,找出数组的最大元素和最小元素

思路:以a[0]为比较元素,与数组其他元素依次判断,如果大于则记录max,如果小于则记录min.

#include<stdio.h>
void max_min(int p[]);
int main()
{
   
int a[10],i;
printf("input 10 integers:\n");
for(i=0;i<10;++i)
scanf("%d",&a[i]);
max_min(a);
return 0;
}
void max_min(int p[])
{
   
int i,max=0,min=0;
for (i=0;i<10;i++)
{
   
if(p[max]<p[i])
max=i;
if(p[min]>p[i])
min=i;
}
printf("最大值=%d\t最小值=%d\n",p[max],p[min]);
}

7. 编写函数,倒排数组元素

思路:将数组元素分为前后两个部分,然后两个部分头尾对应函数依次交换. 解法:

#include <stdio.h>
void RevertToSelf(int p[],int n);
int main()
{
   
   int a[6],i;
printf("input 6 integers:\n");
for (i=0;i<6;i++)
{
   
scanf("%d",&a[i]);
}
printf("倒排后:\n");
  RevertToSelf(a,
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值