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

わんくま同盟

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

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


(過去ログ 150 を表示中)
■87657 / )  プログラミングについて
□投稿者/ gp (1回)-(2018/06/15(Fri) 19:01:34)

分類:[C#] 

#include <stdio.h>
#define LENGTH 7

/* 要素数がnのintの配列vに含まれるintの和(nが1未満の場合は0)を返す */
int sum(const int v[], int n)
{
}

/* 要素数がnのintの配列vにintの値aが含まれる場合はその位置(複数含まれる場合は任意の1つ)を返し,含まれない場合は-1を返す */
int contains(const int v[], int n, int a)
{
}

/* 要素数がnのintの配列vに含まれるintの値aの個数を返す */
int number(const int v[], int n, int a)
{

}

int main(void)
{
int i;
int x[LENGTH];

for (i = 0; i < LENGTH; i++) {
printf("x[%d] : ", i);
scanf("%d", &x[i]);
}
printf("sum(x, %d) = %d\n", LENGTH, sum(x, LENGTH));
printf("contains(x, %d, 3) = %d\n", LENGTH, contains(x, LENGTH, 3));
printf("number(x, %d, 3) = %d\n", LENGTH, number(x, LENGTH, 3));
return 0;
}

$ ./a.out
x[0] : 1
x[1] : 2
x[2] : 3
x[3] : 4
x[4] : 5
x[5] : 6
x[6] : 7
sum(x, 7) = 28
contains(x, 7, 3) = 2
number(x, 7, 3) = 1

上記のプログラムを下の結果になるように書き換えたいのですが何度やってもうまくいきません。ヒントややり方など教えていただければ幸いです。
下のやつは僕の回答です。ご指導よろしくお願いいたします。


#include <stdio.h>
#define LENGTH 7

/* 要素数がnのintの配列vに含まれるintの和(nが1未満の場合は0)を返す */
int sum(const int v[], int n)
{
int i;
int sum=0;
for(int i=0;i<=n;i++);
return sum;
}

/* 要素数がnのintの配列vにintの値aが含まれる場合はその位置(複数含まれる場合は任意の1つ)を返し,含まれない場合は-1を返す */
int contains(const int v[], int n, int a)
{
int i;
for(i=-1;i<n && a!=v[i+1];i++);
return i+1;
}

/* 要素数がnのintの配列vに含まれるintの値aの個数を返す */
int number(const int v[], int n, int a)
{
int n=0;
for(int i=0;i<n ;n+=(v[i++]==a));
return n;

}

int main(void)
{
int i;
int x[LENGTH];

for (i = 0; i < LENGTH; i++) {
printf("x[%d] : ", i);
scanf("%d", &x[i]);
}
printf("sum(x, %d) = %d\n", LENGTH, sum(x, LENGTH));
printf("contains(x, %d, 3) = %d\n", LENGTH, contains(x, LENGTH, 3));
printf("number(x, %d, 3) = %d\n", LENGTH, number(x, LENGTH, 3));
return 0;
}






返信 編集キー/


管理者用

- Child Tree -