C语言有一个已排好序的整型数组,有10个元素,要求从键盘输入一个数后,按原来排序的规律将它插入数组中
源代码如下:
#include <stdlib.h>
#include <stdio.h>
int main()
{
int a[20],i,n,x,k;
printf("请输入一组顺序数(从小到大的顺序):");
for( i=0; ;i++ )
{
scanf("%d",&a[i]);
if( getchar() == '\n' )
break;
}
n = i + 1; //n表示数组内数字的个数
printf("请输入需要插入的数:");
scanf("%d",&x);
for(i=0;i<n;i++)
{
if( x<= a[i] )
{
for( k= n-1; k >= i; k--)
{
a[k+1]=a[k];
}
a[i]=x;
break;
}
}
for(i=0;i<=n; i++)
{
printf("%d ",a[i]);
}
printf("\n");
system("pause");
}
扩展资料
1、C语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
2、数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量。
#include<stdio.h>
intmain()
{
inta[11]={1,4,6,9,13,16,19,28,40,100};
inttemp,i=0,j=0;
scanf("%d",&temp);
for(i=9;i>=0;i--)
{
if(temp<a[i]){
a[i+1]=a[i];
}else{
a[i+1]=temp;
break;
}
}
for(i=0;i<11;i++)
{
printf("%d\t",a[i]);
}
system("pause");
return0;
}
运行结果:
扩展资料:
system用法
system函数的用法,需要包含头文件#include<process.h>
这个函数跟他的参数没有任何关系,他的参数是字符串;
intsystem(constchar*command);
int_wsystem(constwchar_t*command);
command:Commandtobeexecuted
可以用来执行指定路径下的可执行文件,其中可以包含一些DOS命令,在这里使用和在CMD的命令行中执行这条命令的效果相同,比如:
system("C:\\MT_Sqlconn.exe>C:\\out.log");
这行代码的意思就是,执行C:\\MT_Sqlconn.exe,并把这个文件的输出结果重定向到C:\\out.log文件中,以前通过printf打印到标准输出的结果全system("pause");部打印到了C:\\out.log文件中。
system函数是可以调用一些DOS命令,比如
system("cls");//清屏,等于在DOS上使用cls命令system("notepad")//打开记事本程序system("ipconfig>>123.txt");//输出ipconfig查询出的结果到当前目录的123.txt文件中,每次都是覆盖的。
system(执行shell命令)
相关函数fork,execve,waitpid,popen
表头文件#include<stdlib.h>,
例:
#include<stdlib.h>
main()
{
system(“ls-al/etc/passwd/etc/shadow”);
}
#include <stdio.h>
int main() {
int a[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; //加入是这样的数组,要么升序,要么降序;
int b[11] = { 0 };
int insert = 0;
int i = 0;
int j = 0;
int insert_already = 0;
printf("Enter the number\n");
scanf("%d", &insert);
//判断升序还是降序
if (a[0] > a[9]) //降序,插入到比他小的前面
{
while (j < 11) {
if (insert_already == 0) { //尚未插入该值
if (insert > a[i]) {
b[j] = insert;
i--;
insert_already = 1; //已经插入该值
} else {
b[j] = a[i];
}
i++;
j++;
} else //已经插入该值
{
b[j] = a[i];
i++;
j++;
}
}
} else //升序,插入到比他大的前面前面
{
while (j < 11) {
if (insert_already == 0) {
if (insert < a[i]) {
b[j] = insert;
i--;
insert_already = 1;
} else {
b[j] = a[i];
}
i++;
j++;
} else //已经插入该值
{
b[j] = a[i];
i++;
j++;
}
}
}
//输出b[11];
for (i = 0; i < 11; i++) {
printf("%d\n", b[i]);
}
return 0;
}
//给分吧
额 要程序设计…这是我们的考试题…你能把编程给我么?非常感谢!