急!!!求一位会c语言的大神帮帮忙~~这个程序怎么编写啊?
已知一有序序列1,3,4,8,15,17,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int*p,in...
已知一有序序列1,3,4,8,15,17,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int *p,int d)实现此功能,在主函数调用此函数。
提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。 展开
提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。 展开
2个回答
展开全部
#include <stdio.h>
void insert(int *p, int d) {
int i = 0, temp, len = 7;
while (p[i] < d && i < 6)
++i;
if (i == 6)
p[i] = d;
for ( ; i < len; ++i) {
temp = p[i];
p[i] = d;
d = temp;
}
}
int main(void) {
int num[7] = {1,3,4,8,15,17};
int *p = num;
int data, i;
printf("输入一个整数:");
scanf("%d", &data);
for (i = 0; i < 6; ++i)
printf("%2d ", num[i]);
printf("\n");
insert(p, data);
for (i = 0; i < 7; ++i)
printf("%2d ", num[i]);
printf("\nOVER\n");
return 0;
}
更多追问追答
追问
大神谢谢啦~~~太棒了~~不过我想问下哈,for循环为什么都用++i而不是i++呢?
追答
对于内置类型来说是没什么差别的,在效率上说。这个可以自己看汇编代码。也就是上面我这么些纯属习惯。
对于自定义类型来说,前缀式可以返回类型的引用,而后缀式只能返回值,所以对于一些自定义比较大,复杂的类型来说,需要创建一次变量,然后才能赋值,而前缀式能够直接++,不知道你明白了吗?
展开全部
#include "stdio.h"
int charcount(char *s,char letter){
int i,sum;
for(sum=i=0;s[i];i++)
if(s[i]==letter)
sum++;
return sum;
}
int main(void){
char str[1000],ch;
printf("Input a string & a letter...\n");
scanf("%s %c",str,&ch);
printf("There is(are) %d \'%c\' in the string.\n",charcount(str,ch),ch);
return 0;
}
int charcount(char *s,char letter){
int i,sum;
for(sum=i=0;s[i];i++)
if(s[i]==letter)
sum++;
return sum;
}
int main(void){
char str[1000],ch;
printf("Input a string & a letter...\n");
scanf("%s %c",str,&ch);
printf("There is(are) %d \'%c\' in the string.\n",charcount(str,ch),ch);
return 0;
}
追问
不好意思运行不出来呢~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询