C语言冒泡排序法和函数stoi()数字字符串转化的问题
2015-12-30 18:33
387 查看
问题:C语言冒泡排序法?
为什么程序最后输出排序不对,而把t和a【5】换一下位置就可以了???求解~嘻嘻谢谢了
补充:不对,这是改正之后的,为什么t和a【5】换一下位置就不可以了?
回答:
程序没问题,另外在c中,你的下标不可能是a[5]的,下标只有0到4
还有它的交换是多次交换的(二个循环),不是简单的交换一个值。
t和a【5】换顺序没关的,都是定义类型变量。
问题:设计一个函数stoi(),用于将较长的数字字符串转化为整数。
回答:
#include <stdio.h> main() { int i,j,t,a[5]; for(i=0;i<=4;i++) scanf("%d",&a[i]); for(i=0;i<4;i++) for(j=0;j<=4-i;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } for(i=0;i<=4;i++) printf("%5d",a[i]); printf("\n"); }
为什么程序最后输出排序不对,而把t和a【5】换一下位置就可以了???求解~嘻嘻谢谢了
补充:不对,这是改正之后的,为什么t和a【5】换一下位置就不可以了?
回答:
程序没问题,另外在c中,你的下标不可能是a[5]的,下标只有0到4
还有它的交换是多次交换的(二个循环),不是简单的交换一个值。
t和a【5】换顺序没关的,都是定义类型变量。
问题:设计一个函数stoi(),用于将较长的数字字符串转化为整数。
回答:
strtoull,能够把字符串转化为unsigned long long,这也是目前最大的无符号整型,超过这个数值,也没有变量类型能盛放这样的整型,转换了也没有任何意义。 #include <stdio.h> #include <stdlib.h> int main() { char *pEnd; unsigned long long m; //unsigned long long 能表示的最大范围是0~18446744073709551615 m = strtoull("18446744073709551615", &pEnd, 10); printf("%llu\n", m); return 0; }
相关文章推荐
- C++对10个数选择排序的2个问题分享
- C++编程思想学习笔记---第15章 多态性和虚函数
- VC++获取程序运行路径
- UNICODE GBK UTF-8 编码互转(VC++)
- VC++6.0显示cannot compile the file***:no compile tool is associated with the file extension.
- android studio实现Jni(C/C++)单步调试方法步骤-标准配置教程
- 分离链接散列表--C语言实现
- C语言转义字符\t\r\b\n的含义
- windows下如何获取系统已存在的盘符 【c++】
- C语言网站开发测试 WAMP配置CGI
- 提高C++程序运行效率的10个简单方法
- C++ Primer 第15章句柄类clone函数的意义
- C++对象模型
- c语言中的部分字符串和字符函数
- c/c++ 宏定义中的#/##
- C++开源库大全
- 深拷贝和浅拷贝
- 将VC++项目配置为64位平台
- C++ 函数调用操作符 () 、 函数对象
- C语言函数的作用域规则