字符串翻转
输入输出格式:
输入描述:
输入一个字符串在单独的一行,字符串长度<100。
输出描述:
将字符串反序输出。
输入输出样例
输入样例#:
Guiyang
输出样例#:
gnayiuG
答案:
#include<stdio.h>
#include<string.h>
int main(){
char s[100];
gets(s);
for(int i=strlen(s)-1;i>=0;i--){
printf("%c",s[i]);
}
}
整除
输出100到1000之间能被5和6同时整除的数,输出格式为每10个数为一行。
输入输出格式
输入描述:
无输入
输出描述:
按题目意思输出,相邻两个数之间用空格隔开(注意每一行末尾没有空格)
答案:
#include<stdio.h>
using namespace std;
int main(){
int i,count;
count=0;
for(i=100;i<=1000;i++){
if(i%5==0&&i%6==0){
printf("%d ",i);
count++;
if(count==10){
printf("\n");
count=0;
}
}}
}
排序
输入n个数进行排序,要求先按奇偶后按从小到大的顺序排序。
输入输出格式
输入描述:
第一行输入一个整数n,表示总共有多少个数,n<=1000。
第二行输入n个整数,用空格隔开。
输出描述:
输出排序之后的结果。
输入输出样例
输入样例:
8
1 2 3 4 5 6 7 8
输出样例:
1 3 5 7 2 4 6 8
#include<stdio.h>
#include<algorithm>
using namespace std;
bool cmp(int a, int b) {
if (a % 2 == b % 2)//如果同奇同偶
return a < b;//直接从小到大排序
else//如果奇偶性不同
return (a % 2) > (b % 2);//奇数在偶数前
}
int main() {
int n;
scanf("%d", &n);
int a[100]={0};
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
sort(a, a + n, cmp);
for (int i = 0; i < n; i++) {
printf("%d", a[i]);
}
}
字符移动
题目描述
输入一个字符串,将其中的数字字符移动到非数字字符之后,并保持数字字符和非数字字符输入时的顺序。例如:输入字符串“ab4f35gr#a6”,输出为“abfgr#a4356”。
输入输出格式
输入描述:
输入一行字符串,长度小于100。
输出描述:
输出结果。
输入输出样例
输入样例:
ab4f35gr#a6
输出样例:
abfgr#a4356
#include <stdio.h>
#include <string.h>
int main() {
char s[50];
int i, j, len;
char ch;
gets_s(s);
len = strlen(s);
for (i = len - 1; s[i] <= '9' && s[i] >= '0'; i--);
len = i;//此时的len为去掉末尾连续的数字
for (i = len; i >= 0; i--) {
if (s[i] <= '9' && s[i] >= '0') {
ch = s[i];
s[i] = s[len];
s[len] = ch;
len--;
}
}
printf("atfer:%s\n", s);
}
日期
题目描述
今天是2012年4月12日星期四,编写程序,输入今天开始到12月31日之间的任意日期,输出那一天是星期几。例如输入“5(回车)20(回车)”(5月20日),输出应为“Sunday”。
输入输出格式
输入描述:
输入第一行为月份。
输入第二行为这个月的第几天。
输出描述:
输入这一天是星期几。
输入输出样例
输入样例:
5
20
输出样例#:
Sunday
#include <stdio.h>
#include <string.h>
int main() {
char date[7][10]={"Monday","Tuesday","Wednesday","Thursday","Friday","Satursday","Sunday"};
int day[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int x,y,days,i,j,sum=0;
scanf("%d%d",&x,&y);
if(x==4){days=y-9;}
else{
for(i=5;i<=x;i++){
sum+=day[i-2];
}
days=sum-9+y;
}
j=days%7;
printf("%s",date[j]);
}
判断素数
题目描述
输入一个整数,判断该整数是否为素数,若是,输出该整数,若否,输出大于该整数的第一个素数。(例如,输入为14,输出17,因为17是大于14的第一个素数)
输入输出格式
输入描述:
输入一个整数n,n最大为10000。
输出描述:
按题意输出。
输入输出样例
输入样例#:
14
输出样例#:
17
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
using namespace std;
bool isPrime(int n){
if(n<=1){return false;}
for(int i=2;i*i<=n;i++){
if(n%i==0)return false;
}
return true;
}
int main(){
int n,i=0;
cin>>n;
if(isPrime(n)==false){
for(i=n+1;i<10000;i++)
if(isPrime(i))break;
}
else{
cout<<n<<"是素数";
}
cout<<"大于这个数的第一个素数"<<i;
system("pause");
}
加密算法
题目描述
编写加密程序,加密规则为:将所有字母转化为该字母后的第三个字母,即A->D、B->E、C->F、…、Y->B、Z->C。小写字母同上,其他字符不做转化。输入任意字符串,输出加密后的结果。
例如:输入"I love 007",输出"L oryh 007"
输入输出格式
输入描述:
输入一行字符串,长度小于100。
输出描述:
输出加密之后的结果。
输入输出样例
输入样例#:
I love 007
输出样例#:
L oryh 007
#include <math.h>
#include <string.h>
#include<iostream>
int main() {
char str[100];
gets_s(str);
for (int i = 0; i < strlen(str); i++) {
if (str[i] >= 'a' && str[i] <= 'z') str[i] ='a'+(str[i] + 3- 'a')%26;
else if (str[i] >= 'A' && str[i] <= 'Z')str[i] = 'A' + (str[i] + 3-'A') % 26;
}
puts(str);
}
0和1的个数
题目描述
给定一个int型整数,输出这个整数的二进制的0和1的个数。
输入输出格式
输入描述:
输入一个整数n
输出描述:
输出这个整数的二进制的0和1的个数。
输入输出样例
输入样例#:
15
输出样例:
count0=28 count1=4
#include <math.h>
#include <string.h>
#include<iostream>
int main() {
int n,count0=0,count1=0;
scanf_s("%d", &n);
while (n>0) {
if (n % 2 == 1)count1++;
n = n / 2;
}
count0 = 32 - count1;
printf("count0=%d,count1=%d", count0, count1);
}
删除字符串2
题目描述
给你一个字符串S,要求你将字符串中出现的所有"gzu"(不区分大小写)子串删除,输出删除之后的S。
就是说出现“Gzu”、“GZU”、“GZu”、"gzU"都可以删除。
输入输出格式
输入描述:
输入一行字符串S,长度不超过100。
输出描述:
输出进行删除操作之后的S。
输入输出样例
输入样例#:
GzzGzukkgzUuu
输出样例#:
Gzzkkuu
#include <string.h>
#include<iostream>
using namespace std;
int main() {
char a[100], b[100];
gets_s(a);
int len = strlen(a);
int i, j = 0;
for (i = 0; i < len; ) {
if ((a[i] == 'g' || a[i] == 'G') && (a[i + 1] == 'z' || a[i + 1] == 'Z') && (a[i + 2] == 'u' || a[i + 2] == 'U')) {
i = i + 3;
}
else {
b[j++] = a[i++];
}
}
for (int i = 0; i < j; i++) {
cout << b[i];
}
}