| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 595 人关注过本帖
标题:菜鸟问题:关于数组
取消只看楼主 加入收藏
samhu
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-17
收藏
 问题点数:0 回复次数:2 
菜鸟问题:关于数组

各位大虾请帮帮手:以下程序想要在数组被赋值后再次清除为各元素为零,但没有成功。其结果是函数clearArray 和initArray(y,SIZE,0)均没有改变数组的内容。

请教问题出在哪里?多谢

#include <stdio.h>

#define SIZE 50
int x[SIZE];
int y[SIZE];

int i;

void initArray(int ar[],int size,int n);
void clearArray(int ar[],int size);
void printArray(int ar[],int size);
void copyArray(void);

int main()
{

printf("The initial array1 is :\n");
initArray(x,SIZE,4);
printArray(x,SIZE);

copyArray();
printArray(y,SIZE);
clearArray(y,SIZE);
printArray(y,SIZE);

for(i=0;i<SIZE;i+=1)
y=0;
printArray(y,SIZE);

initArray(y,SIZE,0);
printArray(y,SIZE);

getchar();
return 0;
}

void initArray(int ar[],int size,int n)
{
for(i=0;i<size;i++)
{
ar=i*n;
}
}
void clearArray(int ar[],int size)
{
for(i=0;i<size;i++)
{
ar=0;

}
}

void printArray(int ar[],int size)
{
printf("%4d\t%4d\t%4d\t%4d\t%4d\n",1,2,3,4,5);
printf("---------------------------------------\n");
for(i=1;i<=SIZE;i++)
{
printf("%4d\t",x[i-1]);
if(i>0 && (i%5==0))
printf("%c",'\n');
}
printf("---------------------------------------\n");
}

void copyArray(void)
{

for(i=0;i<SIZE;i++)
y=x;
}

搜索更多相关主题的帖子: int void The initArray 
2006-11-17 17:01
samhu
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-17
收藏
得分:0 
重发:菜鸟求救:关于数组

--重发,先前发的有错误:

各位大虾请帮帮手:以下程序想要在数组被赋值后再次清除为各元素为零,但没有成功。其结果是函数clearArray 和initArray(y,SIZE,0)均没有改变数组的内容。

请教问题出在哪里?多谢

#include <stdio.h>

#define SIZE 50
int x[SIZE];
int y[SIZE];

int i;

void initArray(int ar[],int size,int n);
void clearArray(int ar[],int size);
void printArray(int ar[],int size);
void copyArray(void);

int main()
{

printf("The initial array1 is :\n");
initArray(x,SIZE,4);
printArray(x,SIZE);

copyArray();
printArray(y,SIZE);
clearArray(y,SIZE);
printArray(y,SIZE);

for(i=0;i<SIZE;i+=1)
y[i]=0;
printArray(y,SIZE);

initArray(y,SIZE,0);
printArray(y,SIZE);

getchar();
return 0;
}

void initArray(int ar[],int size,int n)
{
for(i=0;i<size;i++)
{
ar[i]=i*n;
}
}
void clearArray(int ar[],int size)
{
for(i=0;i<size;i++)
{
ar[i]=0;

}
}

void printArray(int ar[],int size)
{
printf("%4d\t%4d\t%4d\t%4d\t%4d\n",1,2,3,4,5);
printf("---------------------------------------\n");
for(i=1;i<=SIZE;i++)
{
printf("%4d\t",x[i-1]);
if(i>0 && (i%5==0))
printf("%c",'\n');
}
printf("---------------------------------------\n");
}

void copyArray(void)
{

for(i=0;i<SIZE;i++)
y[i]=x[i];
}

2006-11-17 17:05
samhu
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-17
收藏
得分:0 

多谢。我明白有几个地方是重复的功能,原因是我用cleanArray 和 inintArray(y,SIZE,0)两种办法均不能改变数组的内容时,误以为数组竟然按值传递,所以在main 中又测试了一次,哪知道还是不成功。

原来这一切都是printArray的错,我也太粗心了。

再次感谢!!

Sam

2006-11-18 08:54
快速回复:菜鸟问题:关于数组
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083082 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved