C语言的简单题目

1、交换问题。
一百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划。该计划如下:我每天给你十万元,而你第一天只需给我一分钱;第二天我仍给你十万元,你给我两分钱;第三天我仍给你十万元,你给我四分钱……你每天给我的钱是前一天的两倍,直到满一个月(30天)。百万富翁很高兴,欣然接受了这个契约。请编写一个程序计算这一个月中陌生人给了百万富翁多少钱,百万富翁给陌生人多少钱。
2、学生成绩管理问题。
有5个学生,每个学生有如下数据成员:姓名name[20]、(英语、数学、计算机)三门课的成绩score[3]、三门课的平均分ave。要求输入5个学生的相关数据并计算平均分,同时输出平均分大于等于60分的学生的所有信息,以及平均成绩最高的学生姓名。
3、换币问题。
试编写程序,要求将一张100元人民币,换成等值的10元、5元、2元、1元人民币40张,每种至少一张。编程输出所有可能的换法并累计换法种数。
4、取球问题。
编写一个程序实现下述要求。已知一个口袋中有红、白、黄、蓝4种球各若干个,每次取3个球,打印输出每次取出3种不同颜色的球(分别用red、white、yellow、blue代表红、白、黄、蓝四种球)的所有可能的组合,并输出组合总数。

***********第一题**********
long a; //陌生人给富翁,单位万
long b; //富翁给陌生人,单位分
int main()
{
int i;
long todaygive;
todaygive=1;
for(i=0;i<30;i++)
{a+=10;
b+=todaygive;
todaygive*=2;
}
printf("陌生人给富翁:%ld0000元\n",a);
printf("富翁给陌生人:%ld.%ld元",b/100,b%100);
getchar();
}

***********第二题**********
struct student{
char name[20];
int score[3];
int ave;
}student[5];

int input()
{
int i;
for(i=0;i<5;i++)
{
printf("Student %d:",i+1);
gets(student[i].name);
printf("语文:");
scanf("%d",&student[i].score[0]);
printf("数学:");
scanf("%d",&student[i].score[1]);
printf("计算机:");
scanf("%d",&student[i].score[2]);
getchar();
student[i].ave=student[i].score[0]+student[i].score[1]+student[i].score[2];
student[i].ave/=3;
}
}
int print()
{
int i;
int max=0;
int maxid=0;
printf("%20s%5s%5s%7s%5s\n","姓名","语文","数学","计算机","平均");
for(i=0;i<5;i++)
{if(student[i].ave>=60)
printf("%20s%5d%5d%7d%5d\n",student[i].name,student[i].score[0],student[i].score[1],student[i].score[2],student[i].ave);
if(student[i].ave>max) {maxid=i; max=student[i].ave;}

}
printf("最高分:%s",student[maxid].name);
}

int main()
{
input();
print();
getchar();
getchar();
}
**************第三题****************
int main()
{
int i=0,j=0,k=0,l=0;
int count=0;
printf("%4s%4s%4s%4s\n","10元","5元","2元","1元");
for(i=1;i<10;i++)
for(j=1;j<20;j++)
for(k=1;k<40;k++)
for(l=1;l<40;l++)
{
if(i+j+k+l==40&&i*10+j*5+k*2+l==100)
{printf("%4d%4d%4d%4d\n",i,j,k,l);
count++;
}
}
printf("共有%d种换法.",count);
getchar();
}

************第四题***********
int b1,b2,b3;
char color[4][7]={"Red","While","Yellow","Blue"};
int count;
int main()
{
for(b1=0;b1<4;b1++)
for(b2=0;b2<4;b2++)
for(b3=0;b3<4;b3++)
if(b1!=b2&&b2!=b3&&b3!=b1)
{printf("%7s%7s%7s\n",color[b1],color[b2],color[b3]);
count++;
}printf("Total:%d",count);
getchar();
}
回答者:soyboydoy - 助理 三级 6-21 19:03

答了这么多建议加最佳
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-21
1 #include <stdio.h>
void main()
{int i,n,m=1,s=0;
for(i=1;i<=30;i++)
{m=m*2;
s+=m;
}
n=10*30;
printf("富翁给了陌生人%d万元\n",s);
printf("陌生人给了富翁%d分\n",n);
}
4 main()
{int r,w,y,b,t=0;
for(r=0;r<=3;r++)
for(w=0;w<=3-r;w++)
for(y=0;y<=3-r-w;y++)
for(b=0;b<=3-r-w-y;b++)
t++;
printf("%d",t);
}

2
第2个回答  2007-06-23
int score[3];
int ave
哪个说分数是整型啊,要是是个78。5咋办,我觉的换成FLOAT
int main()
主函数前面要加INT吗??我觉的去掉INT
int main()
{
input();
print();
getchar();
getchar();
}
这个主函数也写错了,你这样的调用子程序,根本调用运行不了,形参都没有。
我看你这个最佳是的不到了,呵呵
还有,四个题,难的弄,要想不出错,那是不现实的,。我不想写,200分难的弄
第3个回答  2007-06-21
第一个用不着编程,高中数学学过的人都会做了,等比数列求和嘛,1+2+...2^29 = 2^30 - 1分。陌生人的就是30*10万嘛。
不习惯用C语言写东西,后面的就不帮你了。
第4个回答  2007-06-21
1. #include "stdio.h"
main()
{int i,m=0,n=2;
for(i=1;i<=30;i++)
{m+=10;
n=pow(n,i-1);
}
printf("富翁给了陌生人%d万元\n",m);
printf("陌生人给了富翁%d分\n",n);
}
相似回答