c语言:新颖的进制灵活应用
2016-02-14 01:24
274 查看
在Excel2003中,用A表示第1列,B表示第2列......Z表示第26列,AA表示第27列,AB表示第28列......以此类推,请写出一个函数,输入用大写字母表示的列号编码,输出它是第几列。
解:该题本质是把十进制数字用A~Z表示成二十六进制。
程序:
#include<stdio.h>
#include<string.h>
int my_fun(int len,char arr[])
{
int i,m=0;
for (i = 0; i < len; i++)
{
m += arr[i] - 64;
}
m += 25 * (len - 1);
return m;
}
int main()
{
int len,ret=0;
char arr[100] = "";
printf("请输入大写字母:");
scanf("%s", &arr);
len = strlen(arr);
ret=my_fun(len, arr);
printf("列号为:%d\n",ret);
return 0;
}
结果1:
请输入大写字母:A
列号为:1
请按任意键继续. . .
结果2:
请输入大写字母:AAB
列号为:54
请按任意键继续. . .
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1741859
解:该题本质是把十进制数字用A~Z表示成二十六进制。
程序:
#include<stdio.h>
#include<string.h>
int my_fun(int len,char arr[])
{
int i,m=0;
for (i = 0; i < len; i++)
{
m += arr[i] - 64;
}
m += 25 * (len - 1);
return m;
}
int main()
{
int len,ret=0;
char arr[100] = "";
printf("请输入大写字母:");
scanf("%s", &arr);
len = strlen(arr);
ret=my_fun(len, arr);
printf("列号为:%d\n",ret);
return 0;
}
结果1:
请输入大写字母:A
列号为:1
请按任意键继续. . .
结果2:
请输入大写字母:AAB
列号为:54
请按任意键继续. . .
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1741859
相关文章推荐
- 有限状态机
- 编写一个程序,把C语言的声明翻译成通俗语言
- NSString转C语言翻转字符串
- 学习c++的五十条忠告
- C++ Primer Plus Chapter3
- leetcode - Additive Number
- C语言 typedef -----类型定义符的重新声明
- C语言 extern 经常出错的一处
- c++ 动态分配二维数组 new 二维数组
- 【C语言】break,continue的区别
- C++类模板
- neuq oj 1018 A+B again C语言
- VC++深入详解的函数总结
- VS2008下编译C++程序,找不到 stdint.h,原因及解决方案
- offsetof()
- C++友元
- 黑马程序员-C语言02
- C++静态成员
- 【C语言】C语言运算符
- 【C语言】C语言运算符