思路:拿到一个字符串,求出其长度,然后逆序输出
#includeB、整除–输出100到1000之间能被5和6同时整除的数,输出格式为每10个数为一行。#define N 100 int main(){ char str[N]; int i,cnt=0; gets(str);//输入字符串 cnt = strlen(str);//获取字符串长度 for(i=cnt-1; i>=0; i--)//逆序输出字符串 printf("%c",str[i]); return 0; }
注意:换行判断的位置!
#includeC、0和1的个数–给定一个int型整数,输出这个整数的二进制的0和1的个数。int main(){ int i,cnt=0; for(i=100; i<=1000; i++) { if(i%5==0 && i%6==0){ printf("%d ",i); cnt++; if(cnt%10 == 0) printf("n"); } } return 0; }
作模2运算,先算1的个数,再拿32位减去1的个数。
#includeD、随机数–从1—20之间随机抽取5个数,输出抽取出来的5个数之和与剩余未被抽取的15个数之和的总和。int main(){ int n,i,cnt=0; scanf("%d",&n); for(i=0; n!=0; i++){ if(n%2 == 1) cnt++; n/=2; } printf("0的个数为%d,1的个数为%dn",32-cnt,cnt); return 0; }
#include#define n 5 int main(){ int i,j,x,sum1=0,sum2=0,a[n]={0}; //抽取出来的5个不重复的随机数 x = rand()% 20 + 1; a[0] = x; for(i=1; i E、排序-输入n个数进行排序,要求先按奇偶后按从小到大的顺序排序。 #includeint main() { int n,i,j,low=0,high=0; printf("请输入总个数:"); scanf("%d",&n); int num[n],initval[n]; printf("请开始输入数字:n"); for(i=0; i x&&j>=0; --j) num[j+1] = num[j]; num[j+1] = x; } } for(i=n-high+1; i x&&j>=n-high; --j) num[j+1] = num[j]; num[j+1] = x; } } for(i=0; i F、日期–今天是2012年4月12日星期四,编写程序,输入今天开始到12月31日之间的任意日期,输出那一天是星期几。例如输入“5(回车)20(回车)”(5月20日),输出应为“Sunday”。 #includeG、字符移动–输入一个字符串,将其中的数字字符移动到非数字字符之后,并保持数字字符和非数字字符输入时的顺序。例如:输入字符串“ab4f35gr#a6”,输出为“abfgr#a4356”。int main() { int month,day,n; scanf("%d",&month); scanf("%d",&day); switch(month){ case 4: n = day-12; n = (n+4) % 7; break; case 5: n = (1+day) % 7; break; case 6: n = (4+day) % 7; break; case 7: n = (6+day) % 7; break; case 8: n = (2+day) % 7; break; case 9: n = (5+day) % 7; break; case 10: n = day % 7; break; case 11: n = (3+day) % 7; break; case 12: n = (5+day) % 7; break; default: printf("请输入正确日期!"); } switch(n){ case 1: printf("Monday"); break; case 2: printf("Tuesday"); break; case 3: printf("Wednesday"); break; case 4: printf("Thursday"); break; case 5: printf("Friday"); break; case 6: printf("Saturday"); break; default: printf("Sunday"); } return 0; } 思路:创建两个数组,一个用来存放输入的字符串,用两次for循环+判断,第一次将非数字字符存放在另一个数组,第二次将数字字符放入另一个数组后半段。
#includeint main() { char strs[100]={}, stre[100]={}; int lens, i, j; scanf("%s",&strs); lens = sizeof(strs); for(i=0,j=0; i '9') && strs[i]!=NULL){ stre[j] = strs[i]; j++; } } for(i=0; i ='0' && strs[i]<='9'){ stre[j] = strs[i]; j++; } } for(i=0; i H、判断素数–输入一个整数,判断该整数是否为素数,若是,输出该整数,若否,输出大于该整数的第一个素数。(例如,输入为14,输出17,因为17是大于14的第一个素数) #includeint primenum(int n); int main() { int i, n, lab=1; scanf("%d",&n); for(i=2; i I、加密算法–编写加密程序,加密规则为:将所有字母转化为该字母后的第三个字母,即A->D、B->E、C->F、…、Y->B、Z->C。小写字母同上,其他字符不做转化。输入任意字符串,输出加密后的结果。 例如:输入"I love 007",输出"L oryh 007"
#includeJ、单链表–从键盘输入5个整数,将这些整数插入到一个链表中,并按从小到大次序排列,最后输出这些整数。int main() { char str[100]={}; int i; gets(str); for(i=0; i<100; i++){ if((str[i]>=97 && str[i]<=122) || (str[i]>=65 && str[i]<=90)) str[i]+=3; } puts(str); return 0; } 设节点定义如下
struct Node { int Element; // 节点中的元素为整数类型 struct Node * Next; // 指向下一个节点 };#include#include typedef struct Node { int Element; struct Node *Next; }; int main() { int i,x; Node *head = new Node; Node *tail = head; for(i=0; i<5; i++){ scanf("%d",&x); Node *a = new Node; if(i==0){ head->Next = a; } a->Element = x; tail->Next = a; tail = tail->Next; } Node *p = head->Next; Node *q = p->Next; int i=5; while(i--){ while(q!=NULL){ if(p->Element > q->Element){ int t; t = p->Element; p->Element = q->Element; q->Element = t; } p = q; q = q->Next; } p = head->Next; q = p->Next; } while(p!=NULL){ printf("%dn",p->Element); p = p->Next; } printf("end!"); return 0; }



