赞
踩
- #include<stdio.h>
- #include <string.h>
- #define maxn 85
- int main() {
- int number,tot = 0,numx=0;
- char s[maxn];
- scanf("%d",&number);
- while(number--){
- tot=0;
- numx=0;
- scanf("%s", s);
- for(int i = 0; i < strlen(s); i++){
- if(s[i] == 'O') tot=++numx+tot;
- else if (s[i] == 'X') numx=0;
- }
- printf("%d\n", tot);
- }
- }
- #include<stdio.h>
- #include <string.h>
- #define maxn 85
- int main() {
- int T,flag,num=0;
- char s[maxn];
- int result[4];
- //进行判定的分子式数目
- scanf("%d",&T);
- while(T--){
- //结果数组赋初值
- memset(result,0, sizeof(result));
- scanf("%s", s);
- for(int i = 0; i < strlen(s); i++){
- switch(s[i]){
- case 'C':
- flag=0;
- break;
- case 'H':
- flag=1;
- break;
- case 'O':
- flag=2;
- break;
- case 'N':
- flag=3;
- break;
- }
- //num表示该元素的个数
- num=0;
- //如果该元素接下来的字符是数字将计算个数,否则个数等于1
- while(s[i+1]>=48 &&s[i+1]<=57){
- ++i;
- num=num*10+(s[i]-'0');
- }
- if(num==0) num=1;
- result[flag]= result[flag]+num;
- }
- //结果输出
- printf("%.3f\n", result[0]*12.01+1.008*result[1]+result[2]*16.00+result[3]*14.01);
- }
- }
'运行
- #include<stdio.h>
- #include <string.h>
- int main() {
- int T,number,numcount[10];
- scanf("%d",&T);
- while(T--){
- memset(numcount,0, sizeof(numcount));
- scanf("%d",&number);
- for (int i = 1; i <= number; i++) {
- int flag=i;
- //先将末位数字计数之后一步一步将十位百位计数
- while (flag>=10){
- numcount[flag%10]++;
- flag=flag/10;
- }
- numcount[flag]++;
- }
- //结果输出,最后一个数据输出之后不含空格直接换行
- for (int j = 0; j <9 ; j++) {
- printf("%d ",numcount[j]);
- }
- printf("%d\n",numcount[9]);
- }
- }
- #include<stdio.h>
- #include <string.h>
- #define maxn 85
- bool IsPs(const char* s, int p){
- //p将s分成strlen(s)/p段,判断每个段中的第i个数是否相等。
- for (int i = 0; i <p ; i++) {
- for (int j = 0; j <strlen(s)/p-1 ; j++) {
- if(s[j*p+i]!=s[(j+1)*p+i]) return false;
- }
- }
- return true;
- }
- int main() {
- int T;
- char s[maxn];
- scanf("%d",&T);
- while(T--){
- scanf("%s",s);
- int length = strlen(s);
- //从1到k判断字符串是否以i为周期
- for (int i = 1; i <=length; i++)
- {
- //s不能整除i,肯定不以i为周期,跳过循环。
- if(length%i!=0) continue;
- //判断以s是否以i为周期,是的话结果输出
- if(IsPs(s,i))
- {
- printf("%d\n", i);
- if (T) printf("\n");
- break;
- }
- }
- }
- }
AAAAA
DDDDD
SSSSS
GGGGG
EEEE
AZ
0
AAAAA
DDDDD
SSSSS
GGGGG
EEEE
A0
Z
Puzzle #1:
This puzzle has no final configuration.
Puzzle #2:
A A A A A
D D D D D
S S S S S
G G G G
E E E E G
输入直接用scanf(%s,s)当有空格的时候就会停止读入导致空格读取不上,
输出格式要注意很容易出现格式错误。
- #include<stdio.h>
- int main() {
- char s[5][10];
- int line =0,row=0,count =0 ;
- while (1){
- //读取数组的值
- for (int i = 0; i <5 ; i++)
- {
- scanf("%[^\n]%*c",s[i]);
- if(s[i][0]=='Z') return 0;
- for (int j = 0; j <5 ; j++) {
- //找到空值的位置
- if(s[i][j]==' ')
- {
- line=i;
- row=j;
- }
- }
- }
- bool flag= true;
- char c;
- //对指令依次进行判断是否能执行
- while((c=getchar())!='0'){
- //前面已经有指令已经不能执行,后面的代码就没必要执行了
- if(!flag)continue;
- //判断指令能否执行
- switch(c){
- case 'A':
- if(line-1>=0){
- s[line][row]=s[line-1][row];
- s[--line][row]=' ';
- }
- else flag=false;
- break;
- case 'B':
- if(line+1<5){
- s[line][row]=s[line+1][row];
- s[++line][row]=' ';
- }
- else flag=false;
- break;
- case 'L':
- if(row-1>=0){
- s[line][row]=s[line][row-1];
- s[line][--row]=' ';
- }
- else flag=false;
- break;
- case 'R':
- if(row+1<5){
- s[line][row]=s[line][row+1];
- s[line][++row]=' ';
- }
- else flag=false;
- break;
- case '\n':
- break;
- default:
- flag=false;
- break;
- }
-
- }
- //通过getchar函数将\n去掉
- getchar();
- //结果输出
- if(count!=0)printf("\n");
- printf("Puzzle #%d:\n",++count);
- if(flag){
- for (int i = 0; i < 5; i++) {
- for (int j = 0; j <4 ; j++) {
- putchar(s[i][j]);
- putchar(' ');
- }
- putchar(s[i][4]);
- putchar('\n');
- }
- }
- else printf("This puzzle has no final configuration.\n");
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。