<`Д´>C/C++の宿題は私にやらせるニダ!Ver11
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
ただし四面体の宿題は禁止!
前スレhttp://pc2.2ch.net/test/read.cgi/tech/1057070174/
9代目:http://pc2.2ch.net/test/read.cgi/tech/1055944101/ 150
8代目: http://pc2.2ch.net/test/read.cgi/tech/1055056940/l50
7代目: http://pc2.2ch.net/test/read.cgi/tech/1053963794/l50
6代目: http://pc2.2ch.net/test/read.cgi/tech/1053045530/l50
↓現在5代目スレまでhtml化完了
5代目: http://pc2.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc2.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc2.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
ラウンジ:質問が長い時はココを使うと便利
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGprintf("ナユタンハァハァ");
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007前スレ911
NGNG/* データ検索のルーチン */
while ((ch = fgetc(fp)) != EOF) {
if (ch == argv[2][j] || ch == argv[2][j = 0]) {
++j;
if (argv[2][j] == '\0') {
++i;
j = 0;
}
}
}
/* データ検索のルーチン終了 */
ここから改造してそこを修正する方法はないんでしょうか?
0008前スレ911
NGNG出来たら解説お願いしたいんですが…
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG授業に寝坊しまくりで肝心なヒント全然聞けなくて
4段階中の1段階の途中でつまづいてかなりヤヴァイです。
>12 + 320
見たいな感じに>の後に任意の式を数字スペース演算子スペースって書き込んで
計算結果を返し、それ以外の入力には
ERRORを返すのを.(ドット)を入力するまで繰り返すってだけなのですが。。。
ちなみに↑はまだ1段階目です。
0012デフォルトの名無しさん
NGNGどこにレスしてんだよ
0013デフォルトの名無しさん
NGNGstrpbrkを使ってスペースごとにポインタを切れと言わましたが
strpbrkでのポインタの切って別のポインタに格納するやり方がよく分からないです。
とりあえず1段階目の(3)が計算結果ではなく
12 数値
+ 演算子
320 数値
という風に返す問題だったんですが
1段階目の最終的な完成には通用しないと分かりつつも
とりあえずこれを解こうとgetcで頑張ろうとしましたが
コンパイルでエラーが大量にでてデバグできずに挫折しました。
家に環境が無いので思い出しながらですが、とりあえずできるところまで書いてみます。
0015デフォルトの名無しさん
NGNG前レスではなく前スレだ
0016デフォルトの名無しさん
NGNGまず、コンパイル環境を構築しろ。
話はそれからだ。
0017デフォルトの名無しさん
NGNGここで聞くべき質問じゃないかもしれませんが
無料でwindows(XP)上で動かせる環境とかってありませんか?
できれば教えてもらえればうれしいです。
0018デフォルトの名無しさん
NGNGstrpbrkはポインタを返すから、それを変数に入れればよいのでは?
char *s="abcdefghijk",*p;
p=strpbrk(s,"egu");
if(p) puts(p);
efghijkと表示されるはず
0019デフォルトの名無しさん
NGNGスレ違いだってわかってんならここで聞くなボケ
タダで最強!フリーC/C++コンパイラ
http://pc2.2ch.net/test/read.cgi/tech/1035882599/
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNGあ、scanfは使うなと言われて
fgetsの間違いだと思いますスイマセン
0022デフォルトの名無しさん
NGNGろしくお願いします。
与えられた文字列sのn文字目からm文字目 からなる部分文字列を返す関数を定義し、
その動作を確認しなさい。 ただし、文字列を操作するシステムの関数を使ってはならない。
char* substring(char* s, int n, int m)
0023デフォルトの名無しさん
NGNG乙。
0024デフォルトの名無しさん
NGNGその課題の問題点。
・車輪の再生産で激しく無駄。
・「文字列を返す」だけでは仕様が曖昧。
*あらたにmalloc()した領域を返すか
*関数内部で用意した静的領域を返すか
*引き数で渡された領域を書き換えるのか
・C++だとしたらなんらかの文字列を取り扱うクラスにするべき。
0025r
NGNG宿題に対して
「車輪の再生産で激しく無駄」
じゃねーだろ。ばーか。
関数の具体的な仕様について、問題に記述されていないのは
出題者がそれを規定しないからであり、つまり
「関数の仕様については回答者にゆだねる」と解釈するのが普通。
> ・C++だとしたらなんらかの文字列を取り扱うクラスにするべき。
これは同意。
0026r
NGNG#include <stdio.h>
char* substring( char* str, int n, int m ) {
int w,r;
for( w = 0, r = n; r <= m && str[r] != '\0' ; w++, r++ )
str[w] = str[r];
str[w] = '\0';
return str;
}
int main( int argc, const char* argv[] ) {
char buf[100];
if( argc < 4 )
exit(1);
strcpy( buf, argv[1] );
printf("%s", substring( buf, atoi(argv[2]), atoi(argv[3]) ) );
}
mainのほうはおまけなので、strcpyとかを無造作に使ってる。
いやならてめぇでどうにか汁。
substring関数は「n文字目」って言葉をテキトーに解釈してる。
不都合があれば+1なりなんなりする。
0027デフォルトの名無しさん
NGNG文字をデータとして保持する構造体Listを考える。二つの リストをl1とl2とするとき、
l2の要素を l1の後ろに連結する関数を定義し、その動作を確認しなさい。 戻り値は、
追加したノード数とする。また、l2の要素と l1に追加された要素は独立の存在するとする。
int concat(List &l1,List l2)
構造体の定義はないです。
0028デフォルトの名無しさん
NGNG別にどうでもいいんですけどその構造体Listの中身を教えてください。
あと戻り値というのは全ノード数ですか?それとも追加したノードの個数(1個)ですか?
0029デフォルトの名無しさん
NGNG戻り値は追加した個数(1個)と思います。構造体の中身はおまかせします。
0030デフォルトの名無しさん
NGNGこの関数は呼び出し側でどのように使うつもりですか?
あと第2引数に&はつかないんですか?
0031デフォルトの名無しさん
NGNG#include <iostream>
typedef struct Node{struct Node *next;char data;};
typedef struct List{Node *start;Node *end;int length;};
int concat(List &l1, List l2){
l1.end = l2.start;
return l2.length;
}
int main(){
List l1,l2;
l1.start = new Node(); l1.start->next = new Node();
l1.end = l1.start->next->next; l1.length = 2;
l2.start = new Node(); l2.start->next = new Node();
l2.end = l1.start->next->next; l2.length = 2;
if(concat(l1,l2) == 2) std::cout << "正常でした。"<< std::endl;
else std::cout << "異常でした。" <<std::endl;
return 0;
}
003231
NGNG質問は却下。
0033デフォルトの名無しさん
NGNGどうか教えていただけませんか?よろしくお願いします。
#問題#
2桁の16進数をキーボードから入力し、学籍番号の末尾2桁(16進数表示)と
ビット単位のAND演算を行い、その結果を学習ボードの8ビット発光ダイオード
(orモニター画面上に)にBCDコードで表示するCプログラムを作成せよ
(下記のプログラム例参照)
さらに、この8ビットデータを、ロータリースイッチ(orキーボード)から読み込んだ
(0)16〜(F)16の値の回数だけ、ビット単位で順次ゆっくりと左回転シフトさせよ
(一回転1秒以内)
#include <studio.h>
int main(void){
int data;
printf("start I/O Test\n");
/**************************************/
_outp(0x0106,0x82); /* PA=PC="OUT";PB="IN" */
data=_inp(0x0102); /* read B-port */
_outp(0x0100,data); /* write A-port */
/**************************************/
printf("stop I/O Test\n");
return(0);
}
0034超初心者ですいません・・
NGNG文字の集合を表す構造体Setを定義し、要素を追加する 関数を定義し、その動作を確認しなさい。
追加した要素が 集合の新しい要素の場合1、既に存在していた場合0を返すとする。
int addset(Set &set,char a)
という質問をした者ですが、
#include<iostream.h>
#define MAX_CHAR_NUM 256
int addset(Set& set, char a);
struct Set{
int cp;
char data[MAX_CHAR_NUM];
}set;
int main()
{
int addset(Set& set, char a )
{
int i;
for(i=0; i<=set.cp; i++){
if(a==set.data[i]) return 0;
}
set.data[set.cp++]=a;
return 1;
}
}
まで行き着いたのですが、コンパイルしたらエラーがでます。
どのようにすればいいのか添削してくださる方いましたらおねがいします。
度々すいません・・・
0035デフォルトの名無しさん
NGNG話はそれからだ
0036デフォルトの名無しさん
NGNGSetを宣言する前に使ってるぞ。
0037超初心者ですいません・・
NGNG0038デフォルトの名無しさん
NGNG「char a;としてアルファベットを入力するものとする。
入力した際に画面に表示されずに、すぐにaに格納してくれる
関数を調べて来い。」です。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGエスケープシーケンスは使ってもOKということで。
どなたかお願いします
0041デフォルトの名無しさん
NGNGscanf
0042_
NGNG0043デフォルトの名無しさん
NGNG七行プログラムの過去スレ嫁
0044デフォルトの名無しさん
NGNG#include <stdio.h>
int*i,p,t,a,d,v,m[91]={-10,-9,-8,-1,1,8,9,10},s;void k(){if(m[p]==0)for(i=m;*i
;i++){for(v=p+*i;m[v]==9-t;v+=*i);if(v-p-*i&&m[v]==t&&(s=a=v=p,d))do m[v]=t,v
+=*i;while(m[v]-t);}}main(){for(m[40]=m[50]=s=t=3,m[41]=m[49]=6;s-1;a=d=0){for
(p=8;++p<82;printf("・\0○\0●\0\n"+m[p]))p%9?k():m[p]=9;for(a?d=a=p=9:s?s=0,
puts("pass"):s++;a==9;k())t-6?scanf("%d%d",&p,&v),p+=v*9:++p;t=9-t;}return 0;}
0045デフォルトの名無しさん
NGNGqsortって何でしょうか?
0046デフォルトの名無しさん
NGNGソートを行うCの標準関数
0047デフォルトの名無しさん
NGNGクイックソート
つーか、ぐぐれ
0048デフォルトの名無しさん
NGNGmuridesuta
0049デフォルトの名無しさん
NGNG>>44
興味津々なんだけど・・・。
コンパイルエローになるよん。
0050デフォルトの名無しさん
NGNG"変数(英小文字の文字列)=値" (a=1,b=4+3等)という形の式を
(キーボードから)入力したら、その変数に値を記憶し、変数だけを
入力したら、記憶した値を表示する。この形式以外ならエラーを返す。
0051デフォルトの名無しさん
NGNG>その変数に値を記憶し
擬似的な変数なら可能だけど、変数に代入するのは無理ポ
0052デフォルトの名無しさん
NGNG最終的にメモリ機能付きの電卓を作るのですが、これでは無理ですか?
変数名と現在の値の2つの列からなる配列の構造体をつくるらしいのですが。
0053デフォルトの名無しさん
NGNGC/C++で言う所の変数のようなものを実装させる事なら出来るが、
実際の変数に代入する事は無理と言う意味
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG本当に宿題なのか?
0056sage
NGNG#include <stdio.h>
#include <limit.h>
typedef unsigned int crc32 ; /* 32ビットの符号無し整数型 */
#define getcrc32( src, size ) chkcrc32( 0, src, size )
#define cmpcrc32( crc, src, size ) ( getcrc32( 0, src, size ) == crc )
crc32 chkcrc32 ( crc32 crc, const unsigned char *src, size_t size )
{
size_t n, m ;
crc ^= 0xffffffff ;
for ( n = 0 ; n < size ; n++ )
{
crc ^= src[n] ;
for ( m = 0 ; m < CHAR_BIT ; m++ )
{
int flag = ( crc & 1 ) ;
crc >>= 1 ;
if ( flag ) crc ^= 0xedb88320 ;
}
}
return crc ^ 0xffffffff ;
}
int main()
{
unsigned char buf[4] = "TEST" ;
printf ( "%08x\n", getcrc32 ( buf, 4 ) ) ;
return 0 ;
}
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGどうもありがとうございます。
0060デフォルトの名無しさん
NGNGCSVファイル(list.csv)を開いて、
特定の文字列"KEYWORD"が2列目に含まれている行を
すべて表示しなさい
0061デフォルトの名無しさん
NGNGだったらtypedef unsigned long int crc32にしなよ。
intと違って必ず32bit以上になる。
0062デフォルトの名無しさん
NGNGするプログラムを作成しなさい。ただし,else if文を用いて作成すること。
これをお願いします。なんか4個ぐらいの式でできるそうなので・・・・・
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG#define IS_CRESCENDO(x,y,z) ((x)<(y)&&(y)<(z))
と定義しておき、
if( IS_CRESCENDO(dat1,dat2,dat3) ) {
printf("min is dat1(%d), mid is dat2(%d), max is dat3(%d)\n", dat1, dat2, dat3 );
} else if( IS_CRESCENDO(dat1,dat3,dat2) ) {
printf("min is dat1(%d), mid is dat3(%d), max is dat2(%d)\n", dat1, dat3, dat2 );
} else if( IS_CRESCENDO(dat3,dat1,dat2) ) {
こんな調子で延々と。
else if の練習ならこれで正解だと思う。
0065デフォルトの名無しさん
NGNGif(dat1>dat2){max=dat1;min=dat2;}else{max=dat2;min=dat1;} /* max>=min */
if(dat3>max)max=dat3; else if(dat3<min)min=dat3;
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG土台の部分ができてません。
判定の部分は自分で考えてみたいのですが。
[ ][ ][ ]
[ ][ ][ ]
[ ][ ][ ]
これを表示して、yで上に、bで下に、gで左に、hで右にカーソルを
移動させてEnterkeyでチェックしようと思うのですが、
奇数回なら●、偶数回なら〇を表示させたいです。
ポインタの使い方がイマイチなんで、できればポインタを使わないで
作ってみたいです。
どなたか、↑のサンプルを作ってみてもらえないでしょうか。
あと、完成したらここにまた紹介しに来たいと思います。
過去ログに似たようなのがあったのですが、
よく分かりませんでした。あと、XPなのでエスケープシーケンスが使えません。
APIを使うしかないのでしょうか。
0069デフォルトの名無しさん
NGNG0070_
NGNG0071デフォルトの名無しさん
NGNG2000/XPでもエスケープシーケンスは使えます。
ANSI.SYS組み込んで16ビットコード吐くコンパイラ(LSI-Cとか)使えば。
0072デフォルトの名無しさん
NGNGJavaScriptで作れば表示入力系の問題は解決。
つーか、Cでポインタ使わずになにするのさ。
0073デフォルトの名無しさん
NGNGchkcrc32に戻り値はOK:0NG:1で良いんですか?
0074デフォルトの名無しさん
NGNG#include <iostream>
#include <fstream>
#define len 7
const char key[] = "KEYWORD";
int main(int,char **av)
{
using namespace std;
ifstream in(av[1]);
string ls;
string::size_type i;
while(getline(in,ls)){
if((i=ls.find_first_of(',')) != string::npos){
if(!ls.compare(i+1,len,key,0,len)){
cout<<ls<<endl;
}
}
}
}
0075デフォルトの名無しさん
NGNG#include <stdlib.h>
#define num 100000
int main(){
int i,pin,a,attempt;
double pi,n[num];
for(i=0;i<num;i++){
n[i]=rand()/32768;
}
pin=0;
for(a=0;a<num;a+=2){
attempt=(a/2)+1;
if((n[a]*n[a]+n[a+1]*n[a+1])<1) pin++;
pi=pin*4/(attempt*1.0);
printf("pi=%f\n",pi);
}
montecarloの円周率を求めるプログラムをつくったつもりなんっですけど、
答えが4しかでないのは何でですか?
0076デフォルトの名無しさん
NGNG無理ぽ。
試してみたけど途中でわけわかんなくなった。
誰かお願い。俺も気になる
0077デフォルトの名無しさん
NGNG山登りが一番簡単でいいと思うんですけども、さーっぱりわからんの
です…。
0078デフォルトの名無しさん
NGNGそれが一番簡単だ。
007960
NGNGありがとうございます!!
ですが、申し訳ないのですが、C++でなくCでお願いします。
書くの忘れてましたm(_ _)mごめんなさい
0080デフォルトの名無しさん
NGNGC++でもいいじゃねーか
0081デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#define num 100000
int main(){
int i,pin,a,attempt;
double pi,n[num];
for(i=0;i<num;i++){
n[i]=rand()/32768.0;
}
pin=0;
for(a=0;a<num;a+=2){
attempt=(a/2)+1;
if((n[a]*n[a]+n[a+1]*n[a+1])<1) pin++;
pi=pin*4/(attempt*1.0);
printf("pi=%f\n",pi);
}
0083デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#define num 100000
int main(){
int i,pin,a;
double pi,n[num];
for(i=0;i<num;i++){
n[i]=rand()/32768.0;
}
pin=0;
for(a=0;a<num;a+=2){
if((n[a]*n[a]+n[a+1]*n[a+1])<1) pin++;
}
pi=pin*4/(num/2.0);
printf("pi=%f\n",pi);
return 0;
}
0084デフォルトの名無しさん
NGNGGSLに gsl_siman_solve() という実装があるから参考に。
008574
NGNG#include <stdio.h>
#include <string.h>
#define len 7
const char key[] = "KEYWORD";
int main(int ac,char **av)
{
char ls[256];
char *q;
FILE *fs;
if((fs=fopen(av[1],"r")) == NULL) return 0;
while(fgets(ls,256,fs)){
q = ls;
while(*q++ != ',');
if(!strncmp(q,key,len)){
printf("%s",ls);
}
}
}
0087デフォルトの名無しさん
NGNG>こんな宿題が出ますた。全然わかりません。お願いします
>
> CSVファイル(list.csv)を開いて、
> 特定の文字列"KEYWORD"が2列目に含まれている行を
> すべて表示しなさい
となってるけど
"KEYWORD"が2列目に含まれている行ってのに
null,THE KEYWORD IS NULLPO,po …
みたいなのは含まれないの?
0088デフォルトの名無しさん
NGNG008987
NGNG2列目の文字列の先頭にKEYWORDが無いとだめじゃないのかってことなんだけど。
>if(!strncmp(q,key,len))
これだとそうなるよね?
0090デフォルトの名無しさん
NGNGこうなっていると単純に','を探すだけでは二列目の始まりをみつけることができない。
009174
NGNGああめんど。
while(fgets(ls,256,fs)){
q = ls;
while(*q++ != ',');
while(*q != ','){
if(*q == 'K'){
if(!strncmp(q,key,len)){
printf("%s\n",ls);
}
}
++q;
}
}
0092デフォルトの名無しさん
NGNGそれだと
2列目にKEYWORDが二つ以上含まれてるときに(ry
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGbreakでは?
009574
NGNG0096デフォルトの名無しさん
NGNGmain(int argc, char *argv[])
{
int ans, b, c , i;
b = 0;
for(i = 0; argv[1][i] != '\0'; i++){
b = b*10+(argv[1][i] - '0');
}
c = 0;
for(i = 0; argv[3][i] != '\0'; i++){
c = c*10+(argv[3][i] - '0');
}
if(*argv[2] == '+'){
ans = b + c;
}
else if(*argv[2] == '-'){
ans = b - c;
}
else if(*argv[2] == '*'){
ans = b * c;
}
else if(*argv[2] == '/'){
ans = b / c;
}
printf("%d \n", ans);
}
コマンドラインの問題ですが、掛け算だけ結果がゼロになりま
す。なぜか分かりません。
教えてくださいお願いします。言語はCです。
0097デフォルトの名無しさん
NGNG掛け算のときans = b * c;の行に来てますか?
どういう環境でコマンドを打っているのかわかりませんが
おそらくshellで'*'をワイルドカードとしてみなし、
カレントディレクトリの全ファイルのリストに変換されて
いるのだと思われます。
プログラムの頭で
for (int j = 0; j < argc; j++) {
printf("argv[%d]=%s\n", j, argv[j]);
}
を入れてみて確認してください。
対応
�@ *を使わない
�A *をエスケープしてシェルでワイルドカードとして解釈させない
�Aは使っているシェルによります。
0098デフォルトの名無しさん
NGNG★ 激安アダルトDVDショップ ★
★ 開店セール1枚500円!急げ! ★
★★★★★★★★★★★★★★★★★★★★
激安でDVDをGET!
http://www.get-dvd.com
何と! 1枚 500円均一 セール中!
インターネット初!「きたぐに割引」
北海道・東北の皆様は送料も激安!!
http://www.get-dvd.com
ゲットDVDドットコム!
今すぐアクセス Let's go !!!!!!!
0099デフォルトの名無しさん
NGNGリスト構造を使ったプログラミングの宿題が出たんですがこんなの習った覚えは・・・
0100デフォルトの名無しさん
NGNGヽ(ヽ ・∀・)わけ (ノ・∀・)ノわか ヽ( ・∀・)ノらん
0101デフォルトの名無しさん
NGNGgoolge
■ このスレッドは過去ログ倉庫に格納されています