C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: C言語の関数に配列を渡す方法についてです


(過去ログ 130 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■76949 / inTopicNo.1)  C言語の関数に配列を渡す方法についてです
  
□投稿者/ EDF (23回)-(2015/08/31(Mon) 13:26:17)

分類:[C/C++] 

使用言語はCです


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

void strrev(char s[]) {
	char temp = '\0';
	char *first = s;
	char *last = s;

	while (*(last + 1) != '\0') { last++; }

	while (first < last) {
		temp = *first;
		*first = *last;
		*last = temp;

		first++; last--;

	}
	return;
}

int max(int a, int b) { return a > b ? a : b; }

void moveup(int a[], int b[],int c[],int i) {
	c[i] = (a[i] + b[i]) % 10;
	c[i + 1] = (a[i] + b[i]) / 10;
	
}

int main(void) {
	int n, m;
	n = 0;
	char s1[100], s2[100];
	int d1[100], d2[100], sum[100];
	scanf("%s", s1);
	scanf("%s", s2);
	while (s1[n] != '\0'|| s2[n] != '\0')
		n++;
	if (n > 80)printf("overflow");
	strrev(s1); strrev(s2);
	for (m = 0; m <= n; m++) {
		d1[m] = atoi(&s1[m]);
		d2[m] = atoi(&s2[m]);
	}
	for (m = 0; m <= n; m++) {
		moveup(d1[],d2[],sum[], m);
	}

}

以下のソースコードでd1[] d2[] sum[] m をmoveup に渡したいのですが
式が必要ですと表示されコンパイルできません。
どうしたら渡せるのでしょうか

引用返信 編集キー/
■76952 / inTopicNo.2)  Re[1]: C言語の関数に配列を渡す方法についてです
□投稿者/ Hongliang (336回)-(2015/08/31(Mon) 14:43:41)
2015/08/31(Mon) 14:43:54 編集(投稿者)
配列を渡すという意味において、
> void strrev(char s[]) {> void moveup(int a[], int b[],int c[],int i) {
は同じですよね。
で、strrev関数の呼び出しは特にコンパイラに文句を言われていないのであるなら、
それに合わせた形にすればいいでしょう。

> char s1[100]
> strrev(s1);

> int d1[100], d2[100], sum[100];
> moveup(d1[],d2[],sum[], m);

// ほかにもツッコミどころが色々あるけど…

引用返信 編集キー/
■76963 / inTopicNo.3)  Re[2]: C言語の関数に配列を渡す方法についてです
□投稿者/ EDF (24回)-(2015/08/31(Mon) 21:17:46)
No76952 (Hongliang さん) に返信
単純な思い違いでした・・・ありがとうございます。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -