C言語だとコンパイルエラー(ポインタの使い方がよろしくない...?)
Always I am indebted.
Rubyでは期待通りの出力できたのですが、C言語では考え通りにはならないです。
Rubyで作成したものと、C言語で作成したものを
下記の通り添付致しますので、ご確認の程よろしくお願い致します。
ーーーーーーーーーーーーーーーーーーーーーーーーー
■問題
setup i a ・・・ 変数iに値 a を代入する (i=1,2)
addition a・・・ 変数1の値 +a を計算し、計算結果を変数 2 に代入する
subtract a・・・ 変数1の値 -a を計算し、計算結果を変数 2 に代入する
■入力例
4
setup 1 20
setup 2 40
addition 40
subtract -20
■期待出力例
20
40
ーーーーーーーーーーーーーーーーーーーーーーーーー
Ruby
t = gets.to_i
a=0,0
t.times{
ary = gets.chomp.split(' ')
if ary[0] == "setup"
s = ary[1].to_i
n = ary[2].to_i
a[s-1] = n
elsif ary[0] == "addition"
x = ary[1].to_i
a[1] = a[0] + x
elsif ary[0] == "subtract"
y = ary[1].to_i
a[1] = a[0] - y
end
}
puts a.join(' ')
C
#include<stdio.h>
#include <string.h>
int main(void){
char ary[3];
int a[2];
char t;
scanf("%s",&t);
for(int j=0; j<t; j++) {
if(strcmp(t,"setup")==0) {
int s = ary[1];
int n = ary[2];
n = a[s-1];
}
else if(strcmp(t,"addition")==0) {
int x = ary[1];
a[1] =(a[0] + x);
}
else if(strcmp(t,"subtract")==0) {
int y = ary[1];
a[1] =(a[0] - y);
}
}
printf("%d\n",a);
return 0;
}