わかりません助けて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
るいず

わかりません助けて

#1

投稿記事 by るいず » 7年前

#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;
}
がどこがちがうかわかりません教えてください

アバター
てんむすキツネ
記事: 88
登録日時: 9年前
住所: 岡山

Re: わかりません助けて

#2

投稿記事 by てんむすキツネ » 7年前

まずインデントはきちんとしてください。
それとコードタグで囲んでください。

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

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

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

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

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

コード:

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

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

box
記事: 1746
登録日時: 9年前

Re: わかりません助けて

#3

投稿記事 by box » 7年前

天紆 狐 さんが書きました: まずmain()が見当たりませんが。
ありますよ。よ~く見直してください。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

ホヅミ
記事: 110
登録日時: 9年前

Re: わかりません助けて

#4

投稿記事 by ホヅミ » 7年前

とりあえずコンパイルエラーが出ないようにはしてみました。
ですが、これからどうしたいかはるいずさん次第です。
たぶんこのプログラムでもるいずさんが欲しがっている結果ではないはずです。
とりあえずフォーラムを一度読んでから詳しいことを追記してください。

コード:

#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];
}

閉鎖

“C言語何でも質問掲示板” へ戻る