功夫粤语版百度云 720p:C语言的问题。。

来源:百度文库 编辑:高校问答 时间:2024/04/28 00:53:35
#include "stdio.h";
main()
{int a[10],i,j,k;
printf ("Please Input Array :\n");
for (i=0;i<9;i++)
scanf ("%d\n",&a[i]);
printf ("Please Input The Number!\n");
scanf ("%d",&k);
for (i=0;i<9;i++)
{if (k<a[i])
for (j=9;j>i;j--)
a[j]=a[j-1];
a[i]=k;
}
printf("THE New Array is:\n");
for (i=0;i<10;i++)
printf("%d ",a[i]);
}

这个程序意思是先让用户输入一排从小到大的有序数列。之后再输入一个随机数,让这个数插入其中,这个数列仍然有序。

不知哪里出了问题。。请大家帮帮忙。

还有一个程序。是这样的。
#include"stdio.h"
main(){
int a,y;
a=10;y=0;
do{a+=2;y+=a;
if(y>50) break;
}while(a=14);
printf("a=%d y=%d\n",a,y);
}
为什么是答案是a=16,y=60呢?

1。第一个程序应加一个break语句,修改如下:
for (i=0;i<9;i++)
{if (k<a[i])
for (j=9;j>i;j--)
a[j]=a[j-1];
a[i]=k;
break;
} 因为输入的数列是递增数列,所以如果k<a[i],一定有k<a[i+1].所以若不加break将会进行多次比较,uzizhong后面的都和K值相等。
2。a=14为赋值语句,她永远为真,应写为a==14.

a=14
写错了。应该为a==4.这是C,不是VB。本人博客推出VB C学习栏目,欢迎你访问交流。

第一个没看出来,第二题是a==14不是赋值a=14