请教一道C语言解题过程?

#defie N 20
fun(int a[],int n,it m)
{ int i,j;
for(i=m;i>=n;i--)a[i+1]=a[i];
}
main()
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)printf("%d",a[i]);
}
结果是12334

#include <stdio.h>
#define N 20
void fun(int a[],int n,int m)
{
int i;
for(i=m;i>=n;i--)
a[i+1]=a[i];
}
void main()
{
int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)
printf("%d",a[i]);
}
/*
解释:你定义了一个用于循环控制的i,一个长度为20的数组,初始化了前10位,后边的系统自动赋值为0
你的fun函数的作用是将m和n之间的数据依次向后移动一位。
关键看的是=n的时候,此时的操作是将a[n]覆盖到a[n+1],针对你下面传递的数组,就应该是a[3] = a[2],因为数组是从0开始计算下标的,所以:
所以此时数组的值是: a 1 2 3 3 4 5 6 7 8....
所以输出前5个当然是12334.
*/
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-10-19
首先你的程序有点问题,下面是我改过的,你可以看一下
#include<stdio.h>
#define N 20
fun(int a[],int n,int m)
{ int i;
for(i=m;i>=n;i--)a[i+1]=a[i];
}
main()
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)
printf("%d",a[i]);
printf("\n");
}

C语言初学者请问这道题怎么做?
遍历字符串S,使用数组统计其中26个字母分别出现的次数 最终最少的字母出现次数即为可以召唤的神龙数 再乘以n就是可以实现的愿望数 C语言参考代码如下:include <stdio.h> int main(){ long long int n; \/\/ 注意n的取值范围超过了2^31-1,应取长整型 scanf("%lld", &n);char S[1000000];s...

请教C语言高手教教我:18\/4*sqrt(4.0)\/8的计算顺序和最后的资料型别...
double 首先计算18\/4得到的int型的。 然后结果和sqrt(4.0)计算,sqrt返回double型的数。 然后\/8. 由于C语言算数计算向上相容,所以结果为double型的。表示式18\/4*sqrt(4.0)\/8值的资料型别是什么,求回答,给好评,这是C语言 为double型别,因为sqrt()原型为double sqrt(double_x),所...

请教大家一道C语言题:设a=12,求下面表达式a的值:a+=a-=a*=a._百度知...
运算过程自右向左进行 a*=a=>a=a*a=144,注意这是a的值是144!然后a-=144=>a=a-144=0,a的值变为0;最后a+=0=>a=a+0=0,所以运算的结果是0

请教c语言高手这题怎么做的?感谢!采纳给予100分奖励!
void main(){ int a[30],n,age,i; \/\/a[30]存年龄段人数,下面会初始化为0,只用到 a[0]至z[15] 分别对应16至31 岁的人数 \/\/ n为你要输入几个学生的年龄 \/\/age是循环内你输入的临时年龄,做判断用\/\/i循环变量 for(i=0;i<30;i++) a[i] = 0; \/\/初始化为0 printf("...

会C的大人进。。请教c语言简单问题。。。
a=1>b=2这是错误的,专业点就是假,所以其表达式的值为0,注意C语言中假为零,真为1.所以m=a>b使m=0,由于短路原则,&&前面一个为假,则后面不再进行计算.所以而n=c>d不被执行。。。2.比较ab大小 if(a>b)(t=a;a=b;b=t;)不明白(t=a;a=b;b=t;)这个语句。。。它就是将a,b互换...

C语言求解
不应该是8,应为15。这是条件表达式,条件表达式格式为:y=(a>b?c:d);当a>b成立时,y=c;当a>b不成立时,y=d。例:y=(13>12?15:6>7?8:9),先判别13>12,条件成立,所以y=15

C语言,请教我一下怎么画这道题的流程图,谢谢!
先从被调用函数开始:1.系统最先在全局区分配了两个大小为4个字节的连续内存,名字叫指针m,和指针n。然后是main函数 系统先在栈区分配了两个double类型大小的内存名字分别叫a,b。在栈区又分配了两个指针类型大小的内存名字分别叫指针x,指针y。让名字叫指针x内存里的内容是a的地址。让名字叫指针y...

请教C语言的算法 1!+3!+5!+...+n!
long int sum=0;if(n < 1) sum = 0;else sum = sum * calculate_n(n-1);return sum;} void main(){ int i, n;long int sum = 0;scanf("%d",&n);for(i=1; i<= n; i += 2)sum += calculate_n(i);printf("1!+3!+5!+…+(2k-1)!= %ld",sum);} 上面程序...

小白请教一道C语言的题
答案确实为C switch结构中,只有运行到break才会退出。当n%4=1时,出现开始匹配case1,但是没有遇到break,就继续执行,知道遇到case4的break才退出。当n%4=2时一样。当n%4=3时,匹配case3,然后遇到case4的break退出。。。以此思路继续分析即可 ...

求解一道c语言指针题,一美女询问,急!!!
原本p指针是指向i但是第五行的那句“*s=t”使p指针转而指向了k

相似回答
大家正在搜