[C语言基础]一些C语言小程序(二)

来源:互联网 发布:万维网官网域名 编辑:程序博客网 时间:2024/05/29 04:57

一,写程序

题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。。n保证是int范围内的一个整数。

#include <stdio.h>#include <stdlib.h>static int getnum(int src){int n=0;for(int i=0;i<32;i++){if(src & 0x01 == 1){n++;}src=src>>1;}return n;}int main()  //main()函数不可以是static{int n,i,test;while(scanf("%d",&n) != EOF){for(i=0;i<n;i++){scanf("%d",&test);int m = getnum(test);printf("%d\n",m);}}return 0;}


二,一个句子按照单词反转

样例输入:
student. a am II'm a Freshman and I like JOBDU!
样例输出:
I am a student.JOBDU! like I and Freshman a I'm
#include <stdio.h>#include <stdlib.h>#include <string.h>static int strlen_chr(char *src){int j=0;while(*(src+j) != '\0'){j++;}return j;}int main(){char src[50000];char out[50000];scanf("%[^\n]",src);int i;int j=0;if(src == NULL){return 0;}int len=strlen_chr(src);*(src+len) = '\0';i = len;while(i >0){char temp[30];int h = 0;while((*(src+i-1) != ' ') &&(i>0)){*(temp+h)=*(src+i-1);h++;i--;}*(temp+h)='\0';int len_temp=strlen_chr(temp);int g=len_temp;while(g>0){out[j]=*(temp+g-1);j++;g--;}while((*(src+i-1) == ' ')&&(i>0)){out[j]=*(src+i-1);j++;i--;}out[j]='\0';}printf("%s\n",out);return 0;}


0 0
原创粉丝点击