C
文章平均质量分 59
ljy_home
这个作者很懒,什么都没留下…
展开
-
printf()的返回值
#include #include int main(){ int i=43; printf( "%d\n",printf("%d" ,printf("%d",i))); system( "pause"); return 0;}printf() 返回一个in原创 2016-06-17 18:36:57 · 755 阅读 · 0 评论 -
编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现
(三种if的情况考虑完整,注意解决问题的思想)#include int main(){ int count=0; char ch; while((ch=getchar())!=EOF) //直到出现文件结束标志,不再进入循环 { if(ch=='{') { count++; } if(ch=='}'&&count==0) /原创 2016-06-17 18:36:06 · 337 阅读 · 0 评论 -
3个人说了真话,1个人说的是假话。写一个程序来确定到底谁是凶手
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡说。 等同于“不是D”已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。做之前的做题思路:如果说A说的是假话,即BCD说的都是真话。即 是A,是C,是D,不是D。他们的说法相互矛盾,所以这种推论是错误的。如果说原创 2016-06-17 18:36:09 · 3225 阅读 · 0 评论 -
5位运动员参加了10米台跳水比赛,每位选手都说对了一半,请编程确定比赛的名次
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三。B选手说:我第二,E第四。C选手说:我第一,D第二。D选手说:C最后,我第三。E选手说:我第四,A第一。比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。#include int main(){ int a,b,c,d,e; for(a=原创 2016-06-17 18:36:11 · 1205 阅读 · 0 评论 -
有一个分数序列 2/1+3/2+5/3+8/5+13/8+…求出这个数列前 20 项的和。
#include int main(){ int n=0; //前n项 float s=0; //前n项的和 float tmp,count=0; //对循环次数的控制 float a=1,b=2; printf("请输入n的值:"); scanf("%d",&n); for(count=0;count<n;count++) { s=s+b/a;原创 2016-06-17 18:36:14 · 1364 阅读 · 0 评论 -
小球落下,反弹问题
#include int main(){ int n; //第n次 float a=100,sum=100,b=0; int i; //i控制循环 printf("请输入第几次落地:"); scanf("%d",&n); for(i=0;i<n;i++) { sum=sum+2*b; a=a/2; b=a; } printf("第%d次落地原创 2016-06-17 18:36:17 · 488 阅读 · 0 评论 -
猴子吃桃
#include int main(){ int day=9; int a,b=1; //a表示前一天,b表示后一天 for(day;day>0;day--) { a=(b+1)*2; b=a; } printf("桃子总数为%d个\n",a); return 0;}本文出自 “追寻内心的声音”原创 2016-06-17 18:36:19 · 229 阅读 · 0 评论 -
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?(异或的用法)
#include int main(){ int m,n; int a,count=0; scanf("%d%d",&m,&n); a=m^n; //m与n比较,相异为1 while(a) //此循环是在计算1的个数 { count++; a=a&(a-1); //每次把从右边起的第原创 2016-06-17 18:36:22 · 328 阅读 · 0 评论 -
编写程序,输出为返回 值的二进制位模式从左到右翻转后的值
编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回 值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:原创 2016-06-17 18:36:25 · 262 阅读 · 0 评论 -
不使用(a+b)/2这种方式,求两个数的平均值(保证不会溢出)
//(右移一位相当于除以2)#include int main(){ int a,b; int avg=0; scanf("%d%d",&a,&b); avg=(a&b)+((a^b)>>1); //a&b是在处理相同的位,(a^b)>>1是在处理不同的位 printf("%d\n",avg); return 0;}本文出自原创 2016-06-17 18:36:27 · 456 阅读 · 0 评论 -
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)
#include int main(){ int arr[5]; int i,j; int len=sizeof(arr)/sizeof(arr[0]); //初始化数组 for(i=0;i<len;i++) { scanf("%d",&arr[i]); } //查找的过程 j=原创 2016-06-17 18:36:30 · 384 阅读 · 0 评论 -
实现一个函数int my_atoi(char s[]),可以将一个字符串转换为对应的整数
比如:输入字符串“1234”,返回数字1234。 输入字符串“+1234”,返回数字1234. 输入字符串“-1234”,返回数字-1234. #include int my_atoi(char s[10]){ int flag=1; //代表符号位的正负号 int ret=0; //用于存储取出来的数 ch原创 2016-06-17 18:36:33 · 1101 阅读 · 0 评论 -
编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数
#include int main(){ char a=0; int num_count=0; int space_count=0; int other_count=0; //注意此处,不能写成a=getchar(),然后while(a!='\n'),这样做只能输原创 2016-06-17 18:36:36 · 1165 阅读 · 0 评论 -
编写程序实现strlen()函数,strcmp(),strcpy(),strcat()的功能
1.strlen()函数的实现(求字符串长度的函数)#include #include int my_strlen(const char *str){ int count=0; assert(str!=NULL); while(*str) { count++; str++; } return count;}int ma原创 2016-06-17 18:36:38 · 1916 阅读 · 0 评论 -
使用可变参数列表实现任意个数求平均值
#include #include int average(int val,...){ int i=0; int sum=0; va_list arg; va_start(arg,val); for(i=0;i<val;i++) { sum+=va_arg(arg, int); } va_end(arg); return sum/val;}原创 2016-06-17 18:36:41 · 434 阅读 · 0 评论 -
使用可变参数列表实现print("s\tc\n","bit-tech",'w');
#include #include void print(char *format,...){ va_list arg; va_start(arg,format); while(*format) { switch(*format) { case 's' :原创 2016-06-17 18:36:44 · 513 阅读 · 0 评论 -
判断回文数、回文字符串(从左边读和从右边读一样)
1.判断一个数是不是回文数,如:"123321"#include int main(){ int m=1234; //m是要判断的数 int n=0; //n是反转后的数 int ret=m; while(m) {原创 2016-06-17 18:36:46 · 1282 阅读 · 0 评论 -
有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".
#include #include int length(const char *str){ int len=0; assert(str); while(*str) { len++; str++; } return len;}void reverse_str(char *start,char *end){ while(star原创 2016-06-17 18:36:49 · 223 阅读 · 0 评论 -
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
#include #include int main(){ int a,i,k; int sum=0; scanf("%d",&a); for(i=0;i { for(k=0;k { sum+=a*(pow(10,k)); } } printf("%d\n",sum); return 0;}//另一种简单的做法#include i原创 2016-06-17 18:36:03 · 548 阅读 · 0 评论