ソースコードです。ポインタがよく分かりません。
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void print(int *data, int num);
int get(int *data, int num, int index);
int sum(int *data, int num);
int *reverse(int *data, int num);
void print(int *data, int num)
{
int i;
for (i = 0; i < num; i++)
{
printf(" %d", *(data + i));
}
printf("\n");
}
int get(int *data, int num, int index)
{
if(index<num && index>=0)
{
return data[index];
}
else
{
return -1;
}
}
int sum(int data, int num)
{
if(num>0)
{
int i; int sum=0;
for(i = 0; i < num; i++)
{
sum=(data[i]+sum);
}
}
else if(num==0)
{
return 0;
}
else
{
return -1;
}
}
エラーが出たなら、エラーメッセージを提示しましょう
エラーメッセージは、よけいな省略翻訳しないで出たそのママをコピペで提示してください
prog2-2.c: In function 'sum':
prog2-2.c:46:17: error: invalid type argument of unary '*' (have 'int')
46 | sum=*(data[i]+sum);
| ^~~~~~~~~~~~~~
prog2-2.c: In function 'reverse':
prog2-2.c:61:8: error: 'index' undeclared (first use in this function)
61 | if(index<num && index>0)
| ^~~~~
prog2-2.c:61:8: note: each undeclared identifier is reported only once for each function it appears in
prog2-2.c:71:16: warning: returning 'int' from a function with return type 'int *' makes pointer from integer without a cast [-Wint-conversion]
71 | return -1;
| ^
In file included from prog2-2.c:9:
prog2-2.c: In function 'test2':
prog2-2.c:92:5: error: expected expression before ')' token
92 | assert()
| ^~~~~~
prog2-2.c:93:1: error: expected ';' before '}' token
93 | }
| ^
これがエラーコードです。
質問文は編集できるんで、そっちの方に追記しましょう
回答1件
あなたの回答
tips
プレビュー