求助.代码正确,但是最后运行时 CH值不知道是多少?没有申请输如CH这一步
#include"stdio.h"#include"stdlib.h"
#define N 100
#define T 1
//函数定义区
int report()//请求是否继续使用该系统
{
int c;
printf("退出程序请输入'Y'或'y'");
scanf("%c",&c);
if(c='Y')
{
printf("谢谢使用,再见");
exit(0);
}
}
int line(int n,int *p) //列出所有元素的函数
{
int i,j=1;
for(i=1;i<=n;i++,p++)
{
printf("%d",*p);
j++;
if((j%8)!=0)
{
printf("\n");
j=1;
}
}
report();
}
int input(int n,int *p)//插入函数
{
int i,j,t;
printf("\n请输入一个数字:\n");
scanf("%d",*(p+1));
for(i=0;i<n+1;i++) //对数组进行排列
{
for(j=n;j>=0;j--)
{
if(p[i]>p[j])
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
}
report();
}
}
int shanchu(int n,int *p)//删除函数
{
int t,i;
printf("\n请输入你想删除的元素序列号:\n");
scanf("%d",&t);
for(i=t-1;i<n;i++,p++)
p=p+1;
printf("\n第%d号元素已删除!\n",&t);
report();
}
int check(int n,int *p)//检查数值是否在集合内
{
int c,i;
printf("\n请输入要查询的数字:\n");
scanf("%d",&c);
for(i=0;i<n;i++,p++)
{ if(p=&c)
printf("%d存在于此数列中",&c);
}
report();
}
int number(int n,int *p)//查询当前集合的元素个数
{
printf("该集合元素个数为%d个",n);
report();
}
int maxAndMin(int n,int *p)//输出集合中的最大值和最小值
{
printf("最大值为%d,最小值为%d",p,p+n);
report();
}
int oddAndEven(int n,int *p)//输出奇数或者偶数
{
int i;
char m;
printf("\n请选择输入奇数(j)或者是偶数(o):\n");
scanf("%s",&m);
for(i=0;i<n;i++,p++)
{
if(m='j')
{
if(*p%2!=0)
printf("\t%d\t",*p);
}
else
{
if(*p%2==0)
printf("\t%d\t",*p);
}
}
report();
}
int prime(int n,int *p)//输出素数
{
int i,j;
for(i=0;i<n;i++,p++)
{
for(j=2;j<*p;j++)
{
if(*p%j==0)
printf("");
else
printf("%d",*p);
}
}
report();
}
int find(int n,int *p)//寻找尾号为该值的数
{
int i,h;
printf("\n请输入一个(0-9)的值:\n");
scanf("%d",&h);
for(i=0;i<n;i++,p++)
{
if((*p%10)==h)
printf("%d",*p);
}
report();
}
//函数定义区
//程序主体区
void main()
{
int a[N];
int i,j,n,t;
int *p;
p=a;
a[0]=(int *)malloc(10000);
printf("请输入至少5个数字但最多不要超过30个数字:\n");//请求输入数组
for(n=0;n<30;n++)
{
if(a[n-1]==0)
break;
else
scanf("%d",a[n]);
}
n= sizeof(a[N]);
printf("\n谢谢你的输入\n");
for(i=0;i<n;i++) //对数组进行排列
{
for(j=0;j<n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
while(T)
{
int CH;
printf("\n1.列出所有元素\n2.插入一个数\n3.删除一个数\n4.查询该值是否在集合内\n5.查询当前集合元素\n6.查询最大值和最小值\n7.查询偶数或奇数\n8.查询所有质数\n9.查找相同尾数\n");
printf("\n请输入(1-9)来选择你做需要进行的动作:\n ");
scanf("%d",&CH);
while(CH<1||CH>9)
{
printf("\n输入指令有误,请重新输入!\n");
scanf("%d",&CH);
}
switch(CH)
{
case 1:
line(n,p);
break;
case 2:
input(n,p);
break;
case 3:
shanchu(n,p);
break;
case 4:
check(n,p);
break;
case 5:
number(n,p);
break;
case 6:
maxAndMin(n,p);
break;
case 7:
oddAndEven(n,p);
break;
case 8:
prime(n,p);
break;
case 9:
find(n,p);
break;
}
}
free(a);
}
//程序主题区