⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c 例子.txt

📁 一些C语言的例子
💻 TXT
字号:
  (一)题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 
1.程序分析:采取逆向思维的方法,从后往前推断。 
2.程序源代码: 
main() 
{ 
int day,x1,x2; 
day=9; 
x2=1; 
while(day>0) 
  {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/                         答案是:1534 
  x2=x1; 
  day--; 
  } 
printf("the total is %d\n",x1); 
} 


 (二)回文数问题
 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法) 
2.程序源代码: 
main( ) 
{ 
long a,b,c,d,e,x; 
scanf("%ld",&x); 
a=x/10000;/*分解出万位*/ 
b=x%10000/1000;/*分解出千位*/ 
c=x%1000/100;/*分解出百位*/ 
d=x%100/10;/*分解出十位*/ 
e=x%10;/*分解出个位*/ 
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); 
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); 
   else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c); 
     else if (d!=0) printf("there are 2, %ld %ld\n",e,d); 
       else if (e!=0) printf(" there are 1,%ld\n",e); 
} 






  (三)题目:打印出杨辉三角形(要求打印出10行如下图)    
1.程序分析: 
        1 
       1  1 
       1  2  1 
       1  3  3  1 
       1  4  6  4  1 
       1  5  10 10 5  1  
2.程序源代码: 
main() 
{int i,j; 
int a[10][10]; 
printf("\n"); 
for(i=0;i<10;i++) 
  {a[i][0]=1; 
  a[i][i]=1;} 
for(i=2;i<10;i++) 
  for(j=1;j<i;j++) 
  a[i][j]=a[i-1][j-1]+a[i-1][j]; 
for(i=0;i<10;i++) 
  {for(j=0;j<=i;j++) 
  printf("%5d",a[i][j]); 
  printf("\n"); 
  } 
  (四)}题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 
1.程序分析: 
2.程序源代码: 
main() 
{int a,i,aa[4],t; 
scanf("%d",&a); 
aa[0]=a%10; 
aa[1]=a%100/10; 
aa[2]=a%1000/100; 
aa[3]=a/1000; 
for(i=0;i<=3;i++) 
  {aa[i]+=5; 
  aa[i]%=10; 
  } 
for(i=0;i<=3/2;i++) 
  {t=aa[i]; 
  aa[i]=aa[3-i]; 
  aa[3-i]=t; 
  } 
for(i=3;i>=0;i--) 
printf("%d",aa[i]); 
} 
  (五)题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: 
2.程序源代码: 
#include "math.h" 
main() 
{ 
long int i,x,y,z; 
for (i=1;i<100000;i++)                                                        答案是:26  261 1581 
  { x=sqrt(i+100);   /*x为加上100后开方后的结果*/ 
   y=sqrt(i+268);   /*y为再加上168后开方后的结果*/ 
    if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ 
     printf("\n%ld\n",i); 
  } 
    (六)}题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 
2.程序源代码: 
main() 
{ 
long f1,f2; 
int i; 
f1=f2=1;20
for(i=1;i<=20;i++) 
  { printf("%12ld %12ld",f1,f2); 
    if(i%2==0) printf("\n");/*控制输出,每行四个*/ 
    f1=f1+f2; /*前两个月加起来赋值给第三个月*/ 
    f2=f1+f2; /*前两个月加起来赋值给第三个月*/ 
  } 
  
  
  (七)题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 
       则表明此数不是素数,反之是素数。        
2.程序源代码: 
main() 
{ 
char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/ 
for(i='x';i<='z';i++) 
  for(j='x';j<='z';j++) 
  { 
  if(i!=j) 
   for(k='x';k<='z';k++) 
   { if(i!=k&&j!=k) 
    { if(i!='x'&&k!='x'&&k!='z') 
    printf("order is a--%c\tb--%c\tc--%c\n",i,j,k); 
    } 
   } 
  } 
} 
  (八)}题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 
1.程序分析:利用辗除法。 
2.程序源代码: 
main() 
{ 
  int a,b,num1,num2,temp; 
  printf("please input two numbers:\n"); 
  scanf("%d,%d",&num1,&num2); 
  if(num1
  { temp=num1; 
   num1=num2;  
   num2=temp; 
  } 
a=num1;b=num2; 
while(b!=0)/*利用辗除法,直到b为0为止*/ 
  { 
   temp=a%b; 
   a=b; 
   b=temp; 
  } 
printf("gongyueshu:%d\n",a); 
printf("gongbeishu:%d\n",num1*num2/a); 
} 
  (九)问题描述:5位跳水高手参加10米高台跳水决赛,有好事者让5人据实力预测比赛结果.
         A选手说:B第二,我第三;
         B选手说:我第二,E第四;
         C选手说:我第一,D第二;
         D选手说:C最后,我第三;
         E选手说:我第四,A第一.
         决赛成绩公布之后,每位选手的预测都只说对了一半,即一对一错.请编程解出
         比赛的实际名次.
?#include <iostream.h>
void main()
{
int cc1,cc2,cc3,cc4,cc5; //cc1到cc5代表5位选手的逻辑判断
int A,B,C,D,E;//A,B,C,D,E分别代表5位选手的名次
int g; //问题是否解决的BOOL值
for(A=1; A<=5; A++)
 for(B=1; B<=5; B++)
 {for(C=1; C<=5; C++)
 {for(D=1; D<=5; D++)
 { for(E=1; E<=5; E++)
{ cc1=((B==2)&&(!(A==3)))||((!(B==2))&&(A==3));
  cc2=((B==2)&&(!(E==4)))||((!(B==2))&&(E==4));
  cc3=((C==1)&&(!(D==2)))||((!(C==1))&&(D==2));
  cc4=((C==5)&&(!(D==3)))||((!(C==5))&&(D==3));
  cc5=((E==4)&&(!(A==1)))||((!(E==4))&&(A==1));
if(((cc1+cc2+cc3+cc4+cc5)==5)&&(A!=B)&&(A!=C)&&(A!=D)&&(A!=E)&&(B!=C)&&(B!=D)&&(B!=E)&&(C!=D)&&(C!=E)&&(D!=E))
 { g=1;
 cout<<"A的名次是:"<<A<<endl;
 cout<<"B的名次是:"<<B<<endl;
 cout<<"C的名次是:"<<C<<endl;
 cout<<"D的名次是:"<<D<<endl;
 cout<<"E的名次是:"<<E<<endl;
 }}}}};

 if(g!=1)
 cout<<"Can't found!"<<endl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -