C/C++の宿題を片付け ..
[2ch|▼Menu]
136:デフォルトの名無しさん
08/02/10 03:21:16
>>134
エ じゃないかな

137:デフォルトの名無しさん
08/02/10 04:10:18
>>136
一つくらい自分でやらせようとしてたんだが…


138:デフォルトの名無しさん
08/02/10 04:12:39
入門書に確実に載ってる問題を質問するようなヤツが考えるわけもない
ググってもすぐ分かるというのに

139:デフォルトの名無しさん
08/02/10 10:34:58
すいませんm(_ _)m ありがとうございます。

(41)エ
(42)ウ
(43)イ
(44)ウ
(45)エ


これでOKでしょうか?



140:デフォルトの名無しさん
08/02/10 11:03:41
#include <stdio.h>
main()
{
char x[3][7] = {"first","second","third"};
char *z[3] = {"first","second","third"};
char **p;


p = z;
p++;
@ printf("%c\n",**p);
A printf("%s\n",*p+1);
B printf("%s\n",*(p+1)+1);

これだと xの要素数は21個で ポインタ配列zの要素数は19個
@ABのprintfの表示は @がs Aがecond Bがhird
でいいですかね?

141:デフォルトの名無しさん
08/02/10 11:35:41
>>123
これで合ってるのかな。srandがよくわからない。。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>140
合ってる


142:デフォルトの名無しさん
08/02/10 13:18:18
>ポインタ配列zの要素数は19個
3個だろ

143:54
08/02/10 15:24:52
答えてくれたみなさんありがとうございます!!
めっちゃかんしゃです。

144:デフォルトの名無しさん
08/02/10 15:38:46
度々大変すいませんm(_ _)m どなたか解答をお願いします。
プログラム

/*語尾変換プログラム*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int f_read(void);
int w_cnv(int ln);

#define CHRSIZE sizeof(char)

char str[20][(254 + 2)* CHRSIZE * 2 + sizeof(char)];

main()
{
int ln;
int i;
int cnt;

ln = f_read();
cnt = w_cnv(ln);
for(i=0;i<ln;i++) printf("%s",str[i]);
printf("\n文章中を%d件変換し、\n",cnt);
printf("文末を%d件付加しました。\n",ln);
}
/*ファイル入力*/
int f_read(void)
{
FILE *fp;

145:デフォルトの名無しさん
08/02/10 15:39:16
続き
char buf[256];
int cnt = 0;

if((fp = fopen("word.dat","r")) == NULL){
printf("入力ファイルがオープンできません\n");
exit(1);
}
while( (46) != NULL)
(47) ;
fclose(fp);
return(cnt);
}
/*変換*/
int w_cnv(int ln)
{
int i;
int cnt = 0;
char w_str[256];

for(i=0;i<ln;i++){
while( (48) != NULL){
strcpy(w_str,strstr(str[i],"な") + CHRSIZE * 2);
strcpy(strstr(str[i],"な"),"にゃ");
(49) ;
cnt++;
}
strcpy( (50) ,"にゃ\n");
}
return(cnt);
}

146:デフォルトの名無しさん
08/02/10 15:40:31
(46)の解答群
ア fgets(buf,255,fp) イ fgets(fp,buf,255) ウ fscanf("%s",buf,fp) エ fscanf(fp,"%s",buf)

(47)の解答群
ア strcpy(buf,str[cnt++]) イ strcpy(buf,str[cnt+1],buf) ウ strcpy(str[cnt++],buf) エ strcpy(str[cnt+1],buf)

(48)の解答群
ア strcat(str[i],"な") イ strchr(str[i],"な") ウ strcpy(str[i],"な") エ strstr(str[i],"な")

(49)の解答群
ア strcat(w_str,str[i]) イ strcat(str[i],w_str) ウ strcpy(w_str,str[i]) エ strcpy(str[i],w_str)

(50)の解答群
ア strchr(str[i],`\0') イ strchr(str[i],`\n') ウ strchr(w_str[i],`\0') エ strchr(w_str[i],`\n')

文中の「な」を「にゃ」に変換し、さらに文末の語尾に「にゃ」を付加して表示するプログラムです
(46)〜(50)の答はどうなりますかね?

147:デフォルトの名無しさん
08/02/10 16:16:12
>>146
うざいからうpロダ使ってくれないかな。

148:デフォルトの名無しさん
08/02/10 17:03:18
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]
環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C
[4] 期限:2月13日
[5] その他の制限:

前回は本当にありがとうございました。
今回もよろしくお願いいたします。


149:デフォルトの名無しさん
08/02/10 17:42:59
>>148
URLリンク(kansai2channeler.hp.infoseek.co.jp)

150:デフォルトの名無しさん
08/02/10 18:09:40
[1] 授業単元:パターン認識
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]
環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2月13日
[5] その他の制限:
動的計画法についての課題です。問題が図表付きなので圧縮しています。

151:デフォルトの名無しさん
08/02/10 20:25:53
>>149
ありがとうございました。

152:デフォルトの名無しさん
08/02/10 21:05:23
[1] 授業単元:プログラミング
[2] 問題文:入力された文字列を逆に並べて表示せよ(例:TOKYO→OYKOT)
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:Microsoft Visual C++ 2005 Express Edition
 [3.3] 言語:C
[4] 期限:2008年2月13日8:00まで
[5] その他の制限:#include <stdio.h>で使える命令のみ
            一次元配列のみ

153:デフォルトの名無しさん
08/02/10 21:10:05
[1]プログラミング
[2]時計の針2本がなす角(中学入試の算数問題でよく出題される問題)
問:キーボード上から時と分を入力し、その時間とそれを指す長針・短針
のなす角を求める。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] bcc32
 [3.3] 言語: C
[4] 期限: [2008年2月12日まで]
[5]その他の制限:
入力・計算・出力部分は必ず関数化し、mainの中でそれらを呼び出すようにする

なす角θを計算する部分は成功しましたが(そこまでの完成版はリンクしたプログ
ラムを参照)、キーボード上から入力した時間をうまく表示することができません。出力は、

??:?? なす角:??°

とします。どうか宜しくお願いします。

154:デフォルトの名無しさん
08/02/10 21:11:22
>>152
#include <stdio.h>

int main(void)
{
char *p, str[256];

scanf("%s", str);

p = str;

while(*p) p++;
while(p--!=str) putchar(*p);

return 0;
}


155:デフォルトの名無しさん
08/02/10 21:24:02
>>154
自分の技量不足で申し訳ありませんが質問してもよろしいでしょうか?
関数の*pの*は何か意味があるのでしょうか?

156:デフォルトの名無しさん
08/02/10 21:24:35
>>153
>>149

157:デフォルトの名無しさん
08/02/10 21:24:35
>>153
void output(int s, int t, double r1)
{
printf("%d:%d なす角:(%.1f)°\n", s, t, (double)r1);
}
にしてh1とm1渡すだけじゃね?

158:デフォルトの名無しさん
08/02/10 21:24:52
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Win XP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語: C
[4] 期限: 2008年2月12日午前7時00分
[5] その他の制限:色々な処理方法があるそうですが、
  なるべくレベルが低い方法でよろしくおねがいします。

159:デフォルトの名無しさん
08/02/10 21:27:27
>>155
間接参照。

160:デフォルトの名無しさん
08/02/10 21:30:03
>>159
ありがとうございます!

161:デフォルトの名無しさん
08/02/10 21:56:55
>>158
#include <stdio.h>

static int su[9], cnt;

void perm(int *a, int j){
    int i;
    if(j == 9){
        int x = 0, y = 0;
        for(i = 0; i < 6; i++) x = 10*x + a[i];
        for(i = 6; i < 9; i++) y = 10*y + a[i];
        if(x%y == 0){
            printf("%d / %d = %d\n", x, y, x/y);
            cnt++;
        }
        return;
    }
    for(i = 0; i < 9; i++)
        if(su[i] == 0){
            su[i] = 1;
            a[j] = i + 1;
            perm(a, j + 1);
            su[i] = 0;
        }
}

int main(void){
    int a[9];
    perm(a, 0);
    printf("合計パターン数 = %d\n", cnt);
    return 0;
}

162:デフォルトの名無しさん
08/02/10 22:35:42
>>158
URLリンク(kansai2channeler.hp.infoseek.co.jp)

163:デフォルトの名無しさん
08/02/10 23:00:27
>>144
>>145
>>146

ですが
解答はいかがでしょうか...

携帯からで見づらくて大変すいません...m(_ _)m



164:デフォルトの名無しさん
08/02/10 23:02:13
>>163
>>1

165:デフォルトの名無しさん
08/02/10 23:15:13
さすがに携帯にうpろだはきつくね?

166:デフォルトの名無しさん
08/02/10 23:15:22
153です。

157番さんのおっしゃる通りにしたら、「output関数における呼び出し時のパ
ラメータが足りない」というエラーが出ました。157番さんの通りにプログラム
を設計するなら、mainの中でoutputなどの各種呼び出しをどのようにすれば良い
のか教えて下さい。プログラミングの基本である自学自習を心掛けていますが
この呼び出し関数の設計などはあまり得意な方でないのでどうかお願いします。

167:123
08/02/10 23:15:37
>>141
ありがとうございます。実行してみたのですが生成される乱数が全て0になってしまいます。
srand関数を使って乱数の種を定めた時のプログラミング例を載せてみます。
URLリンク(kansai2channeler.hp.infoseek.co.jp) 
どうかお願いします。

168:デフォルトの名無しさん
08/02/10 23:35:33
>>166
お前どうやって>>153まで自分で出来たんだ?
得意じゃないってレベルじゃねーぞ
output(h1, m1, show1);

169:デフォルトの名無しさん
08/02/10 23:37:49
誰かの回答だろ

170:153
08/02/10 23:57:48
正直に言うと今までに扱った内容を参考にしながらでした。
それでも不足部分は沢山あるのでそれを補えるよう努力しなければと思い
ます。

ちなみにコンパイルできました。ありがとうございました。

171:デフォルトの名無しさん
08/02/11 00:13:35
質問!

エラーがでたわけではないのですが、VC++2003.NETで
ビットマップ画像をインポートして追加しようとしたのですが、
実行するとその画像が表示されません!
実行の際には画像が切り替わっている様子がうかがえるのですが、表示されないのです。
新規作成で追加するとちゃんと表示されるのですが・・。

どなたか原因分かる方いますか?

172:デフォルトの名無しさん
08/02/11 00:13:39
double→int→doubleとか意味不明なことしてるし、
設計を見直すべき。

173:デフォルトの名無しさん
08/02/11 00:17:52
>>146です

すいません 荒らしてしまって...

携帯からなんで うp無理みたいです...

なんかいろいろほんとすいませんでしたm(_ _)m



174:デフォルトの名無しさん
08/02/11 00:21:45
>>167
「10 動的に確保したメモリの解放」
これが抜けてる以外は問題なさそうだけど。

試しに実行してみたら、ちゃんと乱数生成されてるし。

175:デフォルトの名無しさん
08/02/11 00:30:32
>>174
pc環境とか関係するんですかね?とりあえず学内pcにファイルを移して実行してみます。
本当にありがとうございました。

176:50
08/02/11 00:30:47
>>65〜73、87の書込みをしてくださった方々
一番難しい課題Bを解いていただき、ありがとうございましたm(__)m


177:デフォルトの名無しさん
08/02/11 00:51:27
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual C++ 2005
 [3.3] 言語: C
[4] 期限: 2月13日
[5] その他の制限:特にありません


178:デフォルトの名無しさん
08/02/11 01:48:02
>>173
うpろだが使えないとしても、>>1読んでテンプレくらいは使って欲しいところ
まぁ推奨になってるからどうしてもテンプレは使いたくないってのなら止めないけど

179:デフォルトの名無しさん
08/02/11 11:21:06
>>144
>>145
>>146
携帯からの投稿自体 無理がありました すいませんでした...m(_ _)m

できれば解答をいただけると幸いです..



180:デフォルトの名無しさん
08/02/11 14:34:02
[1] 授業単元:
[2] 問題文:
 文字列を入力させ、それを表示するプログラムを作成せよ。
 ただし、文頭にaが入力された場合はそれを表示せず、
 数値が入力された場合はエラーとしてもう1度入力させること。

【実行例】
  入力=jgmttgad18j
 ※エラー※数値が入力されました。
 もう1度入力してください
  入力=aaaiaueokaki

  出力=iaueokaki

[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C++
[4] 期限:2008年2月11日22:00まで
[5] その他の制限:

先生が、ヒントで「フラグを使うとできるかも」といってました!

よろしくお願いします!

181:デフォルトの名無しさん
08/02/11 14:54:09
>>180
#include <iostream>
#include <string>
using namespace std;
int main()
{
while(1) {
cout << "入力=";
string s;
cin >> s;
if( s.find_first_of( "0123456789" ) == string::npos ) {
cout << "出力=" << s.substr( s.find_first_not_of( "a" ) ) << "\n";
break;
} else {
cout << "数値が含まれるので、再度入力してください。\n";
}
}
return 0;
}

182:デフォルトの名無しさん
08/02/11 18:40:08
>>180
#include <stdio.h>
#include <string.h>

int main(void)
{
char str[256];
int top;
printf("入力:");
start:
top=0;
fgets(str,256,stdin);
again0:
if(str[top]>=48&&str[top]<=57){
printf("再入力:");
goto start;
}
if(top++<strlen(str))goto again0;
top=0;
again1:
if(str[top]=='a'){
top++;
goto again1;
}
printf("出力:");
again2:
printf("%c",str[top++]);
if(str[top]!=NULL)goto again2;
return 0;
}

183:デフォルトの名無しさん
08/02/11 18:57:58
>>181
>>182
ありがとうございます!
できれば入力に
cin.getlineとか使うくらいの初歩のでもやってほしいんですが..(><)
入力だけでいくと
#include<iostream.h>

main()
{
char a[50] ;

cout<<"a=" ;
cin.getline(a,50) ;
}

こんな感じで・・
サーセン(・_・、)

184:デフォルトの名無しさん
08/02/11 19:38:23
>>180

#include <iostream>
#include <string>
#include <boost/regex.hpp>

int main() {
    while (true) {
        std::cout << "入力: ";
        std::string line;
        if (!std::getline(std::cin, line))
            break;
        boost::regex re_num("\\d+");
        if (boost::regex_search(line, re_num)) {
            std::cout << "※エラー※数値が入力されました" << std::endl;
            std::cout << "もう一度入力してください" << std::endl;
            continue;
        }
        boost::regex re_str("^a+");
        std::cout << "出力: "
            << boost::regex_replace(line, re_str, "") << std::endl;
        break;
    }
}

185:デフォルトの名無しさん
08/02/11 19:41:23
>>183
それなら>>180
cin >> s;

char sz[50]; cin.getline(sz,50); s=sz;
にすればいいが、
初歩というのは、もしかしてstringを使うなと言ってる?

186:デフォルトの名無しさん
08/02/11 19:46:40
>>184
>>185

ありがとうございます!!


stringをならってません(・_・、)
ごめんなさい↓

187:デフォルトの名無しさん
08/02/11 20:00:14
>>186
#include <iostream>
using namespace std;

bool hasDigit( const char* pstr )
{
while(*pstr) {
if( isdigit(*pstr) )
return true;
pstr ++;
}
return false;
}

int main()
{
while(1) {
cout << "入力=";
char sz[50];
cin.getline( sz, sizeof(sz) );
if( !hasDigit( sz ) ) {
char* p;
for( p=sz; *p=='a'; p++ );
cout << "出力=" << p << "\n";
break;
} else {
cout << "数値が含まれるので、再度入力してください。\n";
}
}
return 0;
}

188:デフォルトの名無しさん
08/02/11 22:32:23
[1] 授業単元: プログラム テスト
[2] 問題文 URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.3] 言語:C言語
[4] 期限: できれば、早いとありがたいです。


よろしくお願いいたします。



189:デフォルトの名無しさん
08/02/11 22:44:53
[1] 授業単元:プログラミング
[2] 問題文
四問あります
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: visual stdio
 [3.3] 言語: C
[4] 期限: 2月13日の昼まで

190:デフォルトの名無しさん
08/02/11 22:46:32
>>188
アウエイ
(50)は解なし。強いてあげればイか。

191:189
08/02/11 22:48:29
すいません
>>189には不備がありました

課題1には二つ問題があるのですが
一つtxtファイルが入ってません
それを書き直したものにしますので少々待っててください

192:デフォルトの名無しさん
08/02/11 22:58:36
[1] 授業単元:プログラミング
[2] 問題文
5問あります
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: visual stdio
 [3.3] 言語: C
[4] 期限: 2月13日の昼まで
[5]ご迷惑をおかけして申し訳ありません
  期限を13日としていますが出来ればなるべく早くお願いします

193:デフォルトの名無しさん
08/02/11 23:07:15
>>192
どれも最近見た気がするが、これって何処の課題なんだろ。
最後の二つは、ちょっと前に俺がうpしたから間違いない。

194:デフォルトの名無しさん
08/02/11 23:15:21
>>193
本当ですか
よろしければその解答を頂けないでしょうか

195:デフォルトの名無しさん
08/02/11 23:18:41
>>194
ちょっと前にうpしたって言ってるじゃん。
ホントに欲しけりゃ、スレから探して持っていけばいいさ。

196:デフォルトの名無しさん
08/02/11 23:30:16
>>195
ありがとうございます
4と5は解決しました

197:デフォルトの名無しさん
08/02/11 23:36:55
アイムジャグラーちっとも勝てません。なぜでしょうか?
URLリンク(www.borujoa.org)
↓参考ページ。
URLリンク(www.htv-net.ne.jp)

198:デフォルトの名無しさん
08/02/11 23:37:55
>>190さん
ありがとうございます。

まぁ結果的に2級は落ちましたが..

少しは勉強になったのでよかったです

皆さん いろいろ迷惑をかけましたがありがとうございましたm(_ _)m



199:デフォルトの名無しさん
08/02/11 23:40:13
試験の問題だったのか。
この程度だと、あんまり取る意味なさそうな気も。

200:デフォルトの名無しさん
08/02/12 00:09:02
>>199さん

確かにそうですよね..
C2級も取れないレベルなんて 俺ってなんなんだろう...

やっぱりバカなんだなぁ つくづく思います。

201:デフォルトの名無しさん
08/02/12 00:40:36
【質問テンプレ】 通りに書き込まなきゃいけないと思うんですが
眠くてやばいんで誰か解き方のだけ速攻教えてください。

C言語で123の数値を合計して6とするにはどうすればいいんでしょうか?



202:デフォルトの名無しさん
08/02/12 00:43:29
>>201
int sum=1+2+3;でおk

203:デフォルトの名無しさん
08/02/12 00:46:27
>>177
URLリンク(kansai2channeler.hp.infoseek.co.jp)

204:デフォルトの名無しさん
08/02/12 00:48:33
>>202
ありがとうございます。

その数値が入力されたものの場合はどうすればいいんでしょうか><

205:199
08/02/12 00:48:33
>>200
いやいや、この程度とは言ったけど、
これを全く勉強せずに解ける人なんて居ないよ。

資格としての意味は薄いにしても、
1つの通過点にするのはいいんじゃないかな。
目標があると励みやすいし。

でさ、本当に2級を取得するだけの力をつけたいんだったら、
このスレで解答を求めたりするんじゃなくて、
自分で試行錯誤して辿り着く方が為になると思うんだけどな。


スレ違いなんでこの辺で。

206:デフォルトの名無しさん
08/02/12 00:51:42
>>204
int sum = val / 100 + (val / 10) % 10 + val % 10;

207:デフォルトの名無しさん
08/02/12 00:52:05
入力された文字列をatoiで変換→数値を合計みたいな問題でやり方がわからないんでヒントもらいたいです。

説明不足でほんとすみません。

208:207
08/02/12 00:54:18
>>206

ありがとうございます。


209:デフォルトの名無しさん
08/02/12 00:54:19
情報を小出しにするな。

210:デフォルトの名無しさん
08/02/12 00:54:39
>>207
説明不足だと思うならちょっとくらい眠くてもテンプレに従えよ

211:デフォルトの名無しさん
08/02/12 00:54:57
>>207
int sum = (str[0] - '0') + (str[1] - '0') + (str[2] - '0');

212:207
08/02/12 00:55:23
>>206

ありがとうございます。


213:デフォルトの名無しさん
08/02/12 01:00:18
!!!!>211さん 眠気がとびました!
そっか atoiを絶対使うと思い込んでいたからできなかったのか><

'0'から引けば結果は数値と同じっすもんね・・・
本当にありがとうございました。


214:デフォルトの名無しさん
08/02/12 01:02:05
>>201 >>207
#include<stdio.h>
#include<stdlib.h>
int main(void){
char buf[16];
int n, sum = 0;
fgets( buf, 16, stdin );
n = atoi( buf );
while( n > 0 )
{
sum += n % 10;
n /= 10;
}
printf("%d\n",sum);
return 0;
}
多分こういうことがやりたいんだろうと思って答えてみる
間違っててもそれは質問の仕方が悪いと思う

215:デフォルトの名無しさん
08/02/12 01:09:38
150ですがどなたかお願いします・・・

216:デフォルトの名無しさん
08/02/12 01:16:23
>>161-162
ありがとうございます。助かりました。

217:デフォルトの名無しさん
08/02/12 03:07:47
>>150
どう表示したらいいか不明なので適当にやった
最小のものが見つかった時点で逐次表示

#include<stdio.h>
int main(void){
int cost[][4][3]={{{3,2,1},{2,3,3},{3,3,2},{0,2,0}},
{{1,1,2},{2,1,3},{3,1,2},{0,2,0}},
{{1,1,2},{1,2,3},{1,1,4},{0,3,0}},
{{3,0,0},{2,0,0},{2,0,0},{0,0,0}}},
c,cmin=9999,p,pmin=9999,x,y,i,k;
for(i=0;i<729;i++){//3^6=729
printf("(0,0)0");
for(k=i,c=p=x=y=0;x<3&&y<3;k/=3)
c+=cost[x][y][k%3],
p++,
x+=(k%3!=0),
y+=(k%3!=1),
printf("→(%d,%d)%d",x,y,c);
if(x==3&&y==3&&cmin>c)cmin=c,printf(" 最小コスト\n");
else if(x==3&&y==3&&pmin>p)pmin=p,printf(" 最短経路\n");
else printf("\r%79s\r","");
}
return 0;
}


218:デフォルトの名無しさん
08/02/12 15:32:39
>>192
課題1
#include <stdio.h>

int main(void)
{
bool exist[10000]={false,};
int temp,i=0,max,min,count=0;
FILE *fp=fopen("input8500.txt","r");
if(!fp) return 1;
while(!feof(fp)){
fscanf(fp,"%d ",&temp);
exist[temp]=true;
}
fclose(fp);
while(!exist[i++]);
min = i;
i = 9999;
while(!exist[i--]);
max = i;

for(i = 0; i < 10000;i++) if(exist[i])count++;
printf("count = %d\nmax - min = %d",count,max-min);
return 0;
}

219:デフォルトの名無しさん
08/02/12 15:38:30
>>192
課題2
#include <stdio.h>

int main(void)
{
int rank[11]={0,};
int temp,i,j;
FILE *fp=fopen("input_histo.txt","r");
if(!fp) return 1;
while(!feof(fp)){
fscanf(fp,"%d ",&temp);
rank[temp/10]++;
}
fclose(fp);

for(i=0;i<11;i++){
printf("\n%3d点台:",i*10);
for(j=0;j<rank[i];j++)printf("*");
}
return 0;
}

220:193
08/02/12 16:59:52
>>192
URLリンク(kansai2channeler.hp.infoseek.co.jp)
(1)〜(3)

221:デフォルトの名無しさん
08/02/12 20:27:04
>>218
>>219
>>220
皆さんありがとうございます
これでなんとかなりそうです><

222:デフォルトの名無しさん
08/02/12 21:21:05
先ほど質問スレで質問したのですが場違いだったようなので
こちらで質問したいと思います。

お時間がある方、ご協力いただけると幸いです。

先週からC言語について学び始めた高1です。
明日からプログラミングが学校の授業ではじまり
予習していたのですが、何度やっても思い通りの結果を表示できません

本当に基礎的な問題かも知れませんが、アドバイス、正答などいただけると幸いです。

1.5個の整数データを配列に代入し合計と平均を求めるプログラムをつくれ。
2.問1のデータの最大値を求めるプログラムをつくれ。
3.問1のデータを大きい順に並べ替えるプログラムをつくれ。

本当に程度の低い質問かもしれませんが
悩んでます><よろしくおねがいします。


223:デフォルトの名無しさん
08/02/12 21:24:37
>>1

224:デフォルトの名無しさん
08/02/12 22:06:18
>>222

#include <stdio.h>
int main(int argc, char **argv) {
static int array[5];
int i;
double sum=0.0;
if (argc==6)
{
for(i=0;i<5;i++) {
array[i]=atoi(argv[i]);
sum += array[i];
}
printf("average[%lf] sum[%d]\n", sum/5, (int)sum);
}
return 0;
}
悩んでいるというのであれば何がわからないのかくらい書くべきです。
予想すると何もわからなくて悩んでいるんですよね。
2と3は自分で考えましょう。

225:デフォルトの名無しさん
08/02/12 22:27:32
[1] 画像処理
[2] 画像ファイルを読み込み、マウスでクリックした位置の
  水平垂直方向の輝度を表示せよ。
 [3.1] Windows XP
 [3.2] Visual C++2005 ExpressEdition
 [3.3] C++
[4] 期限: 無期限
[5] その他の制限:とくになし。
ファイルダイアログでpicturebox1に画像ファイルを取り込んで、
getpixelでRGB値を取得しています。
pictureboxは640*480なのですが、画像サイズが640*480以外だと、
エラーが出たり、マウスの位置と、取得したRGB値が一致しません。
どうしたものだろうか?
private: System::Void pictureBox1_MouseMove(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
Graphics^gr=this->CreateGraphics();
Bitmap^bm = (Bitmap^)(pictureBox1->Image);
int w = pictureBox1->Image->Width; int h = pictureBox1->Image->Height;
int z = 480/h;
int x=e->X/z; int y=e->Y/z;
gr->FillRectangle(Brushes::Black,Rectangle(700,27,128,480));
gr->DrawLine(Pens::LightGray,700+64,27,700+64,27+480);
if(x<w && y<h ){
for (int y=0;y<h-1;y++) {
Color c=bm->GetPixel(x,y);
//平均輝度
int r=c.R; int g=c.G; int b=c.B;
int rgbdiv = (int)((r+g+b)/3);
Color c2=bm->GetPixel(x,y+1);
int r2=c2.R; int g2=c2.G; int b2=c2.B;
int rgbdiv2 = (int)((r2+g2+b2)/3);
gr->DrawLine(Pens::Red,700+rgbdiv/2,27+y*z,700+rgbdiv2/2,27+(y+1)*z);
} } }

226:デフォルトの名無しさん
08/02/12 22:44:17
C++/CLI ?

227:デフォルトの名無しさん
08/02/12 23:12:51
C#?

228:デフォルトの名無しさん
08/02/12 23:21:25
.net

229:デフォルトの名無しさん
08/02/13 01:36:59
>>217
ありがとうございました。

230:デフォルトの名無しさん
08/02/13 10:19:22
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
input.txt: URLリンク(kansai2channeler.hp.infoseek.co.jp)


[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual stdio
 [3.3] 言語:C
[4] 期限:2月13日中
[5] その他の制限:
期限間近ではありますが、よろしくお願いいたします

231:デフォルトの名無しさん
08/02/13 10:44:46
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
URLリンク(www.uploda.net)
待ち行列の問題です。
pdfの11ページに載っています。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 本日23:59まで
その他の制限: 特になし
丸投げです。よろしくお願いします。

232:デフォルトの名無しさん
08/02/13 13:50:42
>>230
URLリンク(kansai2channeler.hp.infoseek.co.jp)

233:デフォルトの名無しさん
08/02/13 14:43:34
ひどいな

234:デフォルトの名無しさん
08/02/13 14:47:34
ひどすぎるな

235:デフォルトの名無しさん
08/02/13 14:54:57
>while(!feof(fp)){
> fscanf(fp, "%d", &temp);
> data[temp]++;
> }

>while(count <= 100)

236:デフォルトの名無しさん
08/02/13 15:02:22
晒しage

237:デフォルトの名無しさん
08/02/13 15:30:21
>>231
URLリンク(kansai2channeler.hp.infoseek.co.jp)

238:デフォルトの名無しさん
08/02/13 16:19:12
>>230
URLリンク(kansai2channeler.hp.infoseek.co.jp)

239:デフォルトの名無しさん
08/02/13 20:12:05

チョンのあやかり創価学会

偽善者が政治活動、公明党

ニセ仏教、騙されバカ信者、池田犬作チョン大教祖様、さっさと死ねや

カルトキチガイ・創価騙されバカ信者

カルト・キチガイ・偽善政治活動・公明党

カルト・キチガイ・偽善政治活動・公明党

カルト・キチガイ・偽善政治活動・公明党


240:デフォルトの名無しさん
08/02/13 20:44:17
>>232
>>238
期限間近のものを本当にありがとうございました。

241:デフォルトの名無しさん
08/02/13 20:48:28
>>232は荒らしだから礼は言わなくてよし。

242:デフォルトの名無しさん
08/02/13 21:01:17
>>241
今、実行できる環境がないのですが>>232はなぜ荒らしなのでしょうか。

243:デフォルトの名無しさん
08/02/13 21:08:23
表面上問題文で要求された結果は返すけど、
拡張性が無く再利用できないアルゴリズム。
fclose()してない。
こんなの宿題で提出されたら俺なら赤点つける。

244:デフォルトの名無しさん
08/02/13 21:14:18
>>243
荒らしのプログラムにも気付けない自分が情けないです…
詳しい説明ありがとうございました。

245:デフォルトの名無しさん
08/02/13 22:04:07
宿題丸投げしてる時点で情けないけどな

246:デフォルトの名無しさん
08/02/13 22:20:41
>>243
>>232読んでみたがこれで十分だろ
題意は満たしてるし、時間・空間計算量も小さくなるように組まれてるしな
拡張性について指定がない以上、こういうのも一つの解としてありだろ

247:デフォルトの名無しさん
08/02/13 22:28:18
学生の宿題なんだからむしろ質素な方がいいと思うのですが
>>243さんは一体何のつもりなんでしょうか(苦笑

248:デフォルトの名無しさん
08/02/13 22:36:48
ここはIDが出ないから自演が楽でいいなw

249:デフォルトの名無しさん
08/02/13 22:42:48
>>246
題意満たしてるか?

250:デフォルトの名無しさん
08/02/13 22:42:52
自演以外でいちいち擁護する奴なんていないしなw

251:デフォルトの名無しさん
08/02/13 22:43:53
>>249
何か条件抜けてるか?

252:デフォルトの名無しさん
08/02/13 22:48:30
     |┃三        / ̄\
     |┃         |     |
     |┃          \_/
 ガラッ. |┃            |        
     |┃  ノ//   ./ ̄ ̄ ̄ \       
     |┃三    /  ::\:::/:::: \     
     |┃     /  <●>::::::<●>  \   
     |┃     |    (__人__)     |     俺なら赤点つける
     |┃三   \    ` ⌒´    /      
     |┃三   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \



253:デフォルトの名無しさん
08/02/13 22:48:33
>>235


254:デフォルトの名無しさん
08/02/13 22:54:02
>>251
合格者がちょうど100人の時にカウントがずれる。
<にすべき比較を<=にしてるという初心者のようなミス。
fclose()していない。

仮にあれが荒らしじゃないとすれば、無能であるという自覚の無い初心者。
ある意味荒らしよりたちに負えない。

255:デフォルトの名無しさん
08/02/13 22:55:30
     |┃三        / ̄\
     |┃         |     |
     |┃          \_/
 ガラッ. |┃            |        
     |┃  ノ//   ./ ̄ ̄ ̄ \       
     |┃三    /  ::\:::/:::: \     
     |┃     /  <●>::::::<●>  \   表面上問題文で要求された結果は返すけど、
     |┃     |    (__人__)     |     拡張性が無く再利用できないアルゴリズム。
     |┃三   \    ` ⌒´    /      
     |┃三   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \

256:デフォルトの名無しさん
08/02/13 22:57:38
     |┃三        / ̄\
     |┃         |     |
     |┃          \_/
 ガラッ. |┃            |        
     |┃  ノ//   ./ ̄ ̄ ̄ \       
     |┃三    /  ::\:::/:::: \     
     |┃     /  <●>::::::<●>  \   題意は満たしてるし、時間・空間計算量も小さくなるように組まれてるしな
拡張性について指定がない以上、こういうのも一つの解としてありだろ
     |┃三   \    ` ⌒´    /      
     |┃三   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \

257:デフォルトの名無しさん
08/02/13 22:59:46
     |┃三        / ̄\
     |┃         |     | ←これなに?
     |┃          \_/
 ガラッ. |┃            |        
     |┃  ノ//   ./ ̄ ̄ ̄ \       
     |┃三    /  ::\:::/:::: \     
     |┃     /  <●>::::::<●>  \ 
     |┃     |    (__人__)     | 
     |┃三   \    ` ⌒´    /      
     |┃三   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \

258:デフォルトの名無しさん
08/02/13 22:59:47
>>232はダメだろ。
211回数えてるぞ。

259:デフォルトの名無しさん
08/02/13 23:03:02
最近オプーナAAをよく見かけるな

260:デフォルトの名無しさん
08/02/13 23:03:27
データ210個あるって言ってるのに配列101個分しか用意してないし。
何したいのかわからん。

261:デフォルトの名無しさん
08/02/13 23:04:31
受験生全員が100位タイ以内に収まる場合にずっこける希ガス

262:デフォルトの名無しさん
08/02/13 23:05:02
穴だらけじゃんwwwwwwwwwww

263:デフォルトの名無しさん
08/02/13 23:06:28
>>260
それはお前がバカ

264:デフォルトの名無しさん
08/02/13 23:06:59
>>260
それは点数による度数分布だからおk
0〜100以外の点数が来たらNGだが

265:デフォルトの名無しさん
08/02/13 23:07:17
feofでend-of-fileの判定。

266:デフォルトの名無しさん
08/02/13 23:13:22
まとめ
>>232
・今回与えられたデータではたまたま正常に動く
・不正なデータ(100点を超えたりマイナスだったり)に対する備えが無い
・偏ったデータ(全員が100点とか)で無限ループ
・100位以内が丁度100人の時に計算がずれる
・ファイルから点数を直接読み出してないから拡張性が無い
・↑のデータを利用して他の関数を書いてるから再利用できない
・fclose()してない

>>238
・パーフェクト

>>230は好きな方選んで提出したらいいんじゃね?
自力で組めなかったんだし粗悪なプログラムで赤点補習した方が将来のためかもしれないしね。

267:デフォルトの名無しさん
08/02/13 23:14:52
>>266
バカがまとめんなよw
>>232で出る答えは間違ってるし、全員100点でも無限ループなんてしない。

268:デフォルトの名無しさん
08/02/13 23:21:10
>>266
>>238も人数が210人未満のときに間違える。

269:デフォルトの名無しさん
08/02/13 23:22:04
>>232の実行結果
合格者数:105人
合格者平均点:77.7723810点

>>238の実行結果
Success:104
Average:77

270:デフォルトの名無しさん
08/02/13 23:33:34
どうして>>232の答えは間違うんでしょうか?

271:デフォルトの名無しさん
08/02/13 23:34:26
>>270
プログラムが間違ってるからだね。

272:デフォルトの名無しさん
08/02/13 23:37:40
>>270
ループ終了条件をfeofで判定してるため、最後の数を二重に数えてるから。

273:デフォルトの名無しさん
08/02/13 23:37:52
烏賊じゃないんだ

274:デフォルトの名無しさん
08/02/13 23:40:35
まあ>>238のプログラムも入力部分を関数化しろって条件満たしてないんだけどな。

275:デフォルトの名無しさん
08/02/13 23:50:30
>>237
ありがとうございますm(_ _)m

276:デフォルトの名無しさん
08/02/13 23:56:49
>>272
ありがとうございます。

while(!feof(fp))
{
fscanf(fp, "%d", &temp);
data[temp]++;
}



while(fscanf(fp, "%d", &temp) != EOF)
{
data[temp]++;
}

みたいにしたらいいのかな。

277:デフォルトの名無しさん
08/02/13 23:58:10
そうだね

278:デフォルトの名無しさん
08/02/14 00:10:08
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++2005 ExpressEdition
 [3.3] 言語:C
[4] 期限:2月15日
[5] その他の制限:特にないです

279:デフォルトの名無しさん
08/02/14 00:14:35

チョンのあやかり創価学会

偽善者が政治活動、公明党

ニセ仏教、騙されバカ信者、池田犬作チョン大教祖様、さっさと死ねや

カルトキチガイ・創価騙されバカ信者

カルト・キチガイ・偽善政治活動・公明党

カルト・キチガイ・偽善政治活動・公明党

カルト・キチガイ・偽善政治活動・公明党


280:デフォルトの名無しさん
08/02/14 00:18:58
条件なのにできるってなんかおかしくね?

281:デフォルトの名無しさん
08/02/14 00:40:44
>>276
fscanfを使うなら、
while (fscanf(...) == 1)
とするべき。

282:デフォルトの名無しさん
08/02/14 00:50:47
>>278
「double max(double a,double b)関数をとり、引数aとbの大きいほうを返す関数」は、
double max_caller(double (*f)(double, double), double a, double b){
return (*f)(a, b);
}
でよろしいか?

283:デフォルトの名無しさん
08/02/14 07:06:31
>282
いいですよ。

284:デフォルトの名無しさん
08/02/14 09:53:12
>>281
なるほど、それだと読み込みエラーとかでもループを抜けられるんですね。
勉強になりました。ありがとうございました。

285:デフォルトの名無しさん
08/02/14 11:39:45
>>278
URLリンク(kansai2channeler.hp.infoseek.co.jp)
チェックあまりしてない。甘いところはご愛嬌。

286:デフォルトの名無しさん
08/02/14 12:09:39
>>278
問題2
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これもチェックあまりしてない。甘いところはご愛嬌。

287:デフォルトの名無しさん
08/02/14 18:04:30
「nステップによるある一回の酔歩における、格子点上の経路を画面に表示するプログラムを作成せよ。」
って課題が出たんですけど、誰か教えてください。

288:デフォルトの名無しさん
08/02/14 18:19:45
>>287
>>1からやり直し

289:デフォルトの名無しさん
08/02/15 12:03:39
すいません。書き直します。宜しくお願いします。

[1] 授業単元: 一般情報処理C
[2] 問題文(含コード&リンク):「nステップによるある一回の酔歩における、格子点上の経路を画面に表示するプログラムを作成せよ。」

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:c
[4] 期限:2008/2/19
[5] その他の制限:なし

290:デフォルトの名無しさん
08/02/15 14:45:36
急ですみませんが、(1)だけでもいいので、出来る方いらっしゃいましたらよろしくお願いします。

[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
崖から鉛直上向きに投げた石の4秒後の鉛直方向位置を求めたい.
(1)オイラー法によりその位置を求めるプログラムを作成し,4秒後の
位置を求めなさい.
(2)理論解との位置の誤差を0.1m以下にするには時間きざみΔtを
いくらにすればよいか考察しなさい.
[3] 環境
 [3.1] OS:Vista
 [3.2] コンパイラ名とバージョン:VS2005
 [3.3] 言語:C
[4] 期限:2008/2/15 15:50まで
[5] その他の制限:

291:デフォルトの名無しさん
08/02/15 15:11:20
>>290
(1)だけ。
初速に関する条件がなかったけど入力させる形でよかった?
#include <stdio.h>
#include <stdlib.h>

#define GRAVITY (-9.80665)
#define DELTA_T (0.1)

int main(void)
{
char temp[32];
double v0, velocity, time, y;

printf("初速度を入力してください:");
do{
fgets(temp, sizeof(temp), stdin);
v0 = atof(temp);
}while(v0 <= 0);

for(time = 0; time < 4; time += DELTA_T)
{
velocity = v0 + time * GRAVITY;
y += velocity * DELTA_T;
}
printf("4秒後の位置は %f(m) です", y);
return 0;
}

>>289
一口に酔歩って言っても定義はいくつもあるんだけど、
何の前提条件も無しでその問題文がだされたわけ?

292:デフォルトの名無しさん
08/02/15 17:34:59
>>291
えっとその前の課題が「二次元格子上での酔歩におけるnステップによる平均移動距離を、m回のシュミレーションによる統計平均から計算せよ。また、その標準偏差を求めよ」
で、その課題の下に「乱数の発生方法について」とあって、1#include<stdlib.h>によって、stdlib.hヘッダーをインクルードする。2#include<time.h>によって、time.hヘッダーをインクルードする。
3srand((unsigned)time(NULL));によって乱数の種の初期値を現時刻から決める。4rand()/(RAND_MAX+1.0);によって0から1における一様乱数を発生させる。
と書いてあって、その下に上記の課題が書いてあります。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4968日前に更新/299 KB
担当:undef