十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如下提示供参考:
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的建华网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
int ddata[20] 是 scanfArr 函数内部定义的,是 局部变量,上面 arr = ddata,导致 scanf 输入的数组元素会保存到 局部变量 数组中,并无意义。
从问题描述,提供以下代码供参考:
#includestdio.h
void scanfArr(int *arr,int n)
{
int i;
printf("请输入5个数(以回车键结束):\n");
for(i=0; in; i++,arr++)
scanf("%d",arr);
}
void main()
{
int i, ddata[5];
scanfArr(ddata,5);
printf("输入的数组如下:\n");
for(i=0;i5;i++)
{
printf("[%d] : %d\n",i, ddata[i]);
}
}
运行截图:
/* 看样子你还没有入门呀。问题分析在注释中了。 */
// 分析: 依照提示 按部就班
#includestdio.h
#includestdlib.h
#define maxn 10
void swap(int *a, int *b) //② 定义一个交换指针值的过程(swap);
{
int *temp;
temp=(int *)malloc(sizeof(int *)); //这里的temp指针不需要分配空间。
temp=a; //temp的值在相应内存释放前被改变了,那么上一步申请的内存将成为僵尸内存。
a=b;
b=temp;
free(temp); //前面已经把a的值赋给temp了,这里实际是释放a所指的空间,而这里你是无法知道a是不是动态分配的内存,因此程序不能写成这样。
return ;
}
void print(int *A[] ) //③ 定义一个打印过程(print);
{
int i;
for(i=0;i=maxn-1;i++)
printf("%d\n",*A[i]); //A[i]是个指针,最好用 printf("0x%p\n", A[i]);
return ;
}
void fuzhi(int b[],int *a[] ) //④ 定义过程(int)将数组b的值赋给a数组各元素所指向的各存储单元。
{
int i;
for(i=0;i=maxn-1;i++)
{
*a[i]=b[i];
}
return ;
}
void pixu(int *a[])//⑤ 过程pixu用交换指针值的方式,按a数组所指向的存储单元内容值从小到大地调整各元素指针值,实现"指针"排序;
{
int i;
int j;
for(i=0;i=maxn-2;i++)
{
for(j=i+1;j=maxn-1;j++)
{
if(*a[j]*a[i])
swap(a[j],a[i]);
}
}
return ;
} //这段代码似乎达不到排序效果吧,排序一般用递归来做比较好。找个快速排序的源代码看看理解一下吧。
int main()
{
int *a[maxn];
int b[maxn];
int i;
for(i=0;i=maxn-1;i++)
b[i]=(maxn-1)-i;
fuzhi(b[maxn],*a[maxn]);
pixu(*a[maxn]);
print(*a[maxn]);
return 0;
}
import java.util.Scanner;
public class MaxMin{
public static void main(String[]args){
Scanner scan=new Scanner(System.in);
System.out.println("输入数组的长度:");
int count=scan.nextInt();
System.out.println("输出数组的"+count+"个数:");
int[]arr=new int[count];
for(int i=0;ilt;arr.length;i++){
arri=scan.nextInt();
}
System.out.println("输出数组:");
for(int i=0;ilt;arr.length;i++){
System.out.print(arri+"\t");
}
int max=Integer.MIN_VALUE;
int min=Integer.MAX_VALUE;
for(int i=0;ilt;arr.length;i++){
if(arrigt;max){//求出最大值
max=arri;
}
if(arrilt;min){//求出最小值
min=arri;
}
}
System.out.println("\n最大值:"+max);
System.out.println("最小值:"+min);
}
}
扩展资料:
system函数用法:int system(char*command);
system函数已经被收录在标准c库中,可以直接调用
程序例:
#includelt;stdlib.hgt;
#includelt;stdio.hgt;
int main(void)
{
printf("About to spawn and run a DOS command\n");
system("dir");
return 0;
}
又如:system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。
例如,用system("color 0A");其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:
0=黑色1=蓝色2=绿色3=湖蓝色4=红色5=紫色6=黄色7=白色8=灰色9=淡蓝色A=淡绿色B=淡浅绿色C=淡红色D=淡紫色E=淡黄色F=亮白色
(注意:Microsoft Visual C++6.0支持system)