合ってるのか合ってないのか。C言語
これで正解なのかどうなのか・・・
関数sub()を作ってプログラムを完成させよ。
この関数は、第1引数で与えられた引数の配列の要素の、
第2引数から第3引数までの要素の合計の値を返すものである。
例えば、0と0を入力したら結果は1、3と4を入力したら、16となる
ものである。
main内部のfprintf文のxxxxxxxxxxxxxxxxxxxxxxxxの部分には、
エラーの意味が分かるようにエラーメッセージを書いておくこと。
0と0入力したら2だと思うのですが、これは問題のミスでしょうか
コード↓
#include <stdio.h>
#include <stdlib.h>
#define BUFMAX 12
int sub(int [],int,int);
int
main()
{
int a[BUFMAX], start, end;
a[0] = 1;
a[1] = 3;
a[2] = 5;
a[3] = 7;
a[4] = 9;
a[5] = 11;
a[6] = 2;
a[7] = 4;
a[8] = 6;
a[9] = 8;
a[10] = 10;
a[11] = 12;
scanf("%d", &start);
scanf("%d", &end);
if (start < 0 || start >= BUFMAX) {
fprintf(stderr, "start no atai ga okasii desu.\n");
exit(1);
}
if (end < 0 || end >= BUFMAX) {
fprintf(stderr, "end no atai ga okasii desu.\n");
exit(1);
}
if (end < start) {
//fprintf(stderr, "xxxxxxxxxxxxxxxxxxxxxxxxxxx.\n");
fprintf(stderr,"start ga end yori ookii no de error desu.\n");
exit(1);
}
printf("%d\n", sub(a, start, end));
exit(0);
}
int
sub(int a[],int start,int end)
{
int i,atai;
for(i=0;i<BUFMAX;i++)
{
atai = a[start]+a[end];
}
return atai;
}