#include<stdio.h>
#include<stdbool.h>
#define SIZE 10
int j,k,i,m;
int number[SIZE];
void input(int n);
void sort(int n);
void find(int n);
void output(int n);
int main()
{
printf("input ten number:\n");
input(SIZE);
sort(SIZE);
printf("请输入你需要找的数:\n");
find(SIZE);
output(SIZE);
return 0;
}
void input(int n)
{
for(i=0;i < SIZE;i++)
{
scanf("%d",&number[i]);
}
}
void sort(int n)//-->你的函数传递进来的n,貌似也没用嘛////
{
m = SIZE;
for(j=1;j<SIZE;j++)
{
m -= m;//-->这个m-=m以后不就等0,然后还是等0,不晓得有什么作用。我猜本意是要用在for循环里面作为一个不断缩小的变量。
for(i = 0;i < SIZE;i++)
{
if(number[i]>number[i+1])//外层的j和内层貌似也完全没有关联,我就没看明白这里是怎么实现排序的。
{
k = number[i];
number[i] = number[i+1];
number[i+1] = k;
}
}
}
}
void find(int n)
{
int x;
bool inumber;
scanf("%d",&x);
for(i=0,inumber = true;i < SIZE;i++)
{
if(x == number[i])
{
printf("该数在第数组中的第%d位\n",i+1);
inumber = false;
}
}
if(inumber)
printf("不存在该数\n");
}
void output(int n)
{
for(i=0;i < SIZE;i++)
{
printf("%5d",number[i]);
}
printf("\n");
}
--------------------------------------------------------
总的来说,这个程序我看得很不明白,用到了宏定义,全局变量,可是却怎么看都是没必要的。
#include<stdio.h>
#include<stdbool.h>
#define SIZE 10
int j,k,i,m;
int number[SIZE];
void input(int n);
void sort(int n);
void find(int n);
void output(int n);
int main()
{
printf("input ten number:\n");
input(SIZE);
sort(SIZE);
printf("请输入你需要找的数:\n");
find(SIZE);
output(SIZE);
return 0;
}
void input(int n)
{
for(i=0;i <n;i++)
{
scanf("%d",&number[i]);
}
}
void sort(int n){
m=n;
for( i=0;i<n;i++){//这个排序方法比较原始,比选择排序还要差一点 ,我也不知道该叫什么
for(j=i+1;j<n;j++){
if(number[j]>number[i]){//呃,我这是从大到小排序,你也可以把符号改一下,从小到大
int k=number[j];
number[j]=number[i];
number[i]=k;
}
}
}
}
void find(int n)
{
int x;
bool inumber;
scanf("%d",&x);
for(i=0,inumber = true;i <n;i++)
{
if(x == number[i])
{
printf("该数在第数组中的第%d位\n",i+1);
inumber = false;
}
}
if(inumber)
printf("不存在该数\n");
}
void output(int n)
{
for(i=0;i <n;i++)
{
printf("%5d",number[i]);
}
printf("\n");
}
-------------------
反正你的程序就是错在那个排序的那一段了。哪里面的m,没有起到应有的作用。排序,你貌似也不是很懂原理。你的排序是只针对相邻两个元素进行比较。
另外如果你想让你的程序可以容纳的元素多于十个,可以把程序开头处的#define SIZE 10修改一下,比如十一个数字的话就是#define SIZE 11
依此类推。
如果你想让你的程序看起来更有好一点,那就可以把SIZE 做得尽可能大一点,再把int main()函数修改如下:
int mian(){
int n;
printf("请输入数据规模(<=%d)",SIZE):
scanf("%d",&n);
input(n);
sort(n);
printf("请输入你需要找的数:\n");
find(n);
output(n);
return 0;
}