ページ 11

わかりません助けて

Posted: 2012年10月29日(月) 02:00
by るいず
#include<stdio.h>
{
#define N // 配列の要素数
printf("要素数を入力してください:")
scanf("%d,&N");
}

void make_IArry(int a[],int b[]);
int main (void){
int a[N];
int b[N];
int i;
make_IArry(a,b);
for(i=0;i<N;i++){
printf("a[%d]=%d\tb[%d]=%d\n",i,a,b);
}
return 0;
}
void make_IArry(int a[],int b[]){
int i;
for(i=0;i<N;i++)b=a;
}
がどこがちがうかわかりません教えてください

Re: わかりません助けて

Posted: 2012年10月29日(月) 06:19
by てんむすキツネ
まずインデントはきちんとしてください。
それとコードタグで囲んでください。

どういう処理をしているのか、
また何がどのようにわからないのか
どんな結果を望んでいるのか
どんなエラーがでたのか
教えてくださらないと分かりません。

一度フォーラムルールを読んでください。

まずmain()が見当たりませんが。

make_IArryはmainでいいと思います。

あとmake_IArry()の中でmake_IArry()を呼び出しているのは何故でしょうか。
make_IArry()の宣言までしていますよね。
基本関数内で関数の定義はしない(というかできない)かと。
それに同じ名前、同じ引数の関数は作れません。
するのならmake_lArry2とかにしてください。

コード:

#define N // 配列の要素数
printf("要素数を入力してください:")
scanf("%d,&N");
この部分をなぜわざわざmainの外に書いたのでしょうか?

まずは関数について勉強しなおした方がいいと思います。

Re: わかりません助けて

Posted: 2012年10月29日(月) 07:06
by box
天紆 狐 さんが書きました: まずmain()が見当たりませんが。
ありますよ。よ~く見直してください。

Re: わかりません助けて

Posted: 2012年10月29日(月) 08:58
by ホヅミ
とりあえずコンパイルエラーが出ないようにはしてみました。
ですが、これからどうしたいかはるいずさん次第です。
たぶんこのプログラムでもるいずさんが欲しがっている結果ではないはずです。
とりあえずフォーラムを一度読んでから詳しいことを追記してください。

コード:

#include<stdio.h>
#include <stdlib.h>

int N; // 配列の要素数

void make_IArry(int a[],int b[]);
int main (void){
	int *a;
	int *b;
	int i;

	printf("要素数を入力してください:");
	scanf("%d",&N);

	a=(int *)malloc(sizeof(int)*N);
	b=(int *)malloc(sizeof(int)*N);
	
	make_IArry(a,b);
	for(i=0;i<N;i++){
		printf("a[%d]=%d\tb[%d]=%d\n",i,a[i],i,b[i]);
	}
	free(a);
	free(b);
	return 0;
}

void make_IArry(int a[],int b[]){
	int i;
	for(i=0;i<N;i++)
		b[i]=a[i];
}