帮忙看一下这个C语言的题目 高手来帮忙解答一下
内容:简体中文今天我们如果将a=1,b=2,c=3....以此类推下去,将单字裏的每个文字依照上面规则转换成数字再相加起来的话。知识(KNOWLEDGE)只有96分,努力...
内容: 简体中文
今天我们如果将a=1,b=2,c=3....以此类推下去,
将单字裏的每个文字依照上面规则转换成数字再相加起来的话。
知识(KNOWLEDGE)只有96分,
努力(HARDWORK)只有98分,
但态度(ATTITUDE)却是100分。
风台高中的Norton看到了上面的文章后并不相信,
他想把它们真的加起来看看,
以找到一个字可以反驳这个「态度最重要」的理论
但却讨厌换来换去的过程,
请帮他写个程式方便他去做运算。
输入说明:
输入英文单字,大小写不限,当输入0的时候就结束程式。
长度最长为200个字。
请参照Sample Input。
输出说明:
输出将英文单字依照题目的规则转换成数字后相加的结果,如果中间参杂怪异的符号,请输出Fail;但是英文字母的大小写并不会影响结果,也就是说A和a所代表的值是相同
的。请参照Sample Output。
范例输入:
若题目没有特别说明,则应该以多测资的方式读取,若不知如何读取请参考 a001 的范例程式。hardwork
KNOWLEDGE
aTtitUdE
C++
0
范例输出 :
98
96
100
Fail
#include<stdio.h>
#include<math.h>
int main()
{
char i,a[500],number=0;
while(scanf("%s",a)!=EOF)
{
if(a[0]=='0') break;
else
{
for(i=0;i<strlen(a);i++)
{
if (a[i]<=122&&a[i]>=97) number=number+a[i]-96;
else if(a[i]<=90 &&a[i]>=65) number=number+a[i]-64;
else {
printf("Fail\n");
break;
}
}
if( i==strlen(a))
{
printf("%d\n",number);
}
}
number=0;
}
return 0;
}
题目并不难 就是字符转化成数字的和
我觉得我的程序似乎并没有问题啊
可是如果字符多了之后 结果就不对了
还会出现负数
但是所有结果的绝对值都小于等于120
有哪位高手可以解释一下这是个什么情况 谢谢了!!!帮忙看下!!!
我知道到问题源头了
我用来计数的number用的是 char定义
虽然char定义的变量也可以存数字
但是最大也不过是120
所以益初了之后就会出现错误!!! 展开
今天我们如果将a=1,b=2,c=3....以此类推下去,
将单字裏的每个文字依照上面规则转换成数字再相加起来的话。
知识(KNOWLEDGE)只有96分,
努力(HARDWORK)只有98分,
但态度(ATTITUDE)却是100分。
风台高中的Norton看到了上面的文章后并不相信,
他想把它们真的加起来看看,
以找到一个字可以反驳这个「态度最重要」的理论
但却讨厌换来换去的过程,
请帮他写个程式方便他去做运算。
输入说明:
输入英文单字,大小写不限,当输入0的时候就结束程式。
长度最长为200个字。
请参照Sample Input。
输出说明:
输出将英文单字依照题目的规则转换成数字后相加的结果,如果中间参杂怪异的符号,请输出Fail;但是英文字母的大小写并不会影响结果,也就是说A和a所代表的值是相同
的。请参照Sample Output。
范例输入:
若题目没有特别说明,则应该以多测资的方式读取,若不知如何读取请参考 a001 的范例程式。hardwork
KNOWLEDGE
aTtitUdE
C++
0
范例输出 :
98
96
100
Fail
#include<stdio.h>
#include<math.h>
int main()
{
char i,a[500],number=0;
while(scanf("%s",a)!=EOF)
{
if(a[0]=='0') break;
else
{
for(i=0;i<strlen(a);i++)
{
if (a[i]<=122&&a[i]>=97) number=number+a[i]-96;
else if(a[i]<=90 &&a[i]>=65) number=number+a[i]-64;
else {
printf("Fail\n");
break;
}
}
if( i==strlen(a))
{
printf("%d\n",number);
}
}
number=0;
}
return 0;
}
题目并不难 就是字符转化成数字的和
我觉得我的程序似乎并没有问题啊
可是如果字符多了之后 结果就不对了
还会出现负数
但是所有结果的绝对值都小于等于120
有哪位高手可以解释一下这是个什么情况 谢谢了!!!帮忙看下!!!
我知道到问题源头了
我用来计数的number用的是 char定义
虽然char定义的变量也可以存数字
但是最大也不过是120
所以益初了之后就会出现错误!!! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询