![]() Rating:2074 | C:
#include<stdio.h>
int main()
{
int n,m;
char s[21][21];
while(scanf("%d%d",&n,&m)!=EOF) //首先输入n、m,如果到达文件末尾,scanf返回值为-1,就退出循环
{
for(int i=0;i<n;i++)
scanf("%s",s[i]); //总共n行,将第i行的字符保存在s[i]里面
int flag=1; //如果一个也没有flag为1,刚开始为1
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
if(s[i][j]=='@') //遍历这个二维数组,如果存在@,那么就输出坐标
{
if(flag==1) //第一个输出没有空格,后面的在(前加一个空格,这样最后一个后面就没有空格
{
printf("(%d,%d)",i,j);
flag=0; //输出一个后flag赋值为0
}
else
{
printf(" (%d,%d)",i,j);
}
}
}
if(flag==1) printf("-1\n"); //如果flag为1,表示一个都没有,输出-1
else printf("\n"); //换行
}
return 0;
}
D:
#include<stdio.h>
#include<string.h>
int main()
{
//其实不难,只要去做
//最主要,不要被大量的字符、格式控制、输入什么的吓到,其实scanf("%s",s);最好用了
char s[3]; //存放变量名
while(scanf("%s%s",s,s)!=EOF) //int x,y; 第一个输入没有,第二个字符串有用
{
char a=s[0]; //让a为x
char b=s[2]; //让b为y
int x,y,tmp; //x、y就是a、b的值
scanf("%s%s%d;",s,s,&tmp); //fu x 10; fu没用,s[0]就是x,tmp是值,后面有个;
if(s[0]==a) x=tmp; //如果s[0]是a,那么x=tmp,否则y=tmp;
else y=tmp;
scanf("%s%s%d;",s,s,&tmp);//同上
if(s[0]==a) x=tmp;
else y=tmp;
while(1) //死循环,知道End!结束
{
scanf("%s",s); //首先输入一个字符串,如果是End!就退出,其实也可以直接比较s[0]和'E'的
if(strcmp(s,"End!")==0) break;
if(strcmp(s,"Add")==0) //也可以比较s[0]和'A'的
{
scanf("%s%s",s,s); //输入两个字符串,因为不会出现x、x的情况,如果会出现,可以再弄一个s1,分别存放
if(s[0]==a) y+=x; //如果s[0]是a,那么说明是y+=x;
else x+=y; //同上
}
else if(strcmp(s,"Sub")==0) //这四个,代码都差不多
{
scanf("%s%s",s,s);
if(s[0]==a) y-=x;
else x-=y;
}
else if(strcmp(s,"Mul")==0)
{
scanf("%s%s",s,s);
if(s[0]==a) y*=x;
else x*=y;
}
else
{
scanf("%s%s",s,s);
if(s[0]==a) y/=x;
else x/=y;
}
}
printf("%d %d\n",x,y); //输出x、y
}
return 0;
}
E:
#include<stdio.h>
int fun(int x)
{
int tmp=x; //保存值
while(x!=1) //如果x==1,退出
{
if(x%2==1) return -tmp; //如果x不等于1且是一个奇数,就输出负的原值
x>>=1; //x除等于2
}
return tmp; //如果一直到1为之,x的值都是偶数,说明一开始x只包含2这个质因子,那么这一项是2的次方倍,那么是正的
}
int main()
{
int n,sum;
while(scanf("%d",&n)!=EOF) //输入一个n
{
sum=0; //对于每一个测试样例,刚开始总和为0
for(int i=1;i<=n;i++) //遍历这n项
{
sum+=fun(i); //fun(i)为自定义的函数,表示第i项的值,把这i项相加
}
printf("%d\n",sum); //输出
}
return 0;
}
F:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
int main()
{
int a[20][2];
int n;
while(scanf("%d",&n)!=EOF) //首先输入提示的数量,因为有多个这样的测试样例,所以外边加一个while(scanf()!=EOF)
{
for(int i=0;i<n;i++) //输入n个提示
{
scanf("%d%d",&a[i][0],&a[i][1]); //每个提示的x保存在a[i][0],y保存在a[i][1]
}
for(int i=1;i<=100000;i++) //士兵最多十万个,从1开始遍历这十万个,找出最先满足的那一个
{
int j;
for(j=0;j<n;j++)
{
if(i%a[j][0]!=a[j][1]) break; //如果有一个不满足,就提早退出
}
if(j>=n) //如果没有提早退出,说明这个是满足条件的,就输出,并且结束查找
{
printf("%d\n",i);
break;
}
}
}
return 0;
}
|