また復習しててわからないことがあったので・・・

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
tovira

また復習しててわからないことがあったので・・・

#1

投稿記事 by tovira » 15年前

大学でもらったプリントの復習をやっています。またわからないことが二つあるので教えてもらえるとうれしいです。
一つ目ですが、lower_dec()を定義してそれぞれの桁の合計をもとめるというもので、自分なりにやってみた結果、エラーは出なかったのですが、警告が3つでました。プログラムは
#include <stdio.h>
void lower_dec(int n)
{

n = n%10;

}

int main(void)
{
int z,n,ans;
printf("正の値を入力してください。");
scanf("%d",&n);
while(1){
z = n;
lower_dec(n);
ans = n;
n=(double)z/10;
n=(int)n;
}


printf("それぞれの桁の値の合計は%dです。\n",ans);
return 0;
}
です。これが自分で書いたものですが、警告が出てしまいます。警告の内容は
5: 'n' に代入した値は使われていない(関数 lower_dec)
23: 実行されないコード(関数 main )
17: 'ans' に代入した値は使われていない(関数 main )
の三つです。教えてもらえるとうれしいです。
もう一つは

#include <stdio.h>
int total_mat(int mat[/url])
{
int i;
int sum = 0;

for(i=0;i<6;i++)
sum += mat;

return( sum );
}
int main(void)
{
int va[6] = {0};
int j;
double ans ;
for(j=0;j<6;j++){
printf("整数%d:",j+1);
scanf("%d",&va[j]);
}

ans=(double)total_mat(va)/6;

printf("それらの平均値は%fです。\n",ans);

return 0;
}
平均を求めるプログラムなのですが、私はint total_mat(int mat[/url])の部分がよくわからないのです。というのはvoid関数は良く知っています。void putschar(int n1)みたいなものです。なのでなぜvoidではなく、int total_mat(int mat[/url])なのかが不思議です。voidの場合とintの場合の使い分けがわかるように説明してもらえるとうれしいです。
以上です、お願いします。

non

Re:また復習しててわからないことがあったので・・・

#2

投稿記事 by non » 15年前

最初の警告について
>5: 'n' に代入した値は使われていない(関数 lower_dec)
関数で計算した値が、呼び出し側に反映されないから。

>23: 実行されないコード(関数 main )
whileが永久ループのため、実行されない。

>17: 'ans' に代入した値は使われていない(関数 main )
上記理由により、実行されない。

non

Re:また復習しててわからないことがあったので・・・

#3

投稿記事 by non » 15年前

2つめ
>void putschar(int n1)みたいなものです。
この関数は私は知らない。どんな関数ですか?

仮にputcharと誤入力したとしても、
int putchar(int c) のはず。

sizuma

Re:また復習しててわからないことがあったので・・・

#4

投稿記事 by sizuma » 15年前

先ほどまずは規約を読みなさい、とかかれてましたよね。
なぜ読まないのですか?

とりあえずぺたっと。
・ ソースコードは< pre>と< /pre>のタグで囲んでください
詳しくはこの掲示板の使い方をご覧ください→ http://dixq.net/board/board.html

見たところ全然授業内容を理解していないようなので、もう一度最初の講義のプリントからの復習をした方がいいと僕は思います。 画像

MNS

Re:また復習しててわからないことがあったので・・・

#5

投稿記事 by MNS » 15年前

>なぜvoidではなく、int total_mat(int mat[/url])なのかが不思議です。
return文で、int型の変数を返しているからです。
詳しくは、wikipedia(http://ja.wikipedia.org/wiki/Return%E6%96%87)や、
その他C/C++入門サイトなどで学んでみてください。

たかぎ

Re:また復習しててわからないことがあったので・・・

#6

投稿記事 by たかぎ » 15年前

> 先ほどまずは規約を読みなさい、とかかれてましたよね。
> なぜ読まないのですか?

もしかすると日本語がわからないのかもしれません。
ソースコードだけでなく、文章も(誰かが書いたものの)コピペの可能性があります。
留学生も多いので、十分あり得ることです。

さかまき

Re:また復習しててわからないことがあったので・・・

#7

投稿記事 by さかまき » 15年前

>もしかすると日本語がわからないのかもしれません。
>留学生も多いので、十分あり得ることです。

勤勉な留学生や日本かぶれした外国人のほうが余程、美しい日本語を話されます。
最近は、日本人の話す日本語が「びみょう」に「ヤバイ」感じがします。

たかぎ

Re:また復習しててわからないことがあったので・・・

#8

投稿記事 by たかぎ » 15年前

> 勤勉な留学生や日本かぶれした外国人のほうが余程、美しい日本語を話されます。

そういう人ばかりではないですよ。
留学生の言語スキルは千差万別ですので、一概にはいえません。

閉鎖

“C言語何でも質問掲示板” へ戻る