c语言中怎样让一个有10个元素的数组输出5个元素后换行后再输出另外五个函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中怎样让一个有10个元素的数组输出5个元素后换行后再输出另外五个函数相关的知识,希望对你有一定的参考价值。

原题是这个
编写一个完整的程序,实现如下功能。1.输入10个无序的整数。2.用选择排序法将以上接收的10个无序整数按从大到小的顺序排序。3.要求任意输出一个整数,用折半法从排好序的10个数中找出该数,若存在,在主函数中输出其所在的位置,否则,提示未找到。
提示,可定义input函数完成10个整数的输入,sort函数完成输入数的排序,search函数完成输入数的查找功能
程序写成这样了
#include<stdio.h>
void input(int a[])

int i=0;
printf("请输入10个整数\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);

void sort(int num[])
int j,i;
int index;
int temp;
for (i=0; i<9; i++)

index=i;
for (j=i+1; j<10; j++) //在无序区中选取最小记录
if (num[j]>num[index])
index=j;
if (index!=i)

temp=num[i];
num[i]=num[index];
num[index]=temp;


for(i=0;i<10;i++)
printf("%d ",num[i]);

int search(int num[],int ins)
int k=9;
int j=0;
int i;
i=(j+k)/2;
while(j<=k)

if(num[i]==ins)
return i;
if(num[i]<ins)
k=i-1;
else if(num[i]>ins)
j=i+1;
i=(j+k)/2;

return -1;

int main()
int n;
int l;
int ss[10];
input(ss);
sort(ss);
printf("请输入要查找的整数");
while(1)
scanf("%d",&n);
l=search(ss,n);
if(l!=-1)
printf("%d\n",l+1);
else
printf("提示未找到\n");

return 0;


现在要再加入一个输出函数,要输出5个元素后换行再输出5个函数,怎么改写程序

参考技术A for(i=0;i<10;i++)

printf("%d ",num[i]);

if((i+1)%5==0)
printf("\n");


这里改一下就好本回答被提问者和网友采纳
参考技术B 你用一个i做计数器,当i%5=0时就输出一个换行符,就可以了 参考技术C 对照控制输出,设置一个计数器,控制输出换行
http://zhidao.baidu.com/open/question/detail?appid=10002&qid=0964eca2d9f4e18384f53678

C语言里怎样判断数组里的一个元素为空还是为0

null 表示是0还是空?
刚设立一个数组时,里面的元素是都为0还是都为空?

NULL表示是空,即什么也没有。
刚设立一个数组时,里面的元素是你定义数组的类型,数值不确定
例如:char ch[4];
现在里面是随机值,同wk_wangkui的回答,
memset(ch,'0',sizeof(char)*4);这时ch里的数值是字符型的‘0’。
参考技术A 刚建立的数组既不是null (C程序没有null这个概念,面向对象才有null)也不是0,是不确定!!!
原来内存这块放的什么还是什么,如果数组你不初始化拿来就用,谁也不知道里面是什么,C是不检查的
参考技术B 空是a[0]='\0'
0的话看你是什么样的数组了,假设是整型的,a[i]=0
参考技术C 空格的ascii是0
0的ascii是48

以上是关于c语言中怎样让一个有10个元素的数组输出5个元素后换行后再输出另外五个函数的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程问题:给数组中的元素按顺序编号

【C语言】查找:给定有10个元素的整数数组,输入一个数,在数组中查找是该数

用C语言实现一维数组中删除第N个元素的程序怎么写

怎样将一个数组逆序输出?

c语言中如何修改数组中的元素

C语言 删除所有相同值的元素