C++
#include
#include
#include
using namespace std;
int main()
{
string a,b;
int s;
int p=1,p2=1;
cin>>a>>b;
for (int i=0;i<a.length();i++)
{
s=a[i]-64;
p=p*s;
}
for (int i=0;i<b.length();i++)
{
s=b[i]-64;
p2=p2*s;
}
if (p%47==p2%47)
cout<<"GO";
else
cout<<"STAY";
return 0;
}
我自己写的C
#include
#include
int main()
{
char a;
char *b;
int s1=1,s2=1,i;
int k1,k2;
scanf("%s\n%s",&a,&b);
for(i=0;i<sizeof(a)/sizeof(a[0]);i++){
k1=a[i]-64;
s1=k1;
}
for(i=0;i<sizeof(b)/sizeof(b[0]);i++){
k2=b[i]-64;
s2*=k2;
}
if(s1/47==s2/47) printf("GO");
else printf("STAY");
return 0;
}
1.char a;//这个定义成字符型,不是数组跟c++ string a对不上
2.char *b;//没有开空间
3.scanf("%s\n%s",&a,&b);//格式有问题,不用\n,指针或者数组不需要&操作符
4.sizeof(a)/sizeof(a[0]);//这样,不管a是char 还是char[]求出来都不对,应该strlen(a),a为数组;
5.sizeof(b)/sizeof(b[0])//b 是指针,sizeof(指针)求出来4(32位操作系统)或者8(64位操作系统)
6.k1=a[i]-64;
s1=k1;
if(s1/47==s2/47)
算法跟c++不一样,算出来是不是一样,我没验证;
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define BUF_SIZE 256
int main()
{
char a[BUF_SIZE] = {};
char *b = (char *)malloc(BUF_SIZE*sizeof(char));
memset(b,0x0,BUF_SIZE*sizeof(char));
int s1=1,s2=1,i;
int k1,k2;
scanf("%s %s",a,b);
printf("a_length=%d b_length=%d a=%s b=%s\n",strlen(a),strlen(b),a,b);
for(i=0;i<strlen(a);i++){
k1=a[i]-64;
s1*=k1;
}
for(i=0;i<strlen(b);i++){
k2=b[i]-64;
s2*=k2;
}
if((s1%47) == (s2%47))
printf("GO");
else
printf("STAY");
return 0;
}
sizeof(a)/sizeof(a[0])
修改为strlen,否则求出来的不是字符串的长度,而是数组的长度