本帖最后由 橴陽花桾__ 于 2012-12-5 19:11 编辑
题目:在一个升序数组中插入一个数后,保证该数组仍然升序。程序首先判断此数是否大于最后一位数,然后再考虑插入中间的数的情况,插入后次元素之后的数依次后移一位。
#include<stdio.h>
#define N 10
【查看更多内容请登录哈】
本帖最后由 绯色の人形 于 2012-12-5 13:17 编辑
橴陽花桾__ 发表于 2012-12-5 12:31 【链接登录后可见】
- - 可是习题只能改红字部分
红字部分a[i+1] = a[ i ]; 不就行了
就行了啊
为什么要两行?
绯色の人形 发表于 2012-12-4 20:38 【链接登录后可见】
假设你要插入的位置是m好了
for (int i = N-1; i > m; i--)
a = a;
- - 可是习题只能改红字部分
橴陽花桾__ 发表于 2012-12-4 18:46 【链接登录后可见】
交换位置至少需要3行,但是可以不用临时变量,+-也可以换成异或:
a = a + b;
b = a - b;
a和b只是举例。
橴陽花桾__ 发表于 2012-12-4 20:34 【链接登录后可见】
我的意思是 在a后移一位这个操作能否两个指令就可以完成
假设你要插入的位置是m好了
for (int i = N-1; i > m; i--)
a = a[i-1];
a = M;
这样就行了
绯色の人形 发表于 2012-12-4 20:32 【链接登录后可见】
[mw_shl_code=c,true]#include
#define N 10
main()
我的意思是 在a后移一位这个操作能否两个指令就可以完成
[mw_shl_code=c,true]#include<stdio.h>
#define N 10
main()
{
int a={12,34,55,76,98,123,135,152,187,198};
int M,i,t;
printf("Please iuput insert nu
【查看更多内容请登录哈】
少侠你的a总是看不见捏。。。
不需要换位,只需要移位,最后一次会把多出的那位覆盖掉
a[i+1]=a就够了。。。
比如1,24,8,16,如果插入7,第一次变成1,2,4,8,16,16,第二次,1,2,4,8,8,16,第三次1,2,4,7,8,16
小白棉花糖 发表于 2012-12-4 18:38 【链接登录后可见】
[mw_shl_code=c,true]#include
#define N 10
main()
交换位置至少需要3行,但是可以不用临时变量,+-也可以换成异或:
a = a + b;
b = a - b;
【查看更多内容请登录哈】
小白棉花糖 发表于 2012-12-4 18:38 【链接登录后可见】
[mw_shl_code=c,true]#include
#define N 10
main()
下面临时变量打漏了
[mw_shl_code=c,true]#include<stdio.h>
#define N 10
main()
{
int a={12,34,55,76,98,123,135,152,187,198};
int M,i,t;
printf("Please iuput insert nu
【查看更多内容请登录哈】
小白棉花糖 发表于 2012-12-4 18:20 【链接登录后可见】
你的代码问题很多。a是一个数组,数组名是指向数组首地址的指针,你怎么能够用M和a比较?而且还用for循环打 ...
- - !大哥你把else后面的看漏了
小白棉花糖 发表于 2012-12-4 18:20 【链接登录后可见】
你的代码问题很多。a是一个数组,数组名是指向数组首地址的指针,你怎么能够用M和a比较?而且还用for循环打 ...
- - !大哥你把else后面的看漏了
你的代码问题很多。a是一个数组,数组名是指向数组首地址的指针,你怎么能够用M和a比较?而且还用for循环打印a。你好歹加个下标。。
而且你红字里面就没M呀。。
没糖给你了 发表于 2012-12-4 16:42 【链接登录后可见】
两数值互换,需要中间变量······
T T 练习那里只有两个空格 我狠是无语
两数值互换,需要中间变量······