c
1#include <stdio.h> 2 3 int komikomi( int *a){ 4 int *b=(int)(*a*1.1); 5 if(*b<10000){ 6 7 8 return b; 9 10 }else{ 11 12 13 return 100*(*b / 100) ; 14 } 15 } 16 17 int main(){ 18 int a[5]={120,7200,9280,12580,21940},i; 19 for(i=0;i<5;i+1){ 20 komikomi(&a[5]); 21 printf("%d\n",[5]); 22 } 23 return 0; 24 25 } 26 27
コンパイル結果↓
clang-7 -pthread -lm -o main main.c main.c:4:11: warning: incompatible integer to pointer conversion initializing 'int *' with an expression of type 'int' [-Wint-conversion] int *b=(int)(*a*1.1); ^ ~~~~~~~~~~~~~ main.c:8:10: warning: incompatible pointer to integer conversion returning 'int *' from a function with result type 'int'; dereference with * [-Wint-conversion] return b; ^ * main.c:21:19: error: expected expression printf("%d\n",[5]); ^ main.c:19:18: warning: expression result unused [-Wunused-value] for(i=0;i<5;i+1){ ~^~ 3 warnings and 1 error generated. compiler exit status 1
目標とするコンパイル結果↓
132 7920 10200 13700 241300
税抜きの値段を記入すると税込みの値段を戻してくれる関数komikomiを作り、実際に使いたいと考えました。その際、値渡しではなく、参照渡しで行いたいと考えました。一応自分で組んでみたのはいいのですが、エラーや警告がたくさん出てきてしまいました。自分は初心者のため、エラーや警告の内容がいまいち理解できていません。そのためエラーの内容と警告の内容を日本語で教えていただけるとありがたいです。もしかしたら、エラー警告を直したとしても目標となるコンパイル結果にならない可能性がありますので、できるのならば目標とするコンパイル結果となるように手直ししたコードを付け加えていただくと助かります。
回答3件
あなたの回答
tips
プレビュー