>>894 お前の世界じゃ0が2の倍数じゃないらしいな。
っつか、0もおkなら単純に偶数のみの足し算をしろ
といった出題でええやん・・・やっぱ下二桁の積で0は抜かせってことじゃね?
って、10の位が2だったら1の位が奇数でもええんやね・・・俺もうだめぽ
サッカーの試合まで寝るっすw
903 :
837:2006/07/04(火) 21:55:40
>>857 ありがとうございます!
やっぱりあきらめきれなくてまたきちゃいました…
すみませんが、
while,printf,scanf,if,elseを使った式だけでできないものでしょうか?
FILE* fp;
char buf[128];
fp = stdin;
while (fgets(buf, sizeof buf, fp) != NULL) {
atoi(buf);
return 0;
↑このようなものを使ったことがないのでわからないんです…
注文がおおくてすみません!
長くなってもかまわないのでよろしくお願いします。
const,cher,label,for,return,
int grade[5] = {0};
>>897 どうでもいいけど気になったこと。
char input[20];
…
scanf("%s",&input); ←'&'イラネ
for文を使った初期化処理
→ memset(v,0,sizeof(v));で一発。
if(max == 4){ return 2; } else{ return 0; } みたいな処理
→ 条件演算子を使うと見やすい。 return (max == 4)? 2:0;
>>903 #include <stdio.h>
int main()
{
int score;
int grade[5] = {0};
char *title[5] = {"秀:", "優:", "良:", "可:", "不可:"};
int i, j;
while (scanf("%d", &score) != EOF) {
if (score >= 90) grade[0]++;
else if (score >= 80) grade[1]++;
else if (score >= 70) grade[2]++;
else if (score >= 60) grade[3]++;
else grade[4]++;
}
i = 0;
while (i < 5) {
printf("%s", title[i]);
j = 0;
while (j < grade[i]) {
printf("*");
j++;
}
printf("\n");
i++;
}
}
908 :
903:2006/07/04(火) 22:20:51
>>907 何度もすみません!ありがとうございます!
質問があります!
char *title[5] と grade[1]++; はどういう意味でしょうか?
909 :
903:2006/07/04(火) 22:23:51
すみません。あと、
EOFとif文の後にgrade[0]++; をつけるのがよくわかりません…。
char *title = "aaa" → titleはキャラのポインタ
char *title[5] = ... → titleはキャラのポインタの配列(要素数5)
grade[1]++ → grade[1] = grade[1] + 1と同じ。
>>903 黙ってそのまま提出するか、それが嫌ならCの勉強をしてください。
912 :
912:2006/07/04(火) 22:29:37
どうしてもわからないので質問させてください。
VC2005で以下のコードを入力して、実行すると結果がおかしいような気がする。
もし理由があれば教えてほしいのですが・・・
#include <stdio.h>
#include <time.h>
void main()
{
int i=1;
time_t t1,t2;
time(&t1);//表示前の秒数を格納
while(i<=5000){
printf("%d,",i++);
}
time(&t2);
printf("\ntime1=%ld\n",t1);//time_tはlong型なので%ld
printf("\ntime2=%ld\n",t2);//time_tはlong型なので%ld
printf_s(" %ld %ld ", t1 , t2 );//time_tはlong型なので%ld
printf("かかった時間は、%d秒です。\n",t2-t1);
}
・実行結果の最後
time1=1152019127
time2=1152019127
1152019127 0 かかった時間は、0秒です。
↑ここがなんで0なのかがわからないtime2の値が入ると思っていたのだけど。
913 :
デフォルトの名無しさん:2006/07/04(火) 22:32:57
1152019127-1152019127=0
915 :
912:2006/07/04(火) 22:34:55
0秒の左側の0のことです。
説明がおかしくてすみません。
>>912 //time_tはlong型なので%ld
この前提がおかしい。VC2005ではtime_tは__int64型。
なので、
printf_s(" %lld %lld ", t1 , t2 );//time_tは__int64型なので%lld
こうしなければならない。
もっとも、環境依存を減らすための time_t なんだから、
printf(" %ld %ld ", (long)t1 , (long)t2 );
このように明示的にキャストするのがベター。
918 :
917:2006/07/04(火) 22:51:35
もし「time_tはlong型」をお題目のように教えている教科書だったら糞なので窓から投げ捨てろ。
教授だったらテキトーに合わせた上で見限れ。
919 :
912:2006/07/04(火) 22:53:15
>>917 ありがとうございます。
C言語初心者なもので・・・
助かりました!
>>912 スレ違いだけど・・・
確かにやってみたら、0になるね。printfでも0が表示された。
VC6で試してみたら(printfで)、正しく表示された。
なんだろね?Visual Studio 2005スレか、C/C++室スレで聞いてみたら?
921 :
903:2006/07/04(火) 22:55:21
>>910 ありがとうございます!
>>911 何度も付き合ってくださってありがとうございました!
もっと勉強したいと思います!
助かりました!本当にありがとうございました!
922 :
920:2006/07/04(火) 22:55:44
書き込んでいる間に解答が orz
923 :
デフォルトの名無しさん:2006/07/04(火) 22:58:24
>>916 もうちょっとしたら習うのかもしれないけど、その元プログラム、根本的に
おかしいから気をつけてね。
exit(0)とexit(1)ってどう違うの?
ど素人な質問で申し訳ない
>>926 元がこんなソースだったので多分教授が間違えたのかも…
できれば
>>916の問題よろしくお願いします。
>>927 いや、そういう話じゃない。
どのようなカリキュラムで、どの時点で
>>916が出てきたのかわからないけど、
正しいお作法としては、親プロセスは勝手に終了してはいけないってこと。
この先waitの話が出てこなかったら、この話を思い出してくれ。
ん?あってんじゃないの?exit(0)してるのは子プロセスだよ。
なんか最近、問題にケチつけたり、余計な講釈垂れる奴多いな。
そういうのいらないから。答えないんだったら、黙ってて。
好きにさせておけばいいじゃん
なんとかは放置に限るんじゃなかったっけ
荒らしを完全無視できる俺は神?
936 :
924:2006/07/04(火) 23:54:28
えっと、そういう話じゃなくて・・・。
step1を子プロセス1で、step2を子プロセス2で計算させて、
その結果を親プロセスでさらに計算するってことでしょ。(これが違うのか?)
だとしたら、子プロセスはなんらかの方法で親プロセスに結果を返さないと
いけないんだけど、子プロセス1はなにもせずにexit(0)で終了してるでしょ。
それがおかしいってこと。
exitで計算結果を返すという手もあるけど、exit(0)してるから、それも出来ない。
というわけで、俺には解答不能です。
937 :
デフォルトの名無しさん:2006/07/05(水) 00:00:53
[1] 授業:プログラミング演習
[2] 問題文:
・100個のノードを生成する
・ノードに重みを適当に点ける(1〜100)
・任意のノードペアを選び、重みの和を取り、重みの和が100以上のノードペアにリンクを張る
・それぞれのノードの持つリンクの数を計算する
・リンクの数の分布
(リンクが1つ・・・○○、リンクが2つ・・・○○、・・・みたいな)
[3] 環境:[Windows XP Borland C++ Compiler 5.5(BCC Developer) C言語
[4] 期限:早目がうれしいです
[5] その他の制限:講義自体が酷いので独学で進めていますがさっぱりです
>>936 多分、件の教授は、スレッドと間違えたんだよw
939 :
デフォルトの名無しさん:2006/07/05(水) 00:08:37
[1]プログラミングA
[2]問題文(含コード&リンク):次のアルファベットのキーワードを入力して計算する関数電卓プログラムを作成しなさい。
sin, cos, tan, arcsin, arccos, arctan, ln, log, exp, squr, rad, deg, end
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語:C++
[4]期限 7月6日
[5]特になし
どうぞよろしくお願いします。
940 :
920:2006/07/05(水) 00:12:04
942 :
デフォルトの名無しさん:2006/07/05(水) 00:15:35
>>941
6月の中旬くらいです。
945 :
デフォルトの名無しさん:2006/07/05(水) 00:19:58
お願いします
【質問テンプレ】
[1] 授業単元:基本プログラミング
[2] 問題文(含コード&リンク): 角度(0度以上180度以下)と計算すべき項数を引数として、正弦値の値を近似する関数を宣言し、入力した角度に対し、指定した項数に対する近似値を出力するプログラムを作成せよ。
角度に0未満もしくは180より大きい数が入力されたときに終了する。
角度は、近似の関数内でラジアンに変換すること。出力はmain関数で行うこと。
(実行例)
Input degree(0<=degree<=180):30
Input n:5
sin30=0.5
Input degree(0<=degree<=180):30
Input n:1
sin30=0.523598
Input degree(0<=degree<=180):30
Input n:2
sin30=0.499674
Input degree(0<=degree<=180):45
Input n:10
sin30=0.707106
Input degree(0<=degree<=180):-1
[3] 環境
[3.1] OS:UNIX
[3.3] 言語:C++
[4] 期限:明後日
[5] その他の制限:if,for,whileなどまでやりました