版权声明:转载请注明出处 https://blog.csdn.net/nanhuaibeian/article/details/88868262
- 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个?
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下?的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
思路逆推
#include "stdio.h"
void main(){
int sum=1,i;
for(i=9;i>0;i--){
sum=sum+1;
sum=sum*2;
printf("%d-->%d\n",i,sum);
}
}
- 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。
有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
#include "stdio.h"
void main(){
char i,j,k;//i->x,j->y,k->z
for(i='a';i<='c';i++){
for(j='a';j<='c';j++){
for(k='a';k<='c';k++){
if(i!=j&&i!=k&&j!=k){
if(i!='a'&&i!='c'&&k!='c')
printf("x->%c,y->%c,z->%c\n",i,j,k);
}
}
}
}
}
- 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
#include "stdio.h"
void main(){
int a[5];
int data=12333421;
int k=0,temp=data,i,flag=1;
while(temp!=0){
a[k++]=temp%10;
temp=temp/10;
printf("%d\n",a[k-1]);
}
for(i=0;i<k/2;i++){
if(a[i]!=a[k-1-i]) flag=0;
}
if(flag) printf("yes");
else printf("no");
}
- 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中
#include "stdio.h"
#include "string.h"
void main() {
FILE *in1,*in2,*out;
if((in1=fopen("1.txt","r"))==0) {
printf("error");
return;
}
if((in2=fopen("2.txt","r"))==0) {
printf("error");
return;
}
if((out=fopen("3.txt","w"))==0) {
printf("error");
return;
}
char ch[100],c,temp;
int k=0,i,j;
while(!feof(in1)) {
c=fgetc(in1);
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
ch[k++]=c;
}
while(!feof(in2)) {
c=fgetc(in2);
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
ch[k++]=c;
}
for(i=0;i<strlen(ch);i++){
k=i;
for(j=i;j<strlen(ch);j++){
if(ch[k]>ch[j]) k=j;
}
if(k!=i){
temp=ch[i];
ch[i]=ch[k];
ch[k]=temp;
}
}
for(i=0;i<strlen(ch);i++){
fputc(ch[i],out);
fputchar(ch[i]);
}
fclose(in1);
fclose(in2);
fclose(out);
}
- 809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,
9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
#include "stdio.h"
void main(){
int a;
for(a=10;a<100;a++){
if(8*a>=10&&8*a<100){
if(9*a>=100&&9*a<1000){
if(809*a==800*a+9*a)
printf("%d,%d",a,809*a);
}
}
}
}