(・∀・)C/C++の宿題やらせてください。ver10
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
前スレ http://pc2.2ch.net/test/read.cgi/tech/1055944101/
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代目: 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デフォルトの名無しさん
NGNG問題はこれです
整数を一つ読み込み、それが素数か否かを判定するプログラムを書け。素数とは、1ごその数自身以外の数では割り切れない数である。
入力した数をxとすると、この問題を解く一つの方法は、xを2,3,4、・・・、√xで次々と割って余りを求めることである。
割った余りが0だったら素数でないと分かる。割り切れないまま繰り返しを続けていって、割る数がxの平方根より大きくなったら
素数であると分かる。
一時間くらい挑戦してたら片方判定出来たり、もう片方判定出来て片方判定できなくなったりしますた・・・
一応ソース張ってみます。
0005デフォルトの名無しさん
NGNG書けたじゃない。
おめでとう!
0006デフォルトの名無しさん
NGNGint main(void){
int x,heihoukon,n,i;
printf("x: ");scanf("%d", &x);
i=1;
heihoukon=0;
while(heihoukon*heihoukon<x)
heihoukon=heihoukon+1;
if(heihoukon*heihoukon==x)
printf("heihoukon:%d\n",heihoukon);
else
printf("heihoukon ha %d-1 kara%d no aida \n",heihoukon,heihoukon);
while(i<=heihoukon){
i=i+1;
if(x%i==0)
printf("x is not sosu\n");break;}
if(i>heihoukon)
printf("x is sosuu\n");
return(0);
}
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG素数でないか素数であるかと表示させたいのに片方しか表示されなかったりしました
0009デフォルトの名無しさん
NGNGbreakの位置が変だろ。すぐループ抜けるぞ。
if(x%i==0) {
printf("x is not sosu\n");
break;
}
こう書け。これでもまだおかしいがな。
ifとかforは全部{}で囲む癖つけた方が無難だぞ。
0010デフォルトの名無しさん
NGNGEOFに・・・(´・ω・`)
0012デフォルトの名無しさん
NGNG変更したら無限ループに突入した模様・・・
あぁわかんない(ノд`)
0013デフォルトの名無しさん
NGNG(*´д`*)ありがとうございました
0014デフォルトの名無しさん
NGNG生成し、その4点を頂点にした四面体の体積および四面体が
立方体の中心を含むか含まないかを表示するプログラムを作成しなさい。
ヒント
点Pが四面体ABCDの内部にあるかどうかは、四面体ABCDの各面とPにより
形成される4つの四面体PABC,PBCD,PCBD,PDABの体積の和が、
の四面体の体積よりも大きい場合にはPは四面体の外部にある。
お願いします。
0016デフォルトの名無しさん
NGNGこれ使え。
int isprime(int n) {
int x;
for (x = 2; x * x <= n; x++)
if (n % x) return 0;
return 1;
}
何度書いたんだろう、この関数。
0017デフォルトの名無しさん
NGNG>if (n % x) return 0;
わざと?
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG奇数の時はその値を 3 倍したものに 1 を加えるという処理を
n の値が 1 になるまで繰り返すプログラムを書いてください。
その際,入力された値,及び,各演算を行った結果得られた n の値を,
得られた順番に1つ以上のスペースを空けて出力すること。
C++です。どうかよろしくお願いします・・・。
0020デフォルトの名無しさん
NGNGvoid hoge(int n) {
while (n != 1) {
printf("%d ", n);
if (n % 2 == 0) n /=2;
else n = 3*n + 1;
}
}
0021デフォルトの名無しさん
NGNGもし無ければ先頭に新しいデータを挿入するプログラムを作成せよ。
たとえば、asakura itoh sakataで、itohをキーとして検索し、新しいデータをyamadaとして、asakura itoh yamada sakata とします。
tanakaをキーとして検索すると、ないので、tanaka asakura itoh sakataとします。
C言語の宿題です。お願いします。
0022その壱
NGNGC++ 初めて使うけど
#include <iostream>
typedef unsigned long long int U64 ;
typedef struct Struct_NumList
{
U64 Num ;
Struct_NumList* Next ;
} NumList ;
class Collatz
{
private:
NumList* First ;
NumList* Add ( U64 num ) ;
void Del ( NumList* ptr ) ;
void Out ( NumList* ptr ) ;
public:
Collatz ( U64 num ) ;
~Collatz () ;
void Out ( void ) ;
} ;
0023その弐
NGNG{
NumList* ptr ;
ptr = new NumList ;
ptr->Num = num ;
if ( num == 1 ) ptr->Next = NULL ;
else
{
if ( num & 1 ) num = num * 3 + 1 ; else num = num / 2 ;
ptr->Next = Add ( num ) ;
}
return ptr ;
}
void Collatz::Del ( NumList* ptr )
{
if ( ptr->Next != NULL ) Del ( ptr->Next ) ;
delete[] ptr ;
return ;
}
void Collatz::Out ( NumList* ptr )
{
if ( ptr != NULL )
{
std::cout << ptr->Num << " " ;
Out ( ptr->Next ) ;
}
else std::cout << std::endl ;
return ;
}
0024その参(ラスト)
NGNG{
if ( num != 0 ) First = Add ( num ) ; else First = NULL ;
}
Collatz::~Collatz ()
{
Del ( First ) ;
}
void Collatz::Out ()
{
Out ( First ) ;
return ;
}
int main ()
{
U64 n = 2 ;
{
Collatz* C ;
C = new Collatz ( n ) ;
C->Out() ;
delete C ;
}
return 0 ;
}
002522-24
NGNGCollatz::~Collatz ()
{
if ( First != NULL ) Del ( First ) ;
}
0026その壱
NGNG動作未確認だけど、こんな感じで
各種関数の使い方とエラー時の始末は自分で考えて下さい
#include <stdlib.h>
#include <string.h>
typedef struct Struct_Data
{
char *Name ;
struct Struct_Data *Next ;
} Data ;
typedef struct
{
Data *First ;
} List ;
Data *NewData ( char *str )
{
Data *New = malloc ( sizeof ( Data ) ) ;
New->Name = malloc ( strlen ( str ) + 1 ) ;
strcpy ( New->Name, str ) ;
return New ;
}
0027その弐
NGNG{
List *New ;
New = malloc ( sizeof ( List ) ) ;
New->First = NULL ;
return New ;
}
void AddList ( List *list, Data *New )
{
Data *Cur = list->First ;
while ( Cur != NULL )
{
if ( strcmp ( Cur->Name, New->Name ) == 0 )
{
New->Next = Cur->Next ;
Cur->Next = New ;
break ;
}
else Cur = Cur->Next ;
}
if ( Cur == NULL )
{
New->Next = list->First ;
list->First = New ;
}
return ;
}
0028その参(おまけ)
NGNG{
AddList ( list, NewData ( str ) ) ;
}
0029デフォルトの名無しさん
NGNG#include <iostream>
using namespace std;
int main(void)
{
unsigned n;
cin >> n;
while(n > 1)
{
int i = n;
if(i % 2 == 0)
i = i / 2;
else
i = i * 3 + 1;
cout << n << ' ' << i << endl;
n--;
}
return(0);
}
0030デフォルトの名無しさん
NGNGよろしくお願いします。。。
0031デフォルトの名無しさん
NGNG#include<stdio.h>
#include<string.h>
#define TRUE 1
#define FALSE 0
int isreverse( const char *word ){
int i, len;
for( i = 0, len = strlen( word ) - 1; i < len; i++, len-- ){
if( word[i] != word[len] )
return FALSE;
}
return TRUE;
}
入力文字列 word の改行コードは、ヌル文字で上書きしておいてね♪
0032デフォルトの名無しさん
NGNGありがとうございます。解法が判りました
0033デフォルトの名無しさん
NGNG改良してください。
#include <stdio.h>
#define swap(type, x, y)do {type t = x; x = y; y = t; } while (0)
void bubble(int a[], int n)
{
int i, j;
for (i = 0; i < n - 1; i++) {
for (j = n - 1; j > i; j--)
if (a[j - 1] > a[j])
swap(int, a[j - 1], a[j]);
}
}
int main(void)
{
int i;
int x[7];
int nx = sizeof(x) / sizeof(x[0]);
printf("%d個の整数を入力せよ。\n", nx);
for (i = 0; i < nx; i++) {
printf("x[%d] : ", i);
scanf("%d", &x[i]);
}
bubble(x, nx);
puts("昇順にソートしました。");
for (i = 0; i < nx; i++)
printf("x[%d] = %d\n", i, x[i]);
return (0);
}
003433
NGNG/*--- 単純交換ソート(第2版:交換回数による打ち切り) ---*/
void bubble(int a[], int n)
{
int i, j;
for (i = 0; i < n - 1; i++) {
int exchg = 0;/* パスにおける交換回数 */
for (j = n - 1; j > i; j--)
if (a[j - 1] > a[j]) {
swap(int, a[j - 1], a[j]);
exchg++;
}
if (exchg == 0) break;/* 交換が行われなかったら終了 */
}
}
0035デフォルトの名無しさん
NGNGなんかよ〜わからん。
003633
NGNGこのプログラムは並び替えをするプログラムです。
たとえば、
22 5 11 32 120 68 70
を入力すると
5 11 22 32 68 70 120
を出力するのです。
その並び替える途中を、たとえば
22 5 11 32 68 120 70
・
・
・
というのを出力して欲しいのです。
よろしくお願いします。
0037デフォルトの名無しさん
NGNGん〜と、バブルソートのソートっぷり(?)を見たいんだよね?
1つ目の方
void bubble(int a[], int n)
{
int i, j;
for ( i = 0; i < n - 1; i++ ) {
for ( j = n - 1; j > i; j-- ){
if (a[j - 1] > a[j])
swap(int, a[j - 1], a[j]);
}
for( j = 0; j < n; j++ )
printf("%d ",a[j]);
printf("\n");
}
}
0038デフォルトの名無しさん
NGNGvoid bubble( int a[], int n )
{
int i, j;
for ( i = 0; i < n - 1; i++ ) {
int exchg = 0;/* パスにおける交換回数 */
for ( j = n - 1; j > i; j-- )
if ( a[j - 1] > a[j]) {
swap( int, a[j - 1], a[j] );
exchg++;
}
if ( exchg == 0 ) break;/* 交換が行われなかったら終了 */
for( j = 0; j < n; j++ )
printf("%d ",a[j]);
printf("\n");
}
}
003937=38
NGNG問題解釈はあっていたみたいだね。
ちなみに両方とも確認済み。
0042(´・ω・`)
NGNGこの2線は平行している。p1,p2を結んだ中点とp3,p4を結んだ中点を結んだものが
対称面となる。
このとき、この法線ベクトルを求めるプログラムを書きなさい。
どう書けばいいの・・・?_| ̄|○||||
0043デフォルトの名無しさん
NGNGまぁお前は3Dゲーム作りは不可能ってこった
0044デフォルトの名無しさん
NGNG俺ぜってー答えないことに決めた。
0046デフォルトの名無しさん
NGNGつーか、答えられないんだろ。
0047デフォルトの名無しさん
NGNG□■□■□
□□■□■
■□■□■
□□□□□→
左上から入り、右下へ出る迷路のプログラム(黒は通れない)を、
反復深化でプログラミングを書き換えろと言う宿題が出たのですが、
さっぱりわかりません。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGint m[7][7]={{2,2,2,2,2,2,2},
{2,0,0,0,0,0,2},
{2,0,2,0,2,0,2},
{2,0,0,2,0,2,2},
{2,2,0,2,0,2,2},
{2,0,0,0,0,0,2},
{2,2,2,2,2,2,2},};
int Si,Sj,Ei,Ej,success,
sp,ri[100],rj[100];
int visit(int,int);
void main(void)
{
sp=0;
success=0;
Si=1; Sj=1; Ei=5; Ej=5;
printf("\n迷路の探索\n")
if (visit(Si,Sj)==0)
printf("出口は見つかりませんでした\n")
}
0050デフォルトの名無しさん
NGNGint visit(int i,int j)
{
int k;
m[i] [j]=1;
ri[sp]=i,rj[sp]=j;sp++;
if(i==Ei && j==Ej){
for(k=0;k<sp;k++)
printf("(%d,%d)",ri[k],rj[k]);
success=1;
}
if(success!=1 && m[i][j+1]==0) vidit(i,j+1);
if(success!=1 && m[i+1][j]==0) vidit(i+1,j);
if(success!=1 && m[i][j-1]==0) vidit(i,j-1);
if(success!=1 && m[i-1][j]==0) vidit(i-1,j);
sp--;
return(success);
}
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGこれを反復深化で書き直せというのが、問題です。
わかるづらくてすいません。
005326-28
NGNGホイ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=101
0054デフォルトの名無しさん
NGNG??
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG問題文が意味不明だぞ。
p1,p2が水平ってどういう意味だ?
図にして説明してみろ。
0058デフォルトの名無しさん
NGNG47、49、50、51、52
が自分の書き込みです。
よろしくお願います。
0059デフォルトの名無しさん
NGNG推薦図書/必読書のためのスレッド PART 11
http://pc2.2ch.net/test/read.cgi/tech/1055082087/
個人的にはピアソンだと思うぞ
0060デフォルトの名無しさん
NGNGありがとうございましたm(_ _)m
0061デフォルトの名無しさん
NGNGお願いします。
0062デフォルトの名無しさん
NGNGここにおくんですね…。
47、49、50、51、52、58が自分です。
よろしくお願いします。
006433
NGNG一つ目を実行してみたところ
5 22 11 32 68 120 70
5 11 22 32 68 70 120
5 11 22 32 68 70 120
5 11 22 32 68 70 120
5 11 22 32 68 70 120
5 11 22 32 68 70 120
とおかしな出力になってしまいました。
さらなる改良をよろしくお願いします。
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNG5 22 11 32 68 120 70
5 11 22 32 68 70 120
おおっ〜と、ここで 11 と 22, 120 と 70 がそれぞれ入れ替わりました
いや〜、今日もXXX(←関数名)は良い仕事をしてますね
006737
NGNGhtttp://hspcenter.com/hspsc1/hsp19.html
↑これの下の方にある「数列の変化の様子」みたいなのを再現したいんでしょう!?
じゃあ、バブルソートモドキ関数を真・バブルソート関数にして…
1つ目の方
void bubble( int a[], int n )
{
int i, j;
for ( i = n; i > 0; i-- ) {
for ( j = 1; j < i; j++ )
if ( a[j - 1] > a[j] )
swap( int, a[j - 1], a[j] );
for( j = 0; j < n; j++ )
printf("%d ",a[j]);
printf("\n");
}
}
006837
NGNGvoid bubble(int a[], int n)
{
int i, j;
for ( i = n; i > 0; i-- ) {
int exchg = 0;/* パスにおける交換回数 */
for ( j = 1; j < i; j++ )
if ( a[j - 1] > a[j] ) {
swap( int, a[j - 1], a[j] );
exchg++;
}
if ( exchg == 0 ) break;/* 交換が行われなかったら終了 */
for( j = 0; j < n; j++ )
printf("%d ",a[j] );
printf("\n");
}
}
006937
NGNGそれも違うんだったら、表示の具体例を書き込んでね♪
0070デフォルトの名無しさん
NGNG>>49-50 書き換える前の物
>>51 頼んだ
という事か。反復進化ってなに?調べても5件しかないし、そのうち3件は、
キャッシュが使えなく、スクロールが遅い変なページだし。
0071デフォルトの名無しさん
NGNG2つ目は自分でヤッテ
void bubble( int a[], int n )
{
int i, j, k;
for ( i = n; i > 0; i-- )
{
for ( j = 1; j < i; j++ )
{
if ( a[j - 1] > a[j] )
{
swap( int, a[j - 1], a[j] );
for( k = 0; k < n; k++ )
printf("%d ",a[k]);
printf("\n");
}
}
}
}
0072デフォルトの名無しさん
NGNGよう分からんけど、言葉の響きと、実際のソースから推測すると
再帰を使わずに、同様の処理をしろと言う事ではなかろうか?
0073デフォルトの名無しさん
NGNG反復深化で検索し直せ
0074デフォルトの名無しさん
NGNG深さ優先探索の深さに限度を設定し、
解が見つかるまで、上限値を段階的に増やしていくというやり方です。
1回で解が見つからなければ、さらにもう1手探索をし、
それでもだめならば、もう1手と、上限値を1手ずつ増やしていく
という方法のことです。
よろしくお願いします。
0075デフォルトの名無しさん
NGNGただし、ポインタ変数を用いること。
2次元配列のときのポインタの使い方が分かりません・・・
0076デフォルトの名無しさん
NGNG勉強しましょう。
0077デフォルトの名無しさん
NGNGInputData = (char **)malloc(sizeof(char*) * データの個数);
for(i=0;i<データの個数;i++){
InputData[i] = (char *)malloc(sizeof(char) * 1つの文字列の最大長);
gets(InputData[i]);// (σ´д`)σ
}
文字列の長さは、strlen(InputData[i])で。
ソートを行う場合は、strcpy連発するよりもポインタでの交換が吉。
詳しくは >>80 が説明してくれるはず。
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG{
char str[] = "aiueo";
char *ptr = str;
---------------------------------------------------
以上のような変数宣言をしたときの
1.ポインタ変数のアドレス
2.ポインタ変数に格納されている値
3.ポインタ変数が参照する配列変数の先頭アドレス
4.ポインタ変数の参照先データ
をそれぞれポインタ変数を用いてポインタの位置を文字数分まで1つずつ
進めながら16進数で確認するプログラムを作成せよ
という問題なのですが、3つ目のがよく分からなくて・・。
printf("%x",????);
これの????には何を入れるべきなんでしょうか?
誰か教えてもらえませんか?(⊃д⊂)
0080デフォルトの名無しさん
NGNGわからなくて当然。ポインタを16進数で表示する汎用的な方法はないから。
できるのは4だけだな。
0081デフォルトの名無しさん
NGNG16進数って%xかなって思ったんですけど、コレは勉強になりました。
でも・・・コレをやらないといけないんですヽ(;´Д`)ノ
「ポインタ変数が参照する配列変数」っていうのは「str」の事ですか?
それの先頭アドレスっていうのは「&str[0]」の事なのかな・・・?
それをポインタ変数を用いて書くから・・・あひゃ。
0082デフォルトの名無しさん
NGNG%xは符号無し整数型の値を16進で表すものであって、ポインタの値を表示するものではない。出題者にもそう言うべき。
単に「ポインタの値を表示しろ」なら%pでできるんだが。
> 「str」の事ですか
うん
> 「&str[0]」の事なのかな
そう。strだけでもいいけど。
0083宿題
NGNG表示するプログラムを作ってもらえませんか?
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGprintf("%d",a%10>=5?a+10-a%10:a-a%10);
0086デフォルトの名無しさん
NGNGそうなのかなあ。
処理系定義の方法で整数に変換できると思うのだけど。
null pointer だけは整数 0 に変換されると仕様で定義されてる。
変換結果を整数で表せない場合のみが未定義。
大抵の宿題では特定の処理系が仮定されていることを考えれば、
移植性に関するコメントは無用なのでは。
0087デフォルトの名無しさん
NGNGおそらく16進数で表示されるだろうし。
0088デフォルトの名無しさん
NGNG宿題だからこそ重箱の隅をつついて高得点get
0089デフォルトの名無しさん
NGNG趣旨理解して、無駄なく卒なくで良いじゃん。
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG同じとは限らないからねぇ。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGお願いします
0094デフォルトの名無しさん
NGNG#include <string.h>
#include <math.h>
int
main(void)
{
char op,buf[BUFSIZ]; int x,y;
fprintf(stderr, "try: 2*3\n");
while(!feof(stdin)) {
fprintf(stderr, "> ");
fgets(buf,BUFSIZ,stdin);
if (3 == sscanf(buf, "%d %1[-+*/^] %d", &x, &op, &y)) {
switch(op) {
case '+': fprintf(stderr, "= %d\n", x+y); break;
case '-': fprintf(stderr, "= %d\n", x-y); break;
case '*': fprintf(stderr, "= %d\n", x*y); break;
case '/': fprintf(stderr, "= %g\n", (double)x/y); break;
case '^': fprintf(stderr, "= %g\n", pow(x,y)); break;
}
}
}
return 0;
}
0095デフォルトの名無しさん
NGNG009696
NGNGお願いします。
0097デフォルトの名無しさん
NGNGunsigned GetBit(unsigned n,int p,int q)
{
return (n>>(p-q+1))&((1<<q)-1);
}
0098デフォルトの名無しさん
NGNG#include <stdlib.h>
#include<time.h>
void main(void)
{
int kotae; /* コンピュータが決めた答え */
int su; /* 入力値 */
int ten; /* 得点 */
int kaisu = 0; /* 入力回数 */
/* 乱数で答えを取得する */
kotae = rand()%20; /* 乱数の種を設定 */
kotae+=1; /* 乱数(1〜20)をkotaeに代入 */
/* 正解するかタイムオーバーになるまで数当てをする */
printf("1〜20までの数値を入力してください。\n");
do
{
kaisu = kaisu + 1; /* 入力回数+1 */
printf("%d回目の入力 = ",kaisu);
scanf("%d",&su); /* suを入力 */
/* 入力値によってヒントメッセージを表示する */
}while(kaisu < 6 || kotae != su || clock()/CLOCKS_PER_SEC <=3);
if(kotae == su)
{
ten = 120 - (20*kaisu);
printf("\n正解です。\n貴方の得点 %d点\n",ten);
}
else
{
printf("\nゲームオーバー\n");
}
}
よろしくお願いします。
009998
NGNG問題点は乱数なのに数値が2に固定されているのと正解しても抜け出せない。
秒数制限してあるのに秒数制限されていないという2点です。
あとはヒントをif文で表示するのですが上手く出来きませんでした。ヒントは不正解の時にヒントを表示するのですが誤差を5ずつに設定します。
入力値<答え−5
答えー5<=入力値<答え
答え < 入力値<=答え+5
答え+5< 入力値
という感じです。
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG時間を測るにはどうしたらいいですか?
#include <stdio.h>
int main(){
int a;
for(a=1;a<=10000;a++){
if(a==10000){
printf("Hello,world");
}
}
}
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG現時刻記録:A
処理
現時刻記録:B
B-A
0104デフォルトの名無しさん
NGNG分かりやすい説明ありがとうございます。
0105デフォルトの名無しさん
NGNG( )
() ()
 ̄  ̄
0106デフォルトの名無しさん
NGNGとりあえずbreakいれとけ
0107デフォルトの名無しさん
NGNG結婚してください
0108104
NGNGえんりょーしときます。
どうか教えてもらえませんか
0109デフォルトの名無しさん
NGNGclock
10000は少なすぎる・・・
0110104
NGNG何回くらいループしたらいいですか?
0111デフォルトの名無しさん
NGNGマシン性能に左右される。やってみるしかない。
環境依存になるけどタイマーつかった方がいいかと
0112デフォルトの名無しさん
NGNGマルチタスクではそんなんわかんないよ。
根本的に変えたほうがいい。
0113104
NGNGもっとググってきます
0114デフォルトの名無しさん
NGNGループに入る直前の時刻から3秒たってたらbreak;
0115デフォルトの名無しさん
NGNG×3秒たってたらbreak
○3秒以上たってたらbreak
0116デフォルトの名無しさん
NGNG突っ込んでくれるかなぁ・・・
0117デフォルトの名無しさん
NGNG関係ない記号を入れると最後の一文を表示させたいんです。
でもどうしてもできないんですよ。どうしましょ?
よろです。
if(mar=='+')
{
printf("%f%c%f=%f\n",a,mar,b,a+b);
}
else if(mar=='-')
{
printf("%f%c%f=%f\n",a,mar,b,a-b);
}
else if(mar=='/')
{
printf("%f%c%f=%f\n",a,mar,b,a/b);
}
else if(mar=='*','x','X')
{
printf("%f%c%f=%f\n",a,mar,b,a*b);
}
else if(mar!='+','-','/','*','x','X')
{
printf("演算子を間違ってませんか?\n");
}
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNGelse if(mar!='+','-','/','*','x','X')
ダメじゃん。
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG> if (mar=='*','x','X')
Cならばこれはおかしいかと。
mar の型も知りたいところですし、適当な場所に全コードを
掲示していただけると、アドバイスしやすくて助かります。
0123デフォルトの名無しさん
NGNGelse if(mar=='*' || mar == 'x' || mar == 'X')に
else if(mar!='+','-','/','*','x','X')は
elseに替える。
0124デフォルトの名無しさん
NGNGお手数かけます。%fとかは気にしないで下さい。
最後の演算子を間違ってませんかが出ればいいだけなんです。
ttp://jooo.k-server.org/cul.txt
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNGcase '-':
printf("%f%c%f=%f\n",a,mar,b,a-b);
break;
case '+':
printf("%f%c%f=%f\n",a,mar,b,a+b);
break;
case '/'
printf("%f%c%f=%f\n",a,mar,b,a/b);
break;
case '*':
case 'x':
case 'X':
printf("%f%c%f=%f\n",a,mar,b,a*b);
break;
default:
printf("演算子を間違ってませんか?\n");
break;
}
0128デフォルトの名無しさん
NGNGメモリーの容量で表示を変えたり
HDDの容量で表示変えたり
OSによって表示変えたり実行できるOS制限したり
できませんか?
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNGマルチ厨ハケーン
0132ゆうじ
NGNGGNU MPライブラリを用いて二項係数 nCkを求める関数
void my_mpz_binom(mpz_t rop, int n, int k) を作成し、
70 C 13 を求めよ。
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGあと、GNU MPライブラリって多倍長ライブラリ?
0135ゆうじ
NGNGその通りです。
0137専門学校生
NGNG解いてください。
<処理条件>
入出力様式に従って、3つの整数を入力し、条件にしたがって結果を表示するプログラム
(条件)
すべてが等しい場合・・・「全てが等しい」と表示した後、数値を表示。
2つが等しい場合・・・「2つが等しい」と表示した後、最大値、最小値を表示。
すべてが等しくない場合・・・「全てが等しくない」と表示した後、最大値と最小値を表示。
<入出力方式>
Input(a,b,c)=xxx,xxx,xxx
結果:xxxxxxxxxxx
値:xxx
0138専門学校生
NGNG<処理条件>
出力方式に従って、1〜10までの数値の中で、奇数の和、偶数の和を求めて表示するプログラム。
計算にはfor文をつかう。
<出力方式>
奇数の和=xx
偶数の和=xx
0139デフォルトの名無しさん
NGNGint main()
{
int a,s=0,d=0;
for(a=1;a<=10;a++)
a&1?(s+=a):(d+=a);
printf("奇数の和=%d\n偶数の和=%d\n",s,d);
return 0;
}
014014歳
NGNG君何年生?
0141デフォルトの名無しさん
NGNG今年から専門学校に通いだして・・・
014214歳
NGNG余談だが年間学費いくら?
0143デフォルトの名無しさん
NGNGあの・・・検索という言葉を知っていますか?
0144デフォルトの名無しさん
NGNGint main(){
int a,b=0,c=0;
for(a=1;a<=10;a++){
if(a%2==1){
b=a+b;
}
else{
c=a+c;
}
}
printf("奇数の和は%d\n",b);
printf("偶数の和は%d",c);
return 0;
}
0145141
NGNG0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG/* GNU MPライブラリを用いて二項係数 nCkを求める関数 */
void my_mpz_binom(mpz_t rop, unsigned long n, unsigned long k)
{
if (n < k) {
mpz_set_ui(rop, 0); /* 引数が不正のときは0としておく */
return;
}
mpz_t fact_n, fact_nk, fact_k, fact_tmp;
mpz_init(fact_n); mpz_init(fact_nk); mpz_init(fact_k); mpz_init(fact_tmp);
my_mpz_fact(fact_n, n); /* fact_n <- n! */
my_mpz_fact(fact_nk, n-k); /* fact_nk <- (n-k)! */
my_mpz_fact(fact_k, k); /* fact_k <- k! */
mpz_mul(fact_tmp, fact_nk, fact_k); /* fact_tmp = (n-k)!*k! */
mpz_cdiv_q(rop, fact_n, fact_tmp); /* rop = n!/((n-k)!*k!) */
}
/* 階乗の計算 */
void my_mpz_fact(mpz_t rop, unsigned long n)
{
mpz_set_ui(rop, 1); /* rop <- 1 */
for (unsigned int nn = 2; nn <= n; nn++) {
mpz_mul_ui(rop, rop, nn);
}
}
0148デフォルトの名無しさん
NGNG#define maxof3(x,y,z) maxof((x), maxof((y), (z)))
#define maxof(x,y) (((x) > (y)) ? (x) : (y))
#define minof3(x,y,z) minof((x), minof((y), (z)))
#define minof(x,y) (((x) < (y)) ? (x) : (y))
int main()
{
int a, b, c;
printf("Input(a,b,c)=");
scanf("%d,%d,%d", &a, &b, &c);
printf("結果: ");
if (a == b && b == c) {
puts("全てが等しい");
printf("値: %d\n", a);
} else {
puts((a==b || b==c || c==a) ? "2つが等しい" : "全てが等しくない");
printf("最大値: %d\n最小値: %d\n",
maxof3(a, b, c), minof3(a, b, c));
}
return 0;
}
0149デフォルトの名無しさん
NGNGdが3なら全て等しい。1ならふたつが等しい。0なら全て異なる。
0150デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int i;
int x = 0;
int y = 0;
for(i = 1; i <= 9; i+=2)
x = x + i;
for(i = 2; i <= 10; i+=2)
y = y + i;
printf("奇数の和 = %d\n", x);
printf("偶数の和 = %d\n", y);
return(0);
}
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNG書き出すプログラムを書け。
お願いします。
0155デフォルトの名無しさん
NGNGfopen/fcloseとfgetsとforループがわかればできます。
0156デフォルトの名無しさん
NGNG0157154
NGNG1行あたりが、くそ長くて、メモリの確保が出来ないのですが…
0158デフォルトの名無しさん
NGNG0159154
NGNG書き出すファイル名に outputi (i は行番号)とするのが
分かりません。
「int 型を char 型にして "output" の末尾に付ける」
これってどうすれば・・・?
型落ちは防げるものですか?
0160デフォルトの名無しさん
NGNGその解釈はなんか微妙じゃねーか!?
分からんでもないんだけど・・・ぅぅぅ、なんか気持ち悪い。
0161デフォルトの名無しさん
NGNGsprintf
0162デフォルトの名無しさん
NGNG標準Cでできますか?
0163デフォルトの名無しさん
NGNGint lineno; /* 行数 */
char output_i[MAX_PATH]; /* 出力ファイル名称 */
sprintf(output_i, "output.%d", lineno)
です。
linenoが123ならばoutput.123になります。
>> 157
メモリの確保ができないとは。行の最大長はどれくらいですか?
1024もあれば十分じゃあないのですか?それともメガ単位?
最大長がわかればfgetsでデータを読み取るバッファを
�@内部変数でとる
�A外部変数でとる
�Bmallocする
最大長がわからないとき、fstatでファイルサイズを知りそのファイルサイズ
でmallocする。
これがだめなら158さんのおっしゃるとうりfgetcとfputcで。
0164デフォルトの名無しさん
NGNGby 162
0165デフォルトの名無しさん
NGNG出力方法に依存する。
大抵の文字端末では何らかのエスケープシーケンスを出力することで実現できる。
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNGfgetsで\nがあるかどうかで行数を数えればいいだけでは?
0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG行の最大長がギガ!!
0171デフォルトの名無しさん
NGNGでも、それなら、fread()の方がましな気が…
0172デフォルトの名無しさん
NGNG例えばこんなのかな。確かに気持ち悪いなw
void
set_unit_matrix(int dim, int **x)
{
int i,j;
for (i = 0; i < dim; i++) for (j = 0; j < dim; j++) x[i][j] = (i == j);
}
0173デフォルトの名無しさん
NGNGもっと詳しく仕様を書け。
0174デフォルトの名無しさん
NGNGお願いします
0175デフォルトの名無しさん
NGNGあと文字列の確保は?
0176デフォルトの名無しさん
NGNG0177176
NGNG0178176
NGNG0179デフォルトの名無しさん
NGNG#include <stdio.h>
#include <float.h>
char *dtob(double x, char *s)
{
int i = 0;
if (x < 0 || x >= 1) return 0;
s[i++] = '0'; s[i++] = '.';
while (x > 0) if ((x *= 2) < 1) s[i++] = '0'; else { x -= 1; s[i++] = '1'; }
s[i] = '\0';
return s;
}
int main()
{
double x;
char buf[-DBL_MIN_EXP+5]; /* maybe wrong */
while(!feof(stdin)) if (scanf("%lf", &x) == 1) if (dtob(x, buf)) puts(buf);
return 0;
}
0180デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
#define DOS_TATE_SIZE 25
int main(void)
{
int i,n;clock_t t;
for(i=0;i<DOS_TATE_SIZE-1;i++)//星を出力する回数
{
for(n=0;n<DOS_TATE_SIZE;n++)puts("");//画面クリア
puts("☆");//星を表示 カーソルは一番下にある
for(n=0;n<DOS_TATE_SIZE-i-2;n++)puts("");//改行の回数が多いほど星が上に表示される
t=clock()/CLOCKS_PER_SEC;//待つために使用
for(;clock()/CLOCKS_PER_SEC-t<=1;){}//1秒待つ
}
return 0;
}
0181専門学校生
NGNG今年から専門学校にはいりました。
0182デフォルトの名無しさん
NGNGちょっとまてそれくらい自分で解け!!!
入門へんではないか!!これからがたいへんだぞ!!
0183デフォルトの名無しさん
NGNG0184174
NGNG助かりました
0185デフォルトの名無しさん
NGNGギガ単位!これって宿題じゃあなくて仕事?
fgetcとfputcを使って地道にやってください。
fread, fwriteを使ってもあまり速度は変わらないと思います。
fgetcとfputcは中でバッファリングしてるので。
0186デフォルトの名無しさん
NGNG何がしてーのかサパーソなんでつ
助けてくだちい
#include <stdio.h>
#define INDEX 1000
main()
{
int i,j,flag,tmp,pnum[INDEX]={2,3};
for(i=4,tmp=2;tmp<INDEX;i++){
for(j=0,flag=0;pnum[j]<i,pnum[j];j++){
if(!(i%pnum[j])){
flag=1;
break;
}
}
if(!flag)pnum[tmp++]=i;
}
for(i=0,j=1;pnum[i]<=INDEX;i++,j++){
printf("%d",pnum[i]);
if(j==10){
printf("\n");j=0;
}else{
printf("\t");
}
}
return 0;
}
0187デフォルトの名無しさん
NGNG移植性を考えるんならそれがいいだろうけど、
実用性を目指すならメモリにあわせて read みたいなシステムコールで
一度にたっぷり読んだ方が早いと思われ。
もっとも、一行の平均長が短いのならファイル作成で時間がかかるから、
stdio で十分かと。典型的なデータがあるなら測定して決めないといかんだろう。
宿題ならコードの簡潔さも加味して fgetc/fputc が良いかと。
0188デフォルトの名無しさん
NGNG0189186
NGNGレスサソクス
しかし、コレにコメント付けれつー宿題なんでつ
結果は解ってるしエラトステネスの篩も知ってるんでつが
アフォな香具師がこれにコメントつけれとかぬかしたもんでほとほと鬱なんでつ
つーか、マンドクセー
0190デフォルトの名無しさん
NGNGint i,j,flag,tmp,pnum[INDEX]={2,3}; /* pnum[] は素数を要素とする配列 */
for(i=4,tmp=2;tmp<INDEX;i++){ /* INDEX個の素数が見つかるまで */
for(j=0,flag=0;pnum[j]<i,pnum[j];j++){ /* i 未満の素数 pnum[j] のいずれかで */
if(!(i%pnum[j])){ /* i が割り切れれば */
flag=1; /* i は合成数である */
break; /* i についてはもう調べなくて良い */
if(!flag)pnum[tmp++]=i; /* 合成数でなければ i を tmp 番目の素数として登録 */
for(i=0,j=1;pnum[i]<=INDEX;i++,j++){ /* INDEX以下の素数 pnum[i] について */
printf("%d",pnum[i]); /* 表示し */
if(j==10){ /* 10個出力する毎に */
printf("\n");j=0; /* 改行を出力 */
}else{ /* 各10個目以外は */
printf("\t"); /* 水平タブを出力 */
0192デフォルトの名無しさん
NGNG/* int main( void ) ; */
/* 小さい方からINDEX個の素数を、stdoutに表示する関数 */
/* 引数なし、返り値=必ず0、失敗した場合の考慮なし */
main() …
0193デフォルトの名無しさん
NGNG違うよ。
0194デフォルトの名無しさん
NGNGこれだとINDEX個の素数は求めて配列に格納するけど
表示するのはINDEX以下の素数じゃね?
0195デフォルトの名無しさん
NGNGつまらない揚げ足をとるアフォがいるスレはここですか?
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGどうあがいても1000個はねーだろって事ジャネーノ
0198デフォルトの名無しさん
NGNGINDEXがあまり大きくなければ、
INDEX以下の素数をすべて表示するのにはINDEXまでの素数を求めるのが速い。
素数定理に基づく経験則を使えばもう少し減らせる。
0201デフォルトの名無しさん
NGNG>>198
- INDEX以下の素数をすべて表示するのにはINDEXまでの素数を求めるのが速い。
+ INDEX以下の素数をすべて表示するのにはINDEX個の素数を求めるのが速い。
>>200
かなり大きいと思うよ。少なくとも10桁以上じゃないかね。
0202デフォルトの名無しさん
NGNG何を根拠にデタラメな事を…
0203デフォルトの名無しさん
NGNG実際どれくらいなのさー
0204デフォルトの名無しさん
NGNG存在含めて>>198全てがデタラメさー
だからどれくらいも何もないさー
0205デフォルトの名無しさん
NGNG余分に生成するより速いことはないんじゃないかな。
0206デフォルトの名無しさん
NGNGえっ!?
0207デフォルトの名無しさん
NGNGどうアプローチしたら良いかすらわからん
http://www.kitnet.jp/icpc/j/kakomondai/Kanazawa-yosen-problems/D.htm
0208デフォルトの名無しさん
NGNG制御文、繰り返し、ポインタ、配列、そして今回の関数ぐらいまでしかやってません。
なのでなるべく簡単なプログラムでお願いします。
整数型変数a,b,c,dにそれぞれ値を与えて、この4つをa<=b<=c<=d
の順番に並べる関数sort4(&a,&b,&c,&d)を書きなさい。
結果は、main関数内で a,b,c,dの順で出力すること。
0209デフォルトの名無しさん
NGNG宿題の文は丸写ししましょう。
あなたの勝手な(勘違いが多分に含まれた)意味不明な問題を書かれても困ります。
0210デフォルトの名無しさん
NGNG自分なりに噛み砕いて分からない所を聞くんだと思ってたが
# 説明ベタは別問題
0211デフォルトの名無しさん
NGNG英語読むのあまり自信ないんで確認。
こんな解釈であってるか?
1) 数の桁数とヒントの数を入力。ともに0 0なら終了
2) ヒントを指定した数の分だけ入力。ヒントは、数、hitの数、blowの数
3) ヒントから推測できる数を出力。推測できなかったらNOを出力
4) 1) に戻る
0213デフォルトの名無しさん
NGNGvoid sort4(int* a, int* b, int* c, int* d)
{
swapif(*a,*b);
swapif(*a,*c);
swapif(*a,*d); // aが一番小さい数になる
swapif(*b,*c);
swapif(*b,*d); // bが次に小さい数になる
swapif(*c,*d); // ってな感じでソート完了
}
ifとか書いてくのめんどくさかったから、マクロにしちゃった。
こりゃネタにしかならんかな?
0214デフォルトの名無しさん
NGNG>>208にも書きましたが、何せ初心者なのでdefineとか書かれても分かりません。
あとmainの部分は・・・。省略ですか?
0215デフォルトの名無しさん
NGNGmainプログラムから12個のデータ a[0],a[1],…a[11]を配列で受け取り
その平均値mからの偏差 a[i] - m(i=0,1,2,…,11)
を配列として計算する関数を作れ。熊谷の平均気温は1月から12月までそれぞれ
3.2, 3.9, 7.0, 12.9, 17.7, 21.1, 24.6, 26.2, 21.9, 16.0, 10.6, 5.6(度)
である。その関数を利用して各月の気温の偏差を書き出すmainプログラムも作れ
です。改めてお願いします…
0216デフォルトの名無しさん
NGNGhttp://www.st.rim.or.jp/~phinloda/cqa/cqa8.html
Q 【XORのトリック】
0217デフォルトの名無しさん
NGNGヨロシクお願いします。
0218デフォルトの名無しさん
NGNGmainは a, b, c, d の数値代入と表示だけだろ
0219デフォルトの名無しさん
NGNGA=((A+5)/10)*10;
0220デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void sort4(int*a,int*b,int*c,int*d)
{
int i,n,num[4],minNum[4]={32767,32767,32767,32767},used[4]={0},check=-1;
num[0]=*a;num[1]=*b;num[2]=*c;num[3]=*d;
for(i=0;i<4;i++)
{
check=-1;
for(n=0;n<4;n++)
{
if(minNum[i]>=num[n]&&used[n]==0)
{minNum[i]=num[n];check=n;}
}
if(check!=-1)used[check]=1;
}
*a=minNum[0];*b=minNum[1];*c=minNum[2];*d=minNum[3];
}
int main(void)
{
int a,b,c,d;srand(time(NULL));
a=rand();b=rand();c=rand();d=rand();
printf("a==%5d b==%5d c==%5d d==%5d\n",a,b,c,d);
puts("ソート↓");sort4(&a,&b,&c,&d);
printf("a==%5d b==%5d c==%5d d==%5d\n",a,b,c,d);
return 0;
}
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void swap(int *a,int *b){int tmp=*a;*a=*b;*b=tmp;}
void r_sort(int **p, int *end){
int **x;
if(*p==end) return;
for(x=p+1;*x!=end;++x)
if(**(x-1)>**x) swap(*(x-1),*x);
r_sort(p,*(x-1));
}
void sort4(int *a,int *b,int *c,int *d){
int *p[] = {a,b,c,d,NULL};
r_sort(p,NULL);
}
main(){
int a,b,c,d;
srand(time(NULL));
a=rand();b=rand();c=rand();d=rand();
sort4(&a,&b,&c,&d);
printf("%d %d %d %d",a,b,c,d);
}
0223217
NGNGすいません、、、
それの意味が分かりません。。。
Aに13を代入したとすると、、、
((13+5)/10)*10=18になりますよね??
どういう意味なのでしょう。。。
0224デフォルトの名無しさん
NGNGやってみてから文句言え
0225デフォルトの名無しさん
NGNGvoid r_sort(int **p, int **end){
int **x;
if(p==end) return;
for(x=p+1;x!=end;++x)
if(**(x-1)>**x) swap(*(x-1),*x);
r_sort(p,x-1);
}
void sort4(int *a,int *b,int *c,int *d){
int *p[] = {a,b,c,d};
r_sort(p,p+sizeof(*p));
}
0226デフォルトの名無しさん
NGNG関数内の swapif(*x,*y); を全部
if(*x >= *y){ int tmp=*x; *x=*y; *y=tmp;} みたいに書き直せばいいよ。
0227デフォルトの名無しさん
NGNGいっそのこと全探索してしまうとか。
最大でも 10! = 3628800 通りだし、なんとかなりそうな気も……。
0228デフォルトの名無しさん
NGNGそれに10掛けると10
0229デフォルトの名無しさん
NGNGもしAがdoubleであれば
A = floor((A + 5) / 10) * 10;
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
void MakeHensa(const double a[12],double hensa[12])
{
int i;
double n,m,l,hzh;
for(i=0,n=0;i<12;i++)n+=a[i];
m=n/12;
for(i=0,n=0;i<12;i++)n+=pow(a[i],2);
n/=12;
for(i=0,l=0;i<12;i++)l+=a[i];
l/=12;l=pow(l,2);
hzh=sqrt(n-l);
for(i=0;i<12;i++)hensa[i]=(a[i]-m)/hzh*10+50;
}
int main(void)
{
int i;
double ondo[12]={3.2,3.9,7.0,12.9,17.7,21.1,24.6,26.2,21.9,16.0,10.6,5.6},hensa[12];
MakeHensa(ondo,hensa);
for(i=0;i<12;i++)printf("%2d月:%4.1f℃(%4.1f)\n",i+1,ondo[i],hensa[i]);
return 0;
}
0233217
NGNGなるほど。。。
ありがとうございます。
ちょっと作ってみたんですけど、家のパソコンではなぜかコンパイル出来ないんで合ってるか分かりませんが、、、
どうでしょう??
#include <stdio.h>
main(){
int a;
printf("正の値を打ち込んでください。");
scanf("%d",&a);
a=((a+5)/10)*10;
printf("一の位を四捨五入してみました。%f \n",a);
return 0 ;
}
0234デフォルトの名無しさん
NGNG#include <stdio.h>
void hensa(double * ans, const double * data)
{
int i;
double ave=0;
for(i=0; i<12; i++) ave += data[i];
ave /= 12; //これが平均値
for(i=0; i<12; i++) ans[i] = data[i]-ave; //偏差を計算
}
int main()
{
int i;
double a[12]={3.2, 3.9, 7.0,12.9,17.7, 21.1, 24.6, 26.2,21.9, 16.0, 10.6, 5.6};
double b[12]; //偏差を格納するための配列
hensa(b,a);
for(i=0; i<12; i++) printf("%3.3f ",b[i]);
printf("\n");
return 0;
}
>>232 この問題って多分標準偏差じゃなくてただの差じゃねぇか?
0235デフォルトの名無しさん
NGNG何をしたいんだ?
printf("一の位を四捨五入してみました。%d \n",a);
じゃねーの?
0236デフォルトの名無しさん
NGNGだろうな
0237デフォルトの名無しさん
NGNGそうか。それならもう少し易しかったのに。でも、偏差値の求め方を
勉強する機会なんてそう無いと思うから、良かったかな。
0238233
NGNGdとfの違いすら分かりません・・・T_T
大学の授業は男しか居なくて仲良しができなくて・・・。
yahooで調べてみてもそんな簡単なことのってませんでしたT_T
あの、それをdにしたら平気なんでしょうか??
0239デフォルトの名無しさん
NGNGprintfのとこみりゃのってんだろ。
0240デフォルトの名無しさん
NGNGうん
あとネットでprintfしらべるよろし
0241233
NGNG分かりました。早速調べます〜!
ありがとうございました!!
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGおまえが一番話の流れを読めてないぞ。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG安らかに眠れ。
0254233
NGNGほんとありがとうございました。笑顔
0255デフォルトの名無しさん
NGNGINDEX以下の素数を求めるにはINDEX以下の素数を求めれば良い
つーか、INDEX以下の素数を求めるのに
INDEX個の素数を求めた方が速いと言う事はありえない
求め方が分からない香具師は「素数 "列挙" アルゴリズムを極めるスレ」でも読め
http://pc2.2ch.net/test/read.cgi/tech/1018657457/
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGそこは、「キリ番ゲッツ!!」って言わないと
0258デフォルトの名無しさん
NGNGclock()は差を取らないとダメなんじゃない?
0259デフォルトの名無しさん
NGNGまあ、これは最初に提示されたソースが無駄なことをしている、ってことで。
それにエラトステネスのふるいではないし...。
0260デフォルトの名無しさん
NGNG1000以下の完全数を全て求めて表示するプログラムを書け。完全数とは、
約数(1とその数自身を含む)の和がその数の2倍に等しい数である。
0261デフォルトの名無しさん
NGNGint main(void){
int x,wa,y;
wa=0;
for(x=0;0<=x && x<=1000;x=x+1){
for(y=1;0<=y && y<=x;y=y+1)
{
if(x%y==0)
wa=wa+y;
}
if(x*2==wa)
printf("kanzensuu:%d",wa);
return(0);}
}
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGサンクスです。
単純なことに気づかない漏れは・・・
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNGスタックを用いて引き算をする際、
x = pop();
push(pop() - x);
としますよね。これはいいんですが、
push(-pop() + pop());
ではダメだと言われてしまいました。自分にはこの二つの違いがわかりません・・・。
どなかたご教授くださればありがたいです。
0267デフォルトの名無しさん
NGNG式の評価順でしょう。-pop() が実行された後に pop() が実行される場合もあるし、
pop() が実行された後に -pop() が実行されることもある。評価順によって結果は異なりますよね?
0268デフォルトの名無しさん
NGNGなるほど!
どっちから実行されるかはその場合によって変わる事があるんですね。
勉強になりました!!
これでレポートが書けます・・・。本当に感謝です。ありがとうございました。
0269デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
int i,j;
j=10;
for (i=9; i>0 ;i--){
j=j*i;
}
printf ("%d\n",j);
}
前回の課題内容であるN!の階乗計算プログラムに対し、階乗計算の部分を関数化せよ。但し、次の条件に従うこと。
・関数名はfactorialとすること
・int型の変数を関数の引数として受け取り、その引数に従って関数内部で階乗計算を行うこと
・階乗の計算結果を関数の返値とすること
・main文でfactorialを呼び出した後、結果をprintf文で画面表示すること
なんですが関数のところでの変数宣言がイマイチわかりません。
どなたか教えてください。
0270269
NGNG0271デフォルトの名無しさん
NGNGlong int factorial(long int N)
{
long int i=N-1;
for(; i>1; i--){
N=N*i;
}
return N;
}
int main()
{
long int N=10; //intならN=10ですでにオーバーフローするぞ
N=factorial(N);
printf("N!=%ld\n",N);
return 0;
}
0272デフォルトの名無しさん
NGNG>int型の変数を関数の引数として受け取り
問題文を良く読め
つーか、intが2バイトってネタは、もう飽きた
0273デフォルトの名無しさん
NGNG分かった!・・・・・・・・・・・・・・・・・・・・・・・・・・かもしれない。
俺も最初同じだろって思ったtが、多分こういうことなんじゃないの?
x = pop();
push(pop() - x);
の場合、スタックの一番上の値から次の値が引かれる。
一方、
push(-pop() - pop());
の場合、前半の-pop()が先に呼ばれるか、後半の+pop()が呼ばれるかは
どうなるか分からないので、どちらからどちらが引かれるかは予想できない。
(俺が知らんだけで、ANSI Cとかで前から後ろと保証されているかもしれんがなぁ)
だからきっと、266にだめといった人は、関数呼び出しの順番が明確でないと
言いたかったのでは?
もし、266がそこまで考慮して後者の書き方をしたのなら
あんたの方が一枚上手だったということで。
で、俺の環境(XP+VC6)でテストしたところコンパイルオプションによって値が変わった。
具体的に言うと、通常のコンパイルだとうまく動いたが、最適化してコンパイルすると
値が正負逆になっておかしくなった。
0274273
NGNG( ゚ Д゚)
( つ旦O
と_)_)
_, ._
( ゚ Д゚) ガシャ
( つ O. __
と_)_) (__()、;.o:。
゚*・:.。
とっくに書かれてた・・・
0275デフォルトの名無しさん
NGNGこことか読んでみるとよろし
http://www.catnet.ne.jp/kouno/c_faq/c3.html#4
0276デフォルトの名無しさん
NGNG長文乙彼
でも、評価順は良くあるネタだから
それくらいは、憶えておいて、一瞬で見抜かないとね…
0277272
NGNGこの場合大抵intでいけるな。
0278デフォルトの名無しさん
NGNG何つーか…まぁいいや
0280デフォルトの名無しさん
NGNG//もう古い話題だが、こういう問題出す教師には次の回答で復讐
int a,b,c,d;//ソートする対象
void sort4(int *aa,int *bb,int *cc,int *dd){
int a=*aa,b=*bb,c=*cc,d=*dd;
#define sorted(a,b,c,d) (((a)<=(b))&&((b)<=(c))&&((c)<=(d)))
#define store(aaa,bbb,ccc,ddd) {*aa=aaa,*bb=bbb,*cc=ccc,*dd=ddd;return;}
#define dosort(aaa,bbb,ccc,ddd) if(sorted(aaa,bbb,ccc,ddd))store(aaa,bbb,ccc,ddd)
dosort(a,b,c,d);dosort(a,b,d,c);dosort(a,c,b,d);dosort(a,c,d,b);
dosort(a,d,b,c);dosort(a,d,c,b);dosort(b,a,c,d);dosort(b,a,d,c);
dosort(b,c,a,d);dosort(b,c,d,a);dosort(b,d,a,c);dosort(b,d,c,a);
dosort(c,a,b,d);dosort(c,a,d,b);dosort(c,b,a,d);dosort(c,b,d,a);
dosort(c,d,a,b);dosort(c,d,b,a);dosort(d,a,b,c);dosort(d,a,c,b);
dosort(d,b,a,c);dosort(d,b,c,a);dosort(d,c,a,b);dosort(d,c,b,a);
}
#define p(a,b,c,d) printf("%i %i %i %i\n",a,b,c,d);
int main(){
a=110;b=291;c=3431;d=43;//本当はscanf等で読み取るのが良い。
p(a,b,c,d);
sort4(&a,&b,&c,&d);
p(a,b,c,d);
return 0;
}
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNG暇だったので作りました。よく問題が分からなかったのですが、hit,browと
書いてあったのでそれっぽく。その問題の解答としては正しいかは分かりませんが。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=73
0283デフォルトの名無しさん
NGNGは>>208へのレスだな?
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNGする上で重要な手段。>>280のコードはハードウェア化するとquick sortより
早いだろうね。
0286デフォルトの名無しさん
NGNGここのハフマンで、どの文字がどういうビット列になったかを調べたいのですがどうしたらいいですか?
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNGこのスレに来てるってことは実際に作ってくれって言ってんのか?
0289デフォルトの名無しさん
NGNGどうかこの問題を解いては頂けないでしょうかm(_ _)m
学生7名の国語,数学,英語の成績のファイルindatがある。このファイルを読み込んで(6)
の形式にある形で結果をファイルresultに出力せよ。indatの内容
60 80 70 63 90 74 72
82 60 85 90 72 75 78
89 75 90 87 85 74 72
1行目から順に国語,数学,英語の成績である。
(1)1次元配列が与えられているときその総和を求める関数sumを作れ。
(2)総和で求めたsを利用して平均値を求める関数meanを作れ。
0290デフォルトの名無しさん
NGNG(4)標準偏差を求めるsigmaを作れ
(5)データxとデータyの標準偏差をσx,σyとしたとき,相関係数を求めるsokanを作れ。
それを使って英語と数学の相関係数を求めよ。
ただし,計算式は(3)のhensa-x,hensa-yを用いると
相関係数=((hensa-x)(hensa-y))/(σx*σy)の二乗根
(6)resultファイルの出力形式
No. Jap Math Eng sum
1 60 82 89 ○
2 80 60 75 ○
・・・
7 72 78 72 ○
mean yy.y yy.y yy.y zzz.z
sigma yy.y yy.y yy.y
sokan=xx.xxxxxx
↑のような形で
お助けください…
0292デフォルトの名無しさん
NGNG問題を出すプログラムではなく、問題を解くプログラムを作らなくてはならない
のです。
4 6
7360 0 2
2507 0 1
9713 1 1
9678 2 2
0 0
というテキストを読み込んで、
9876
と出力させます。
一旦すべての可能性を記憶しておいて、条件にあわないものを間引いていく
方法が考えられますが、うーん...。
0293デフォルトの名無しさん
NGNGつまり、読み込んだヒントをもとに適合する数値を探せという問題だ。
全数探査は簡単だが10桁にもなると大変な計算量になるし、
適切に推論しようとすると論理処理をコーディングするのが面倒くさい。
このバランスが鍵だね。
宿題にしてはちょっとしたプログラムになるな。
0294211
NGNGhit and blowで数を推測するプログラムは昔組んだことある。
そのときは、10×Lの配列にヒントから得られる確率を足していくという手段を
とったんだけど、えらい面倒臭かった。
一応は動いたんだけど、どこか勘違いがあるらしく確率の総和が
一定にならないときがあった。
0295289
NGNGどうかよろしくお願いしますm(_ _)m
0296デフォルトの名無しさん
NGNGだれかたすけてあげて!!!!!
0297デフォルトの名無しさん
NGNGそれから一番最後の相関係数は何と何の相関係数なんだ?
0298デフォルトの名無しさん
NGNGこの○はギャグかなんか?
0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=103&fi=no
適当
0301デフォルトの名無しさん
NGNGatoiで二進数からいじるやり方は分かったんだけど逆がどうしても・・・。
おねがいします〜。
0303デフォルトの名無しさん
NGNG0304289
NGNG素早い対応ありがとうございましたm(_ _)m
今日の24時まで提出に延びたのですが
>>300さんのやつだと7人各々の3教科合計が表示されませんでした。
試行錯誤してみたんですが良い方法ありませんでしょうか?
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNGmain()の
for(i=0;i<n;i++) fprintf(dp,"%d %2.0lf %2.0lf %2.0lf ○\n",i,
japanese[i],math[i],english[i],japanese[i]+math[i]+english[i]);
の部分の「○」を%3.0lfにする。
0308デフォルトの名無しさん
NGNGどなたか解いていただけないでしょうか?
ちなみにC言語です。宜しくお願い致します。
【問題】ttp://nekomimi.ws/~asanagi/cgi-bin/ragnarok/source/20030707215657-q1.txt
【記憶のソース】ttp://nekomimi.ws/~asanagi/cgi-bin/ragnarok/source/20030707220012-hairetu.txt
0309308
NGNGすみません。
0310デフォルトの名無しさん
NGNG「斜め掛け」って、な〜に?「斜め足し」の間違い?それとも別に出された課題なの?
0311308
NGNG斜め足しでした…すみません。
0312デフォルトの名無しさん
NGNG読めん
0313308
NGNGttp://r0-up.hp.infoseek.co.jp/cgi-bin/upboard/source/065.txt
ttp://r0-up.hp.infoseek.co.jp/cgi-bin/upboard/source/066.txt
0314デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=74
0315デフォルトの名無しさん
NGNGもったいないから、配列は0から使おうね。
#include <stdio.h>
#define SIZE 10
int main()
{
int a[ SIZE + 1 ][ SIZE + 1 ];
int i, j, k;
/* make matrix */
for( i = 0; i < SIZE; i++ ){
for( j = 0; j < SIZE; j++){
a[ i ][ j ] = i * 10 + j + 1;
}
}
/* add right-down line element */
for( i = 0; i <= SIZE; i++){
a[ i ][ SIZE ] = a[ SIZE ][ i ] = 0;
for( j = SIZE - i, k = 0; j < SIZE; j++, k++){
a[ i ][ SIZE ] += a[ k ][ j ];
a[ SIZE ][ i ] += a[ j ][ k ];
}
}
a[ SIZE ][ SIZE ] /= 2;
/* print answer */
for( i = 0; i < SIZE + 1; i++ ){
for( j = 0; j < SIZE + 1; j++)
printf( "%4d", a[ i ][ j ] );
printf( "\n" );
}
return 0;
}
0316315
NGNG0318デフォルトの名無しさん
NGNGCで*.au形式の簡単な音声ファイルを作るプログラムなのですが、
出力されたauファイルが開けません。原因を追究すると
ヘッダの中のデータはbig endianで無いといけないようです。
ウチのアスロン君はlittle endianのCPUなので、これでは出力ができません。
big endian → little endianのデータ変換の仕方を教えてください(´・ω・`)
ソース
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=104
0319デフォルトの名無しさん
NGNGバイト単位で読み込んで入れかえるだけ
0320デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
#define N 100
main(){
return 0;
}
int sigma(a,d){
int i,b[N];
double s=0;
seiki(a,d,b[]); (★)
for(i=0; i<N; i++){
s = s + b[i];
}
return s;
}
seiki(a,d,b[]){ (★)
int i, seed, random,b[N];
seed = 2;
srand(seed);
for(i=0;i<N;i++){
random = rand()*4/randmax;
b[i]=sqrt(N/2/PI)/a/d/d*exp((-1)*random*N/2/a/a/d/d);
} }
0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG(´・ω・`)も、もうちっと詳しくおながいできませんか
0323デフォルトの名無しさん
NGNG手元の環境で実行できないから自信ないけど、
int i;
unsigned char *p;
p = ( unsinged char* ) &hdr.hoge;
for( i = sizeof(int) ; i != 0; i-- )
printf( "%02x", p[ i - 1 ] );
って1ヘッダ要素づつファイルに書き込んだらどうかな?
0324デフォルトの名無しさん
NGNGなんで
fp = fopen("myfile.au", "w");←ここ
バイナリでの書き込みじゃないの?
0325デフォルトの名無しさん
NGNGUNIXだから
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGカーソルを動かし、迷路を解いていくゲームを作ることにしたのですが、
迷路生成とcursesによるカーソル移動は、それ単体ではきちんと動くのですが、
この二つを組み合わせるとうまいこと動いてくれません。
手元の環境は赤帽8です。みなさんよろしくおながいします。
ソース(迷路生成)http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=105
(curses) http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=106
0328211
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=107
一応作った。
最初は確率を求める方針で作ってたんだけど、途中から枝刈りしながらの探索に切り替えた。
枝刈りはどの程度効いているか調べていない。もっとシンプルにしてもそれなりの速度はでるかも。
0329デフォルトの名無しさん
NGNG次は、ランダムで問題を作り、それに解答するプログラムだな
0330デフォルトの名無しさん
NGNG上のは何も表示されない。
下のは実行出来なかった。UNIXとかなのかな?
>>328
いきなり入力待ちみたいになってて、やり方が分からんから、適当に数値を
何回か入力してたら、いきなりエラーが発生しました、終了しない場合は
製造元になんたらと変なサウンドと共に出た。ドラクエの冒険の書が
消えた時の音みたいで、めちゃびびった。
0331デフォルトの名無しさん
NGNGすみませんが教えて頂けないでしょうか?
≪問題≫
a0 = 0, a1=1, an+2 = an+1 + an (n は 0 以上)で定まる数列 an を
求める関数 int fibonacci(int n) を、再帰を使って作成しなさい。
動作確認をするために、20項まで出力する main 関数も作成しなさい。
この数列は、Fibonacci(フィボナッチ)数列と呼ばれ、
a2 = 1, a3 = 2, a4 = 3, a5 = 5, a6 = 8, a7 = 13, ・・・となる。
実行例
Fibonacci(0) = 0
Fibonacci(1) = 1
Fibonacci(2) = 1
:
:
Fibonacci(19) = 4181
Fibonacci(20) = 6765
0332331
NGNG#include <stdio.h>
int fibonacci(int n) {
if (n == 0) return 0;
else if (n == 1) return 1;
else return fibonacci(n - 1) + fibonacci(n - 2);
}
int main(void) {
printf("%d\n", fibonacci(20));
return 0;
}
0333デフォルトの名無しさん
NGNG標準入力からの入力に現れたアルファベット小文字をカウントする
プログラムを作成しなさい。アルファベットは、a から z まで
連続した値を取るとして処理して構いません。
実行例:(下線部分は実行時に入力するか、ファイルから読み込む)
As I have explained earlier, using XDMCP to display
X across Internet is basically a no-no
Ctrl + Z
アルファベット小文字の出現回数
'a':8 'b':1 'c':2 'd':2 'e':7 'f':0
'g':1 'h':1 'i':6 'j':0 'k':0 'l':5
'm':0 'n':6 'o':4 'p':2 'q':0 'r':4
's':7 't':3 'u':1 'v':1 'w':0 'x':1
'y':2 'z':0
0334デフォルトの名無しさん
NGNGただしA〜Hは1から8までの数字である。
これ、わっかるかなぁ〜?
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGCtrl+zって何?改行と違うの?
>>334
それ、わっからない〜
0337デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int main(){
int count[0x80]={0};
int i;
while( (i=getc(stdin))!=EOF ){
if(i>=0x80){ // ASCII文字以外破棄
i=getc(stdin);
if(i==EOF) break;
continue;
}
count[i]++;
}
for(i='a';i<='z';i++){
printf("%c:%d\n",i,count[i]);
}
return 0;
}
0338デフォルトの名無しさん
NGNGmainが違うの?
int i;
for(i=0; i<21; ++i)
printf("Fibonacci(%d)=%d ",i, fibonacci(i));
0339デフォルトの名無しさん
NGNG20項なのに21と書くのはスマートじゃない。
0340デフォルトの名無しさん
NGNGCtrlZはAsciiではSUBですが、
一部のOSではテキストファイルの終端文字として使われていたそうです。
また、一部のOSでは標準入力の打ちきりに使うそうです。
0341デフォルトの名無しさん
NGNGにするのはごくごく自然。
0342デフォルトの名無しさん
NGNGこういう場合は setinel っていうじゃないの?
0343デフォルトの名無しさん
NGNGint fibonacci(int n) {
return (int)(pow((1 + sqrt(5) / 2, n) / sqrt(5) +0.5);
}
0344miss
NGNGreturn (int)(pow((1 + sqrt(5)) / 2, n) / sqrt(5) +0.5);
}
0345デフォルトの名無しさん
NGNGどこまで正しいか分からないから良くない。
0346デフォルトの名無しさん
NGNGA=3 B=2 C=5 D=1 E=6 F=7 G=4 H=8
A=1 B=3 C=4 D=6 E=2 F=8 G=7 H=5
A=6 B=2 C=8 D=1 E=3 F=4 G=7 H=5
A=2 B=3 C=5 D=6 E=1 F=7 G=8 H=4
A=6 B=1 C=7 D=2 E=3 F=5 G=8 H=4
A=2 B=6 C=8 D=3 E=1 F=4 G=5 H=7
A=3 B=1 C=4 D=2 E=6 F=8 G=5 H=7
0347デフォルトの名無しさん
NGNG交互に(最大三個まで)取っていき、最後の一個をとったほうが負け
自分先手
コンピューター後攻
取るごとに残りの石の数を表示
お願いします
0348デフォルトの名無しさん
NGNGプログラムは?
0349デフォルトの名無しさん
NGNGそれ後攻の方が絶対勝つんじゃあ
0350デフォルトの名無しさん
NGNGそれでかまいませんので
0351デフォルトの名無しさん
NGNG遠慮しとく
0352デフォルトの名無しさん
NGNGint
main()
{
int s = 25, n = 3, p, c;
printf("start: %d stones left\n", s);
while(!feof(stdin)){
printf("you: "); fflush(stdout);
if (scanf("%d", &p) == 1) {
if (p<1 || n<p) { printf("not in 1..%d. retry\n", n); continue; }
s -= p;
if (s == 0) { printf("you won\n"); return 0; }
c = s%(n+1) != 0 ? s%(n+1) : 1;
s -= c;
printf("cpu: %d (%d stones left)\n", c, s);
if (s == 0) { printf("you lost\n"); return 0; }
}
}
printf("\nabort\n");
return 1;
}
0353デフォルトの名無しさん
NGNG最後の一個をとったほうが負け
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG◯│×│
─┼─┼─
│◯│
─┼─┼─
│ │
0356デフォルトの名無しさん
NGNGそのプログラムにはバグがあるわけだが・・・
0357デフォルトの名無しさん
NGNGなるほど。勉強になりました。ありがとう。
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNG反復構造でコーディングしてくれえ
0360211
NGNG>>207 のリンク先にあるSample Inputを入力すると
Output for the Sample Inputが出力される。
(という動作確認をしました)
0361デフォルトの名無しさん
NGNG反復構造とは何ですか?
0362デフォルトの名無しさん
NGNG再帰構造を使わないやつです
0363デフォルトの名無しさん
NGNGhttp://akipon.free-city.net/page003.html
0364デフォルトの名無しさん
NGNG結局スタック的なデータ構造がいるという・・・
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNGもう少し詳しくおながいします。英語が分からないので。
何桁入力して改行、それを何回行なう、エラーはどういうときに発生するか等。
>>361
なぜたわしに聞くの?
>>362さんの言うように、同じ関数内を中心にforとかを使うのだと思います。
0367361
NGNGこんなのでどうでしょう。
struct BTree {
int data;
struct BTree *left, *right;
};
void insert(struct BTree *at, struct BTree *ins)
{
struct BTree *cur = at;
while (cur != NULL) {
struct BTree *whitch =
ins->data > cur->data? cur->right: cur->left;
if (whitch == NULL) {
whitch = ins;
break;
}
cur = whitch;
}
}
0368デフォルトの名無しさん
NGNGまず、インデントとC、C++混在記法を何とかして下さい。
0369デフォルトの名無しさん
NGNG0370361
NGNGstruct BTree {
int data;
struct BTree *left, *right;
};
void insert(struct BTree *at, struct BTree *ins)
{
struct BTree *cur = at;
while (cur != NULL) {
struct BTree *whitch =
ins->data > cur->data? cur->right: cur->left;
if (whitch == NULL) {
if (ins->data > cur->data) {
cur->right = ins;
} else {
cur->left = ins;
}
break;
}
cur = whitch;
}
}
0371デフォルトの名無しさん
NGNG0373211
NGNG6 4
160348 0 4
913286 2 3
431289 3 1
671283 3 3
これはSample Inputの最初の5行だけど、最初の行は桁数とヒント数を入力する。
桁数の後スペースを一つ入れてヒント数を入力し改行する。
残りの4行は試行する数とhit数とblow数からなるヒントを入力する。
最初の行の桁数と同じ桁の数を入力して、スペースを一つ入れ、hit数を入れ、
スペースを入れ、blow数を入れ、改行する。
同様に残りの4行を入力する。
ここまで入力するとOutput for the Sample Inputの最初の行の
637281
が出力される。
この後また桁数とヒント数を入力する状態になる。
桁数とヒント数を入力する代わりに 0 0 を入力するとプログラムが終了する。
ヒントをヒント数分入力しても、数が一つに決まらないときは NO を出力する。
0374211
NGNG0375361
NGNG勘弁してくださいね。
insertの引数atは常にルートノードのアドレスということ
になります。
あと、insertする順番によっては非常に効率の悪いB木に
なりますね。
たとえば、1,2,3,4,5をこの順番でinsertするとリストに
近い構造になってしまう。
深さを優先にしてB木の構造そのものを組替えるような
insertを作ったら面白いですね。
あつ、このinsertだと最初のノードは作れないね。
その辺はよろしく。
0376デフォルトの名無しさん
NGNGそれ、B木っていうの?
どうみても、二分木みたいだけど。
0377デフォルトの名無しさん
NGNGBinaryTreeの略
0378デフォルトの名無しさん
NGNG書いてある通りにやったら、その通りに出来ました。
分かりやすく教えてくれて、ありがとう。
0379デフォルトの名無しさん
NGNG0380367
NGNGB木=二進木=binary treeじゃあないの?
それともB木=balanced tree?
0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG後者が正解。
0383デフォルトの名無しさん
NGNGhttp://www.google.com/search?num=50&hl=ja&lr=lang_ja&q=B%96%d8
一番目はこれ
http://www.cs.u-gakugei.ac.jp/~miyadera/LECTURE/algo2/5-2.html
0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNGどっちも「バ」な訳だが。
0386デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNG二(多)分木とバ木だろアホ
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG0390367
NGNG失礼失礼。
でも、宿題の本質は再帰構造でなくて反復構造でということ。
Balanced treeを再帰構造で作れる人だったら、反復構造の
二進木insertのコードを見ればOKだと思うのですが。
要するに、内部でループするということです。(苦しい!)
0391デフォルトの名無しさん
NGNG約97件中...
0392デフォルトの名無しさん
NGNG次のベクトルaを求めるプログラムを示せ。
a=TUb
「cos θ1 -sinθ1 0 0┐
T=|sin θ1 cosθ1 0 0|
|0 0 1 0|
└0 0 0 1」
「cos θ2 -sinθ2 0 l1┐
U=|sin θ2 cosθ2 0 0|
|0 0 1 0|
└0 0 0 1」
「l2┐
U=|0|
|0|
└1 」
手計算した後,それを出力しようとも思ったのですがいくらなんでもまずいかなぁと…
よろしくお願いします。
7/10午前まで募集
0393318
NGNG有難うございます。助言を元に考えてみて↓こんな風になりました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=108
しかし↓ここでエラーが… (´・ω・`)何故?
lt_smpRt = (unsigned char*)&hdr.samplingRate;
for(i=sizeof(int), j=0; i!=0; i--, j++)
bg_smpRt[j] = lt_smpRt[i-1];
0394デフォルトの名無しさん
NGNG*bg_smpRtの初期化どこよ?(w
0395デフォルトの名無しさん
NGNG(´・ω・`)すいません、マジにわからないので教えてください。
0396318
NGNGえ〜っと、もうどこから突っ込んでいけばよいのやら…(苦笑)。
エラーが出た理由は>>394さんのご指摘どおり、 bg_smpRt の領域が確保されていないから。
この場合は malloc するより、 unsigned char *bg_smpRt[sizeof(int)]; という感じで宣言した方がいいと思う。
というわけで、同様の理由により他の bg_hoge すべてでエラーが発生するはずなんだけど、本当に一箇所だけだった?
というか、なんでわざわざエンディアン変更後を保存するのかな?
構造体の中身に直接書くのはマズイの?
あと、書き出すときにちゃんとゼロパディングしないと、元とは違った値になっちゃうことがあるかもよ。
0397323
NGNG0398デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
double * mmul44(double * am, double * lm, double * rm, int rc)
{
int i, j, k;
for(i=0; i<4; i++) for(j=0; j<rc; j++) for(k=0; k<4; k++)
am[i*rc+j] += lm[k+i*4]*rm[j+k*rc];
return am;
}
int main()
{
int i;
double theta1=1.0, theta2=2.0;
double cs1=cos(theta1), sn1=sin(theta1), cs2=cos(theta2), sn2=sin(theta2);
double T[16]={cs1,-sn1,0,0, sn1,cs1,0,0, 0,0,1,0, 0,0,0,1};
double U[16]={cs2,-sn2,0,1, sn2,cs2,0,0, 0,0,1,0, 0,0,0,1};
double b[4] ={2,0,0,1}, a[4],tmp[16];
mmul44(a,mmul44(tmp,T,U,4),b,1);
printf("a=TUb\n");
for(i=0; i<4; i++) printf(" %f\n",a[i]);
return 0;
}
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG(´・ω・`)解説どうもです。自分まだまだヘボでしてどうかご勘弁を…
頑張って仕上げてみます
0402デフォルトの名無しさん
NGNG追加した要素が 集合の新しい要素の場合1、既に存在していた場合0を返すとする。
int addset(Set &set,char a)
前スレで書き込んだ者ですが答えが返ってこず、いまだにさっぱりわかりません。
どなたか分かる方いましたらお願いします。
0403デフォルトの名無しさん
NGNG文字の集合とは?
構造体Setのメンバーは?
0405デフォルトの名無しさん
NGNGこんなん?
#include <limits.h>
struct Set
{
char data[2<<CHAR_BIT] ;
} ;
int addset( Set &set, char a )
{
int ret = set.data[a];
set.data[a] = 1 ;
return ret ;
}
0406デフォルトの名無しさん
NGNGすいません・・・これだけの情報しか与えられていません・・・・(涙)
0407402
NGNGレスありがとうございます!
参考にさせて頂いてもうすこし考えてみます
0408デフォルトの名無しさん
NGNGchar data[(UCHAR_MAX + 1) / CHAR_BIT + 1];
} Set;
int addset(Set &set, char a)
{
set.data[a / CHAR_BIT] &= a % CHAR_BIT;
}
0409405
NGNGつー訳で、1と0返すのが逆になってるので訂正
int addset( Set &set, char a )
{
int ret = set.data[a] ^ 1 ;
set.data[a] = 1 ;
return ret ;
}
0410デフォルトの名無しさん
NGNGどこに突っ込んで良いのやら…
0411405
NGNGと言う訳で、疲れてるようなので、これだけ訂正して、もう寝まふ
struct Set
{
char data[1<<CHAR_BIT] ;
} ;
0412402
NGNG0414デフォルトの名無しさん
NGNGなら生の配列をそのまま集合だとするのが良いとでも?
0415デフォルトの名無しさん
NGNG次々と文字を入力して、それをそのまま出力するプログラムを書け。
ただし、英小文字(aからzまで)は、すべて対応する英大文字に変換してから出力すること。
小文字から大文字への変換は32を引けばよい(Cは大文字と小文字の間の変換をもっと簡単に
書く手段も提供しているのだが、文字コードの練習のために、あえてポータビリティの点で問題の
ある書き方を採用することにする)
文字コード(数字)を入力していく場合のプログラムなら書けるのですが、
文字を入力していって小文字だった場合変換するという処理の仕方が分かりません。
文字コード→文字のやり方なら知っているのですが、文字→文字コードのやり方がわからないです
誰か・・・(´・ω・`)
0416デフォルトの名無しさん
NGNGそのまま扱えばいいんだけど。
0417デフォルトの名無しさん
NGNGそのまま??
0418416
NGNGこんな風に
#include <stdio.h>
#include <ctype.h>
int main()
{
int c;
while((c=getchar())!=EOF)
putchar(islower(c)?c-32:c);
return 0;
}
0419403
NGNGそういうわけではないけど、出題者が求めている答えには、
メンバーが複数登場すると思う。
数�Tで言うと下みたいなのがあったでしょ。
整数∈{{6の倍数⊂{2の倍数∩3の倍数}}⊂自然数}
プログラムが分からないのでなく、問題が分からないとなると
どうしようも無い。
0420デフォルトの名無しさん
NGNGすいませんヘッダはstdio.hしか習ってないのでその範囲でしか分かりませぬ(´・ω・`)
0421r
NGNG#include <stdio.h>
#include <ctype.h>
int main() {
int c;
while( ( c = getchar() ) != EOF )
putchar( islower( c ) ? c - 32 : c );
}
0422416
NGNG#include <stdio.h>
int main()
{
int c;
while((c=getchar())!=EOF)
putchar((c>='a'&&c<='z')?c-32:c);
return 0;
}
0423r/421
NGNGなんて恥ずかしいんだ。俺。死のう。
0424415
NGNG解決しました
0425415
NGNG?c-32:c
という処理が理解出来てなかったです(ノд`)
putchar習ったばかりで・・・テキストは「これ打つと表示出来るよ」で終わってます
どなたか解説お願いします
0426416
NGNGじゃあこれで。
これなら教師も文句言わないでしょう。不要な括弧もつけたし。
#include <stdio.h>
int main()
{
int c;
while((c=getchar())!=EOF){
if(c>='a'&&c<='z'){
putchar(c-32);
}
else{
putchar(c);
}
}
return 0;
}
0427デフォルトの名無しさん
NGNGと書くと、Aが真(非0)のときBが、Aが偽(0)のときCが、この式の値になります。
つまり
islower(c) ? c - 32 : c
は、
islower(c)が真...すなわち、cが小文字の時、c-32が、cが小文字でない時にcが
この式の値になります。
# このとき、islower(c)とc >= 'a' && c <= 'z' は等価です。
0428_
NGNG0429415
NGNG条件たくさんつけてすみませんでした
0430デフォルトの名無しさん
NGNG#define MAX_CHAR_NUM 256
struct Set{
int cp;
char data[MAX_CHAR_NUM];
}set;
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;
}
こーゆー事だと解釈いたしましたが。
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG漏れも作れんが・・・
0433デフォルトの名無しさん
NGNGA=1,B=3,C=4,D=6,E=2,F=8,G=7,H=5
他にもあるがプログラムにするまでも無いだろ
0434デフォルトの名無しさん
NGNGマルチ氏ね
0435392
NGNGbcc32でコンパイル失敗しました。もちろん全角スペースは半角スペースに変換しました。
エラー内容です。
エラー E2063 3.c 17: 不正な初期化(関数 main )
>>434
まじ,はじめて書き込んだんですが…
どこにありました?宿題だから他にも聞いた人がいるだけだと。
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNGやるきなす。
#include <stdio.h>
#include <stdio.h>
int main(){
int a,b,c,d,e,f,g,h;
for(a=1;a<=8;a++){
for(b=1;b<=8;b++){
if(a==b) continue;
for(c=1;c<=8;c++){
if(a+b != c) continue;
if(c==a || c==b) continue;
for(d=1;d<=8;d++){
if(d==a || d==b || d==c) continue;
for(e=1;e<=8;e++){
if(e==a||e==b||e==c||e==d) continue;
for(f=1;f<=8;f++){
if(f==a||f==b||f==c||f==d) continue;
if(f==e) continue;
if(d+e !=f) continue;
for(g=1;g<=8;g++){
if(g==a||g==b||g==c||g==d) continue;
if(g==e||g==f) continue;
if(a+d !=g) continue;
for(h=1;h<=8;h++){
if(b+e !=h) continue;
if(h==a||h==b||h==c||h==d) continue;
if(h==e||h==f||h==g) continue;
printf("%d %d %d %d %d %d %d %d \n",a,b,c,d,e,f,g,h);
}}}}}}}}}
0439デフォルトの名無しさん
NGNG突っ込みどころ満載だな。
0440デフォルトの名無しさん
NGNGまったくもって、やるきないし。
#include <stdio.h>
int main(){
int a,b,c,d,e,f,g,h;
for(a=1;a<=8;a++){
for(b=1;b<=8;b++){
c=a+b;if(c>=8) continue;
for(d=1;d<=8;d++){
for(e=1;e<=8;e++){
int check[9]={0};
int flag=0;
int n;
f=d+e;if(f>8) continue;
g=a+d;if(g>8) continue;
h=b+e;if(h>8) continue;
check[a]++;check[b]++;check[c]++;check[d]++;
check[e]++;check[f]++;check[g]++;check[h]++;
for(n=1;n<=8;n++){
if(check[n]!=1) flag=1;
}
if(flag==0){
printf("%d %d %d %d %d %d %d %d \n",a,b,c,d,e,f,g,h);
}
}
}
}
}
}
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNGいや、高々1680通り。
0443デフォルトの名無しさん
NGNGよって、全パターンと考えれば、10x9x8x7=4320だと思うのだが。
0444デフォルトの名無しさん
NGNGint main()
{
int i;
double theta1=1.0, theta2=2.0;
double cs1=cos(theta1), sn1=sin(theta1), cs2=cos(theta2), sn2=sin(theta2);
double T[16]={0,0,0,0, 0,0,0,0, 0,0,1,0, 0,0,0,1};
double U[16]={0,0,0,1, 0,0,0,0, 0,0,1,0, 0,0,0,1};
double b[4] ={2,0,0,1}, a[4]={0}, tmp[16]={0};
T[0]=cs1; T[1]=-sn1; T[4]=sn1; T[5]=cs1;
U[0]=cs2; U[1]=-sn2; U[4]=sn2; U[5]=cs2;
mmul44(a,mmul44(tmp,T,U,4),b,1);
printf("a=TUb\n");
for(i=0; i<4; i++) printf(" %f\n",a[i]);
return 0;
}
定数式で配列を初期化せんといかんのか >>bcc
こういうときはめんどくさいな。それが規格通りの仕様だが・・・自信なし
0445デフォルトの名無しさん
NGNGa+b=c, a+d=gから、aの取りうる値は6以下でなければならない。
b,d,eも同様なので、6P4で高々360通り。
つーかよく考えたら、a,b,d,eが1-6しか取り得ないなら
c=8, g=7を仮定して自動的にa=6, b=2, d=1が確定するじゃん。
#ついでに言えば、この段階でe=3も確定するね。
従って、a,b,d,eが1,2,3,6の組み合わせのときだけなので24通り。
しかも、a,b,d,eを四角形に並べたときに1と2が必ず対角に来るので
b=2ならa=3かa=6。他も同様なので次の8通りだけ条件が成立する。
a=6,b=2,d=1,e=3
a=6,b=1,d=2,e=3
a=3,b=2,d=1,e=6
a=3,b=1,d=2,e=6
a=2,b=6,d=3,e=1
a=2,b=3,d=6,e=1
a=1,b=6,d=3,e=2
a=1,b=3,d=6,e=2
結論、プログラムを書くまでもなかった。
>>443
1から8までって問題文を読み落としている。
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNG条件みまちがった(;;)あっちゃー
>>446
8! = 40320 っすね。
0448デフォルトの名無しさん
NGNG以下の課題をやっているんですが、文字列の扱いについてよくわかりません。
課題:
リンクによるリストを用いて「辞書」を作り,その辞書を操作するためのCのプログラムを作成する.
文字列を要素(節点の項目)として持つリストを使って,次のような「辞書」システムを作りなさい.
辞書システムは,
辞書に単語を登録する(リストに文字列を挿入する) ``Insert''
辞書から単語を削除する ``Delete''
ある単語が辞書の中にあるかどうかを判定する ``Lookup''
辞書の中に登録されているすべての単語をプリントする ``Print''
を持つものとする.
0449デフォルトの名無しさん
NGNGCでは普通ゼロ終端のchar配列で表す。
可変長ならmalloc/freeでヒープに取るといいよ。
比較したいときはstrcmp、コピーしたいときはstrcpy。
0450デフォルトの名無しさん
NGNGこれは基本的なリンクリストの使用例ですね。
>文字列の扱いについてよくわかりません
struct elem {
struct elem *next; /* NEXTポインタ */
char *word; /* 単語 */
};
このような要素をヘッダからnextポインタでリンクする。
登録する単語をchar *newwordとすると、要素をつくるとき
struct elem* newelem = malloc(sizeof(struct elem));
newelem->next = NULL;
newelem->word = malloc(strlen(newword)+1);
strcpy(newelem->word, newword);
で単語の文字列をwordに格納する。
あとはおわかりかと。nextのほかに逆方向のポインタをつけると
削除するとき楽というのがあります。
このwordに
0451450
NGNG単語の最大長が決まっているのであれば、
#define MAX_WORD_LENGTH 128 /* 単語の最大長 */
struct elem {
struct elem *next; /* NEXTポインタ */
char word[MAX_WORD_LENGTH]; /* 単語 */
};
とします。このとき、
newelem->word = malloc(strlen(newword)+1);
は不要です。
0452448
NGNG早速の回答、ありがとうございます。
char[]を使って、入出力は%sを使うことはわかったのですが、その後がわかりません…\\
。
数字だけの場合なら、挿入して参照するときちんと出てくるのですが、文字にするとや\\
はろエラーが。。。
0453448
NGNG次に、初期化。
そして、挿入。
dekiteiruつもりなんですが・・・。
struct node
{
int key;
struct node *next;
};
struct node *head, *tail;
void listinitialize(void)
{
head = (struct node*) malloc(sizeof(*head));
tail = (struct node*) malloc(sizeof(*tail));
head->next = tail;
tail->next = NULL;
};
struct node *insertafter(int v, struct node *p)
{
struct node *x;
x = (struct node*) malloc(sizeof(*x));
x->key = v;
x->next = p->next;
p->next = x;
return x;
};
0454448
NGNGここにもはりました。
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNGsizeof(struct node)と書けよ。
0457デフォルトの名無しさん
NGNGnodeが持つのは文字列じゃないの?
0458デフォルトの名無しさん
NGNG制御文のreturnの意味と戻り値の意味を教えてくれませんか?
0459デフォルトの名無しさん
NGNG2つの整数の和を求める関数を作れ。
話はそれからだ。
0460デフォルトの名無しさん
NGNG「分割すべき配列の要素数が3以上であれば、先頭の要素、中央の要素、末尾の要素の
3値の中央値を持つ要素を枢軸として選択する」と言う方針を用いて、関数quickを
書き換えてください。
0461460
NGNGクイックソート
*/
#include <stdio.h>
#define swap(type, x, y)do { type t = x; x = y; y = t; } while (0)
/*--- クイックソート ---*/
void quick(int a[], int left, int right)
{
int pl = left;/* 左カーソル */
int pr = right;/* 右カーソル */
int x = a[(pl+pr)/2];/* 枢軸は中央の要素 */
do {
while (a[pl] < x) pl++;
while (a[pr] > x) pr--;
if (pl <= pr) {
swap(int, a[pl], a[pr]);
pl++;
pr--;
}
} while (pl <= pr);
if (left < pr) quick(a, left, pr);
if (pl < right) quick(a, pl, right);
}
0462460
NGNGint main(void)
{
int i;
int x[9];
int nx = sizeof(x) / sizeof(x[0]);
printf("%d個の整数を入力せよ。\n", nx);
for (i = 0; i < nx; i++) {
printf("x[%d] : ", i);
scanf("%d", &x[i]);
}
quick(x, 0, nx - 1);/* 配列xをクイックソート */
puts("昇順にソートしました。");
for (i = 0; i < nx; i++)
printf("x[%d] = %d\n", i, x[i]);
return (0);
}
0463デフォルトの名無しさん
NGNG合ってるかな?
#include <iostream>
using namespace std;
struct Vec
{
float* pv;
int d,n;
Vec():n(0),d(0),pv(NULL){;}
Vec(float f):n(5),d(1){pv=new float[n];pv[0]=f;}
Vec(float f0,float f1):n(5),d(2){pv=new float[n];pv[0]=f0;pv[1]=f1;}
Vec(float f0,float f1,float f2):n(5),d(3){pv=new float[n];pv[0]=f0;pv[1]=f1;pv[2]=f2;}
~Vec(){if(pv)delete[] pv;}
Vec& DelVec(Vec* pIn){pIn->d=1;pIn->pv[0]=0.f;return *pIn;}
void Add(float f){if(!(d%5)&&n<=d){if(pv)delete[] pv;n+=5;pv=new float[n];}pv[d++]=f;}
Vec& operator =(const Vec& v){if(pv)delete[] pv;d=v.d;n=v.n;pv=new float[n];for(int i=0;i<d;i++)pv[i]=v.pv[i];}
float Dot(const Vec& v)
{
float ret=0.f;
if(d!=v.d){DelVec(this);return 0.f;}
for(int i=0;i<d;i++)ret+=pv[i]*v.pv[i];
return ret;
}
};
int main()
{
Vec a(1.f,0.f,1.f),b(0.f,1.f,1.f);
cout<<"a.Dot(b)= "<<a.Dot(b)<<endl;
return 777;
}
0464デフォルトの名無しさん
NGNGhのソートが終わるたびに、配列とhの値を表示するように改良してください。
/*
シェルソート
*/
#include <stdio.h>
#define swap(type, x, y)do {type t = x; x = y; y = t; } while (0)
/*--- シェルソート ---*/
void ssort(int a[], int n)
{
int i, j, h;
for (h = n / 2; h > 0; h /= 2)
for (i = h; i < n; i++) {
int tmp = a[i];
for (j = i - h; j >= 0 && a[j] > tmp; j -= h)
a[j + h] = a[j];
a[j + h] = tmp;
}
}
0465464
NGNGint main(void)
{
int i;
int x[7];
int nx = sizeof(x) / sizeof(x[0]);
printf("%d個の整数を入力せよ。\n", nx);
for (i = 0; i < nx; i++) {
printf("x[%d] : ", i);
scanf("%d", &x[i]);
}
ssort(x, nx);/* 配列xをシェルソート */
puts("昇順にソートしました。");
for (i = 0; i < nx; i++)
printf("x[%d] = %d\n", i, x[i]);
return (0);
}
0466デフォルトの名無しさん
NGNG>>464
ど こ で h が ソ ー ト さ れ て る ん だ ?
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNGつかってねーでやんの。
0469デフォルトの名無しさん
NGNGいろいろ問題ありだな。
文字列でなく整数のリストが作れるプログラムを最初に作って
それから、文字列のリストに修正するほうがよろしいかと。
リストが理解できる<<<リストが作れる<整数のリスト<文字列のリスト
今は正直言って「リストが理解できる」のレベルにいたってないよ。
0470469
NGNGすみません458さん。
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG基本的なC言語の範囲で以下のプログラムを作成せよ
「キーボードから与えられた数値(非負の整数)を
2進数表示させるプログラムを作成せよ」
授業のヒントではdo〜while構文を使うといいのでは?
と言っていた気がします。
0473デフォルトの名無しさん
NGNGまず、何がわからないのかを明確にしろ。
そのためには、フローチャート(実行手順をざっと紙にでも書いてみろ)を書く。
その上で、分からないところを、ここに書く。
後、使用している環境(OSやツール名)も書け。
素人にもレベルがあって、printfやmainすら理解しない段階も来るのでな・・・
0474デフォルトの名無しさん
NGNG何が分からないか自分でも分かりまへん
BeOS使用してまふ
ツールはクイックタイムくらいしか使ってまへん
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNGint main()
{
int i,x;
printf("input integer:");
scanf("%d", &i);
do
{
x=i%2;
i/=2;
printf("%d",x);
} while(i>0);
return 0;
}
出力が逆だけどねーw
0477デフォルトの名無しさん
NGNGint main(void) {
int i,x;
printf("input integer:");
scanf("%d", &i);
for (x = 1; i >> 1 >= x; x <<= 1) ;
for (; x > 0; x >>= 1)
putchar(i & x ? '1' : '0');
return 0;}
0478デフォルトの名無しさん
NGNG#include <limits.h>
int main(void) {
int i,x;
printf("input integer:");
scanf("%d", &i);
for (x=1<<(INT_BIT-1); x ; x >>= 1) ;
putchar(i & x ? '1' : '0');
return 0;
}
0479478
NGNG↑
この最後のセミコロン消し忘れた・・・
0480478
NGNG#include <stdio.h>
#include <limits.h>
#define INT_BIT (sizeof(int) * CHAR_BIT)
int main(void) {
int i,x;
printf("input integer:");
scanf("%d", &i);
for (x=1<<(INT_BIT-1); x ; x >>= 1)
putchar(i & x ? '1' : '0');
return 0;
}
0481sage
NGNGfor(i=0;i<<j;i++);
と書くと、for文の終了条件ってどうなるんですか?
0482481
NGNG鬱だ・・・
スマソ。
0483デフォルトの名無しさん
NGNGi<<j
0484デフォルトの名無しさん
NGNG表示例は 10 = A = 00001010
ただし2進数の桁は8桁まででよい。
です。%xは使ってはいけないっとのことです。
宜しくお願いします。
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNGオマエニマカスィタ!
つーか、ニュー速+ 書けないウツダ…
0487デフォルトの名無しさん
NGNGint main(void) {
int i,x;
printf("input integer:");
scanf("%d", &i);
printf("%d = ", i);
for (x = 0; i >> 4*x > 0; x++) ;
for (; --x >= 0;)
putchar("0123456789ABCDEF"[(i>>4*x)%16]);
printf(" = ");
for (x = 8; --x >= 0;)
putchar((i >> x) & 1 ? '1' : '0');
return 0;}
0488デフォルトの名無しさん
NGNGfor (x = 1; i >> 4*x > 0; x++) ;
0489sage
NGNGなんか r=x %16 x=x/16 のような記述で素人てきなプログラムが
いいみたいがいいらしいんですけどできるでしょうか?
0490デフォルトの名無しさん
NGNG後から条件をつけるのはマナー違反
487が一生懸命作ってくれたプログラムが無駄になるだろ
0491_
NGNG0493デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(){
int a[100],sum=0,i,j;
double t;
for(i=0;i<100;i++){
a[i]=rand()%100;
}
for(j=0;j<i;j++){
sum=sum+a[j];
}
t=sum/100;
printf("sum=%d average=%f\n",sum,t);
}
乱数の合計と平均を出すプログラムなんですが、平均の小数部分がでません
どうすれば?
0494デフォルトの名無しさん
NGNGt=sum/100;
↓
t=sum/100.0;
0495デフォルトの名無しさん
NGNG↓
t=(double)sum/100.0;
0496デフォルトの名無しさん
NGNGt=(double)sum/100;
0497デフォルトの名無しさん
NGNGint a[100],sum=0,i,j;
↓
int a[100],i,j;
double sum=0;
0499デフォルトの名無しさん
NGNGhttp://tokyo.cool.ne.jp/skoop_on/kadai.gif
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG整数1から20までの乱数をn個発生させ、各整数ごとの生成個数の平均と標準偏差を示しなさい。ここで、nは1000,2000,3000…,10000とする。なお、乱数はrandom()%20+1の式で生成するものとする。
ホントに初心者なのでお願いします。
0502デフォルトの名無しさん
NGNGバブル、クイック、単純選択、単純挿入、それぞれのソートのプログラム
↓バブルだけでギブアップ。もっと綺麗に表示したい
#include <stdio.h>
int main (void)
{
int item[100];
int a,b,t;
int count;
printf("数値をいくつ入力しますか?");
scanf("%d", &count);
for(a=0; a<count; a++) scanf("%d", &item[a]);
for(a=1; a<count; ++a)
for(b=count-1; b>=a; --b) {
if(item[b-1]>item[b]) {
t=item[b-1];
item[b-1]=item[b];
item[b]=t;
}
}
for(t=0; t<count; t++) printf("%d",item[t]);
return 0;
}
0503デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
const int n_min = 1000;
const int n_max = 10000;
const int n_step = 1000;
int i, n, r;
double sum, sum2, mean, sigma;
for (n = n_min; n <= n_max; n += n_step) {
sum = 0;
sum2 = 0;
for (i = n; i != 0; --i) {
r = random() % 20 + 1;
sum += r;
sum2 += r * r;
}
mean = sum / n;
sigma = sqrt(sum2 / n - mean * mean);
printf("%d\t%f\t%f\n", n, mean, sigma);
}
return 0;
}
0504デフォルトの名無しさん
NGNG素直なので教えてあげる。つーかitoaそのまま。
const char * itos(unsigned long i,char* s,int dig)
{
unsigned long t;
char const *h = s;
char *p;
if(dig == 10 && (long)i<0){
*s++ = '-';
}
p = s;
do{
t = i%dig;
i /= dig;
if(t > 9)
*s++ = (char)(t-10+'A');
else
*s++ = (char)(t + '0');
}while(i>0);
*s-- = '\0';
while(p < s) {
t = *s; *s = *p; *p = (char)t;
++p; --s;
}
return h;
}
0505デフォルトの名無しさん
NGNGそれだけでも勉強になるわな。
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGgccにitoaがあるなんて初耳だな〜
0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNGスレ違い
0510デフォルトの名無しさん
NGNGフロッピーディスクドライブのデータっていうことは、何処のメーカーかとかだよね。
そりゃー難しいんじゃないかな?
どころで、ここって(・∀・)C/C++の宿題やらせてください。ver10 なんだけど、
これは宿題なのか?
0511デフォルトの名無しさん
NGNG(α+γ)(β+γ)を求めて表示せよ。
ただし、複素数を、実数部と虚数部に対応するメンバで構成される構造体として表し、
複素数の加算用関数c_add()と乗算用関数c_mul()を作成して、これを利用すること。
これらの関数は、sとtを複素数を表す構造体としたとき、c_add(s,t)、c_mul(s,t)と呼び出すと、
それぞれ戻り値として、sとtを加算、または乗算した結果である複素数の構造体を返すものとする。
入力はキーボードからです。
よろしくお願いします。
0512デフォルトの名無しさん
NGNG0513493
NGNG#include <stdlib.h>
int main(){
int a,i,b,guu,choki,paa,n[200],awin,bwin,even;
double wa,wb,e,game;
for(i=0;i<200;i++){
n[i]=rand()%3;
}
guu=0; choki=1; paa=2; awin=0; bwin=0; even=0; game=0;
for(a=0;a<200;a+=2){
b=a+1; game=(a/2.0)+1.0; wa=awin/game; wb=bwin/game; e=even/game;
if(n[a]==guu&&n[b]==choki) awin++;
if(n[a]==choki&&n[b]==paa) awin++;
if(n[a]==paa&&n[b]==guu) awin++;
if(n[b]==guu&&n[a]==choki) bwin++;
if(n[b]==choki&&n[a]==paa) bwin++;
if(n[b]==paa&&n[a]==guu) bwin++;
if(n[a]==n[b]) even++;
printf("%d %7.6f %7.6f %7.6f\n",game,wa,wb,e);
}
}
二人でするじゃんけんのゲームごとの二人の勝率を調べようとしましたが、
結果は0.000000だけが並ぶのはなぜですか?
0514デフォルトの名無しさん
NGNGあれ以上どう簡単にしろと
0515デフォルトの名無しさん
NGNG#include <stdio.h>
typedef struct {
double r; double i;
} c_t;
c_t c_add(c_t s,c_t t){ c_t r; r.r=s.r+t.r; r.i=s.i+t.i;return r;}
c_t c_mul(c_t s,c_t t){ c_t r; r.r=s.r*t.r-s.i*t.i; r.i=s.r*t.i+t.r*s.i;return r;}
int main(void)
{
c_t a,b,c,ans;
scanf("%lf%lf",&a.r,&a.i);
scanf("%lf%lf",&b.r,&b.i);
scanf("%lf%lf",&c.r,&c.i);
ans=c_mul(c_add(a,c),c_add(b,c));
printf("real:%f image:%f\n",ans.r,ans.i);
return 0;
}
0517デフォルトの名無しさん
NGNG実行したときのaの値を表しなさい。
(1) a/=b
(2) a+5*b--
(3) a=a!=b
(4) a=a%b
(5) a=a>b
(6) a=a||b
(7) a++
(8) a=!a
(9) a+=b*2
(10) a=(++a)*(b++)
これがどうにもわかりません。。。
よろしくお願いします
0518デフォルトの名無しさん
NGNG連続に実行するの?
10はダメそうだけど。
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNG2 10
3 1
4 2
5 1
7 11
8 0
9 18
6と10はパス。
0522デフォルトの名無しさん
NGNG愛の告白も、オブジェクト指向で・・・
if ( ORE->Kokuhaku(KANOJYO) == true)
{
//告白に成功したら性交:p(アホか?)
ORE->Insert(KANOJYO);
}
else
{
//フられたら、呑みまくり!!
ORE->Nomikai();
}
ごめんなさい・・・僕が悪かったです。
http://www.futuresoftware.org/diary/diary0306.html
0523デフォルトの名無しさん
NGNG0 1 0 1 1 1 1 0 0 0
0 1 0 0 0 0 0 0 1 0
0 0 1 1 1 1 1 0 1 0
1 0 0 0 0 0 0 0 1 1
0 0 1 0 1 0 1 1 1 1
0 1 0 0 1 1 0 0 1 0
0 1 1 0 0 0 0 1 0 0
0 1 1 0 1 0 1 1 0 1
0 0 2 1 0 0 0 0 0 0
の迷路(0は道 1は壁 2は出口)をコマンドラインでX、Y座標を入力して、
再帰を使い、出口までの経路のみを表示するプログラムをつくりたいんですけど、
おねがいたします。
0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG主語述語が入り組んでて文章の意味が良く分からん。
0528デフォルトの名無しさん
NGNG7回までです。あと、どこかにモーニングスターが隠されています。
0529デフォルトの名無しさん
NGNGしかし、繰り出すまでの時間が長いのでボス戦にはあまり向いてないぞ。
0530デフォルトの名無しさん
NGNGそれだけで良く通じるな。
0531デフォルトの名無しさん
NGNG>>527 すいません文章下手で。とにかく迷路の出口までの経路のみを表示するプログラムをつくりたいんですよ。
0532デフォルトの名無しさん
NGNGFF外伝聖剣伝説?激しく懐かしい。
0533502
NGNG0534デフォルトの名無しさん
NGNGというか意味がわからん
コマンドラインで入力するX,Yが何を表しているのか
見たとこMAPはソース内で定義するんだろうけど
523の説明だとコマンドラインからMAPを入力するようにも読める
そしてスタート地点も謎
0535535
NGNG実行したらこうなりましたと言う回答は不可
#include<stdio.h>
int a[]={0,1,2,3,4};
int *p[]={a,a+1,a+2,a+3,a+4};
int **pp=p;
int main(void)
{
printf("a=%d,*a=%d\n",a,*a);
printf("p=%d,*p=%d,**p=%d\n",p,p,**p);
printf("pp=%d,*pp=%d,**pp=%d\n",pp,*pp,**pp);
printf("pp-p=%d,*pp-a=%d,**pp=%d\n",pp-p,*pp-a,**pp);
return 0;
}
0536無料動画直リン
NGNG0537デフォルトの名無しさん
NGNGコンパイルしないプログラムに価値なんて無いよ。
0538デフォルトの名無しさん
NGNGC/C++で出来ないからスレちがい。
0539528
NGNG0540デフォルトの名無しさん
NGNGhttp://tokyo.cool.ne.jp/skoop_on/kadai.gif
0541デフォルトの名無しさん
NGNG0542542
NGNGプログラムの方針として、まずstrlen()関数により格納される文字列の長さを求め、
malloc()関数によりメモリの確保を行い、strcpy()関数により文字列のコピーを行い、
格納したアドレスを関数の戻り値とすること
0543デフォルトの名無しさん
NGNGchar *t = malloc(strlen(s)+1);
if (t) strcpy(t, s);
return t;
}
0544デフォルトの名無しさん
NGNGファイルに格納するプログラムを作成せよ。
jyohou2002=(struct seiseki *)malloc(sizeof(struct seiseki));
jyohou2002->next=NULL;
printf("%d人目の登録をしますか?YESなら1,NOなら2",i);
scanf("%d",&Flag);
current_p=jyohou;
while(Flag==1){
printf("%d人目の国語の登録をどうぞ",i);
scanf("%d",¤t_p->jpn);
printf("%d人目の英語の登録をどうぞ",i);
scanf("%d",¤t_p->eng);
printf("%d人目の数学の登録をどうぞ",i);
scanf("%d",¤t_p->math);
i++;
printf("%d人目の登録をしますか?YESなら1,NOなら2",i);
scanf("%d",&Flag);
if(Flag==1){
current_p->next=(struct seiseki *)malloc(sizeof(struct seiseki));
current_p->next->next=NULL;
current_p=current_p->next;
}
}
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNGvoid s_fprint ( struct seiseki *cur, FILE *fp )
{
if ( cur != NULL )
{
if ( cur->next != NULL ) s_print ( cur->next, fp ) ;
fprintf ( fp, "%d %d %d\n", current_p->jpn, current_p->eng, current_p->math )
}
return ;
}
0548547
NGNGif ( cur->next != NULL ) s_fprint ( cur->next, fp ) ;
後はfprintf()の部分を自分が書き出したい方法に適当に変えてちょ
0549デフォルトの名無しさん
NGNGif ( cur->next != NULL )
はイラネって突っ込んでよ…
0550C勉強中・・・1
NGNG自分の実力ではどうにもならず、提出期限が迫っており、
現在勉強中ですが間に合いそうにありません・・・C言語にかなり強そうな方がいらっしゃるようですので、できればこの問題解決できたらと思って投稿しました。
よろしくお願いいたします。
問題:3つの外部ファイル(.datファイル)
*A.dat*
No Name
A001 Hajime
A002 Go
A003 Tetsu
A004 Yoshio
*B.dat*
No ID Point
A001 B001 75
A002 B002 56
A003 B001 58
A004 B003 87
*C.dat*
ID Subject Teacher
B001 Math Mikami
B002 English Suzuki
B003 Science Yamazaki
を、C言語で書いたプログラムでアクセスし、3つのファイルから 要素を取り出し、以下の一つの表を完成させるプログラム。datファイルの中身はカンマ区切りでも1スペース区切りにしてもかまいません。
0551C勉強中・・・2続き
NGNGNo Name Subject Teacher Point
A001 Hajime Math Mikami 75
A002 Go English Suzuki 56
A003 Tetsu Math Mikami 58
A004 Yoshio Science Yamazaki 87
ここで、NoとNameをA.datから、SubjectとTeacherをC.datから、
PointをB.datから持ってくるのですが、B.datとC.datのIDとSubjectを
合致させなくてはなりません。 全体の方針として、
データを開き、2次元配列にどんどん入れていって、
新しいファイルに書き出し、そのファイルを読み込んで表示させる
という流れになると思うのですが、お恥ずかしいながら自分の実力では
どうにもなりません。 このような例が書籍で調べたり、ネット上で調べても見当たらなく、
困っています。助けてはいただけませんでしょうか?
大変無理なお願いかもしれませんが、どうぞよろしくお願いいたします。
ちなみに問題の制約として、常にファイルにアクセスするような設計は不可のようです。
0552デフォルトの名無しさん
NGNG> カンマ区切りでも1スペース区切りにしてもかまいません。
これはプログラムをどちらにも対応させろという意味なのか?
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG'i'という文字を印字する。
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNGよく読めYO
「foatのところ」じゃなくて「floatのの所」だよ
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNG↑って何かいてるの?
意味わからん。
0560デフォルトの名無しさん
NGNG自己解決しました。
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNG酔歩・・・各時刻でx=x(t)にある点が時刻t=t+1では確率1/2でx(t)+a、確率1/2でx(t)-aに移動するとき、
この点はx軸上で酔歩を行うという。x軸、y軸に関して共に酔歩を行う時、x軸上で酔歩している点の
時刻tにおける位置をS(t)とすると、S(t)=煤ii=0からt)xi(iは添え字)である。ここで確率1/2でa、
確率1/2で-aの値と取る互いに独立な確率変数である。
ここからが問題文に入るのですが、
a=1として(x,y)平面上で一点の酔歩を行いt=0からt=1000までの点の軌跡を描きなさい。但し、初期値は(0,0)
とします。更に時刻tまでの点のx座標の絶対値をξ(t)、すなわちξ(t)=max|(i=0〜x)xi|としたとき、
ξ(t)を求めて図を描きなさい。
与えられているヒントは、乱数はxi+1(i+1は添え字)≡λxi+μ(mod P)を使う。
LineToメソッド MoveToメソッドを使う。
ということです。
c++Builderを使うとどんなプログラムになるか教えて下さい。
0563デフォルトの名無しさん
NGNGμ()ってどんな関数?。
0564デフォルトの名無しさん
NGNG関数ポインタの配列じゃないの?
その関数のプロトタイプ宣言を含んだ書き方だからややこしいだけでしょ。
0565デフォルトの名無しさん
NGNGそこまでは指定されてないんですよ。ただこれを使えば一番良いとしか。
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG基本的に乱数は好きなように作っていいみたいです。
0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGint main(){
HDC dc = GetDC( NULL ); int t,x=0,y=0; RECT rect; POINT prevorg;
GetClientRect( GetDesktopWindow(), &rect );
SetWindowOrgEx( dc, -rect.right/4, -rect.bottom/4, &prevorg);
MoveToEx( dc, -100,0,NULL);LineTo( dc, 100,0);
MoveToEx( dc, 0,-100,NULL);LineTo( dc, 0,100);
MoveToEx( dc, 0, 0 ,NULL);
for( t=0; t<1000; t++ ){
x += rand() > RAND_MAX/2? 1 : -1;
y += rand() > RAND_MAX/2? 1 : -1;
LineTo( dc, x, -y ); MoveToEx( dc,x,-y ,NULL);
}
SetWindowOrgEx( dc, 0, -3*rect.bottom/4, NULL);
MoveToEx( dc, 00,0,NULL);LineTo( dc, 1000,0);
MoveToEx( dc, 0, 0 ,NULL);
for( t=0, x=0; t<1000; t++ ){
x += rand() > 0x7fff/2? 1 : -1;
LineTo( dc, t, -abs(x) );MoveToEx(dc, t, -abs(x), NULL);
}
ReleaseDC( NULL,dc );
}
0572デフォルトの名無しさん
NGNG何秒間の間に数字の1を何回押したかというプログラムを作りたいのですが
誰か教えて下さい。
何秒間というのはランダムです(5秒〜30秒ぐらいの間)
0573デフォルトの名無しさん
NGNGANSI-Cでは無理。激しく環境依存。
0574デフォルトの名無しさん
NGNGその文章じゃあ、何を教えてほしいのかわからん
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNGお願いします。
0578デフォルトの名無しさん
NGNGそういうのはぐぐった方が早い
0579572
NGNGそういえばそうですね・・・
C言語で
何秒間の間に数字の1を何回押したかというプログラムを
誰か作ってください。
何秒間というのはランダムです(5秒〜30秒ぐらいの間)
0580448
NGNGどうもありがとうございました。
0581デフォルトの名無しさん
NGNG>>573が読めんか?
0582デフォルトの名無しさん
NGNGどういうことですか?
0583デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNGhttp://www5.airnet.ne.jp/tomy/cpro/sst7.htm#top
を参考にしてください。
void fft1(double ar[], double ai[], int n, int iter, int flag)
がそう。引数の使い方を間違えずに。
ar[]はデータの実数部、ai[]はデータの虚数部、nはデータ数(=2^k)
flagは0がフーリエ変換で1が逆フーリエ変換。
iterはコードを見る限り0でよし。
だいたいFFT(=DFT)をプログラムで利用している人でFFTの
ロジックをちゃんと理解している人は10%くらいです。
残りの90%は使い方(=引数の意味)だけ理解している人です。
引数の意味の意味がわからない人は・・・
0586デフォルトの名無しさん
NGNGこの掲示板の「あのぅ〜」ってスレの>>14にテトリスがあるんだけど、
あれってどうやってるんですか?テトリスを作るには、
まず色ブロックを上から降らせるんですよね。
上から降るというのはどうやって実現できますか?
ヒントお願いします
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG激しく同意
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
#include <conio.h>
#define WAIT 5
int main(void)
{
int pushOne=0;
clock_t start=clock()/CLOCKS_PER_SEC;
for(;clock()/CLOCKS_PER_SEC-start<=WAIT;)
if(kbhit()&&getch()=='1') pushOne++;
printf("'1'を%d回押しました\n",pushOne);
return 0;
}
0594デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1035233350/
こことかは?
タイトルしか読んでないけどw
0595デフォルトの名無しさん
NGNGconio.hがOSに依存するね。
まぁ、こういうのは仕方ないけど。
0596デフォルトの名無しさん
NGNG>ふーん、じゃ動くものは作れないね。
乱数発生方法として線形合法を使えといっている。
μは関数ではなくて単なる定数。
λも定数
≡λxi+μ(mod P) は合同式
潔く言い切ったつもりだろうが、教養のなさを露呈することに
なりましたな、あほ。
0598kei
NGNG課題1:3科目(英数理)の点数をキーボードから入力して、それらの点数のうち最も高い点数を表示するプログラムを作りなさい。
自分が作ったのは下のです
#include<stdio.h>
main()
{
int eng,math,sci,max;
printf("英語の点数--->");scanf("%d",&eng);
printf("数学の点数--->");scanf("%d",&math);
printf("理科の点数--->");scanf("%d",&sci);
if(eng>math){
if(eng>sci){
max=eng;
}
else{
max=sci;
}
}
else{
if(math>sci){
max=math;
}
else{
max=sci;
}
}
printf("最高点は%d点です\n",max);
}
でもどうやら「関数」構造でなければならないらしいのですが、その時の講義に法事の為出席できなくて関数がわかりません。
本も読んだのですがプロトタイプが必要とかそれくらいしか理解できなかったです。
基礎論なので難しい関数は使わないはずです。よろしくお願いします。void return ansとか本に書いてあります。
0599デフォルトの名無しさん
NGNG以下の積分は形を出力するプログラムを作成しなさい。
g(t)=∫cos(5t)dt
g(0)=0より、g(t)=1+0.2*sin5tである。
0600デフォルトの名無しさん
NGNG600get
0601デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
main()
{
double g;
double x;
for ( x=0; x < 100; x=x+1)
{
g = 1 + 2*sin(5*x);
printf("%f %f\n", 5*x, g);
}
}
0602デフォルトの名無しさん
NGNG積分ってのがどういう演算か理解してるなら答えは出たようなもんだと思うが。
なんか妙にカクカクしたグラフ見たことあるだろう?
0603デフォルトの名無しさん
NGNG積分演算の結果はカクカクしているのか?
サイン波がカクカクしているのか?
その理解とやらを教えてくれ。
0604デフォルトの名無しさん
NGNG指定された数(N)以下の素数を求めるプログラムを作成せよ。
ただし、Nはプログラム実行中の外部入力できるようにすること。
0605デフォルトの名無しさん
NGNGhttp://www.geocities.co.jp/Technopolis/3209/measure_and_fuzzy/integral.html
みたいな奴のこと言ってんだろうな。
0606C勉強中・・・
NGNGいえ、どちらでもできれば問題なしです。
ここのスレッドはやってますね^^
どこかの本読むよりよっぽど勉強になります。
よろしくおねができますでしょうか?
0607kei
NGNG0608デフォルトの名無しさん
NGNG指定したいのですがどのようにしたらいいのでしょうか?
一応中身はfor文でやっています。基礎の基礎位のレベルでお願いします。
あとその秒数表示を1秒ごと同じ場所でカウントダウン方式みたいな感じで
やりたいのですがそれはどうしたらいいのでしょうか!?
よろしくお願いします。
0609デフォルトの名無しさん
NGNGどうればいいですか?
0610デフォルトの名無しさん
NGNGOS変える。
0611デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
main() {
double g,x;
int i;
for ( x=0; x < 100; x=x+1) {
g = 1 + 2*sin(5*x);
printf("%05.2f ",g);
if(g>0){
for(i=0;i<30;++i) printf(" ");
for(i=0;i<(int)(g*10);++i) printf("I");
}else if(g<0){
for(i=0;i<30.0+g*10;++i) printf(" ");
for(;i<30;++i) printf("I");
}
printf("\n");
}
}
0612C勉強中・・・
NGNGよろしくお願いしますm__m 実力不足で申し訳ないです・・・
0613デフォルトの名無しさん
NGNG問題が今一つわからないです。
よくあるのが求積つまり面積を求めるやつ。
あとは原始関数を求めるやつ。(∫cos(5t)dt=5sin(t)?)
おそらく面積を求めるほうですよね。
0614デフォルトの名無しさん
NGNG0615kei
NGNGでもそれ僕のではありません。
僕の課題は599です。お時間ありましたらお願いします。
0616デフォルトの名無しさん
NGNGWindowsではWinAPIのRead関数を使わなければ読めなかったような
記憶があるが?違ったかな?
0618609
NGNGOSはRed hat linuxかMac OS X 10.2
おそらくコンパイラにも関係してますよね
0619kei
NGNG0620デフォルトの名無しさん
NGNG#include<stdio.h>
void foo()
{
int eng,math,sci,max;
printf("英語の点数--->");scanf("%d",&eng);
printf("数学の点数--->");scanf("%d",&math);
printf("理科の点数--->");scanf("%d",&sci);
if(eng>math){
if(eng>sci){
max=eng;
}
else{
max=sci;
}
}
else{
if(math>sci){
max=math;
}
else{
max=sci;
}
}
printf("最高点は%d点です\n",max);
}
main() { foo(); }
0621デフォルトの名無しさん
NGNG文字列でIPアドレスとネットマスクが与えられた時、ネ
ットワークアドレスを文字列が返す関数を定義しなさい。
0622デフォルトの名無しさん
NGNG#include<stdio.h>
void foo()
{
int eng,math,sci;
printf("英語の点数--->");scanf("%d",&eng);
printf("数学の点数--->");scanf("%d",&math);
printf("理科の点数--->");scanf("%d",&sci);
printf("最高点は%d点です\n",eng > math ? eng : math > sci ? math : sci);
}
main(){foo();}
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNGスーパー手抜きバージョン
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=110
0626デフォルトの名無しさん
NGNGdotted decimal でいいのか?
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNGすみません。
dotted decimalの言葉の意味すらわからないのです。
本来ならある程度理解してから質問すべきところを、どうもすみません。
char* netaddress(char* ipaddress,char* netmask)
一文を使うようなのですが…。
よろしければご教授おねがいします。
0629デフォルトの名無しさん
NGNG(>>626 さんじゃあないです)
dotted decimal は "151.55.11.22" みたいな文字列。
で、
char* ipaddress などに入ってくるモノや、返すべき値は、どのようなものなのでしょうか?
前述した文字列なのでしょうか?
それとも、char型4つの配列なのでしょうか?(ipaddress[0]=151, ipaddress[1]=55,...みたいな)
0630デフォルトの名無しさん
NGNGchar *netaddress(char *ipaddress, char *netmask) {
int a[4], m[4];
char *netaddr;
sscanf(ipaddress, "%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3]);
sscanf(netmask, "%d.%d.%d.%d", &m[0], &m[1], &m[2], &m[3]);
sprintf(netaddr, "%d.%d.%d.%d", a[0] & m[0], a[1] & m[1], a[2] & m[2], a[3] & m[3]);
return netaddr;
}
int main(void) {
printf("%s\n", netaddress("192.168.0.1", "255.255.255.0"));
return 0;
}
こんなんでいいのかね
0631デフォルトの名無しさん
NGNGとでもしなきゃまずいんじゃね?
0632デフォルトの名無しさん
NGNG三角形が不等辺三角形、二等辺三角形、正三角形いずれかであるかを
答えるアルゴリズムを作りフローチャートに示せ。アルゴリズムだけ
でもいいのでお願いします。できればフローチャートの説明もお願い
します。
0633デフォルトの名無しさん
NGNG#include <stdlib.h>
int intcmp(const void *k, const void *n){return *k-*n;}
main(){
int a[3];
printf("三辺の長さを入力 > ");
scanf("%d %d %d",&a[0],&a[1],&a[2]);
qsort(a,3,sizeof(int),intcmp);
if(a[0]==a[2]) printf("正三角形です。\n");
else if(a[0]==a[1] || a[1]==a[2]) printf("二等辺三角形です。\n")
else printf("不等辺三角形です。\n");
}
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG三辺が等しかったら、正三角形
それ以外で、二辺が、等しかったら、二等辺三角形
それ以外なら、不等辺三角形
0636デフォルトの名無しさん
NGNGアルゴリズム
i = ( a == b ) + ( b == c ) + ( c == a ) ;
i が 3 なら正三角形
i が 1 なら二等辺三角形
i が 0 なら不等辺三角形
以上
0637デフォルトの名無しさん
NGNGフローチャート・・・
0639デフォルトの名無しさん
NGNG>>625さんがもう解いているけど、せっかくだから。.datファイルにデータを追加してもいいバージョン。だけどエラーチェックなし(笑)。
htttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=111&fi=no
0641633
NGNG0642デフォルトの名無しさん
NGNGうんにゃ。
i=2にはならないです。
a=b かつ b=c のときには、3になりますよ。
0643デフォルトの名無しさん
NGNG次の線形リストを参考にしてできませんか?
#include<stdio.h>
#include<stdlib.h>
#define MAX 5
typedef struct data Data;
typedef struct data *DataP;
struct data{
int val;
DataP prev;
};
DataP add_data( int i, DataP last);
void print_data(DataP last);
void free_list(DataP last);
int main()
{
int i;
DataP last = NULL;
for( i = 0; i < MAX; ++i){
printf("input data %d\n",i);
last = add_data(i,last);
}
print_data( last);
exit(0);
}
0645デフォルトの名無しさん
NGNGDataP add_data( int i, DataP last)
{
DataP new;
if(( new = (DataP)malloc( sizeof(Data))) == NULL){
fprintf( stderr, "data allocation erroe !\n");
exit(1);
}
new -> val = i;
new -> prev = last;
return new;
}
void print_data( DataP last)
{
while( last != NULL){
printf("output data %d\n", last -> val);
last = last -> prev;
}
}
void free_list( DataP last)
{
DataP olast;
while( last != NULL){
olast = last;
last = last -> prev;
free( olast);
}
}
0646デフォルトの名無しさん
NGNGレスありがとうございます。
忘れてました
#include <string.h>
#include <strstre.h>
char* itoa(int n){
char* s;
s= new char[10];
strstream st(s,0,ios::out);
st << n << '\0';
return _strdup(st.str());
}
この部分を使うようののですが。
たびたびすみませんが、よろしくおねがいします。
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNGchar *netaddress(char *ipaddress, char *netmask) {
int a[4], m[4];
static char netaddr[16];
sscanf(ipaddress, "%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3]);
sscanf(netmask, "%d.%d.%d.%d", &m[0], &m[1], &m[2], &m[3]);
sprintf(netaddr, "%s.%s.%s.%s", itoa(a[0]&m[0]), itoa(a[1]&m[1]),itoa(a[2]&m[2]),itoa(a[3]&m[3]));
return netaddr;
}
int main(void) {
printf("%s\n", netaddress("192.168.0.1", "255.255.255.0"));
return 0;
}
0650デフォルトの名無しさん
NGNGhttp://www3.free-city.net/home/espresso/adult/xxx.html
0651デフォルトの名無しさん
NGNGお暇なんですね。
0652デフォルトの名無しさん
NGNG> sprintf(netaddr, "%s.%s.%s.%s", itoa(a[0]&m[0]), itoa(a[1]&m[1]),itoa(a[2]&m[2]),itoa(a[3]&m[3]));
sprintf(netaddr, "%d.%d.%d.%d", a[0]&m[0], a[1]&m[1], a[2]&m[2], a[3]&m[3]);
じゃだめなの ? (つーか、itoa() って静的領域返さなかったっけ ?)
0653デフォルトの名無しさん
NGNG>>646のitoa()使えってことじゃないの?
その割りには解放してないけど。
0654デフォルトの名無しさん
NGNGなにやってんのぉー。
それにしてもstaticのいみねーよ。
0655C勉強中・・・
NGNGすごい!正直感動しました。ありがとうございました!
0656デフォルトの名無しさん
NGNGすまん、上見てなかったよ。
>>654
また、釣りキチ三平か...。
0657572
NGNGありがとうございました。
あともうひとつ質問があるのですが、
今度はユーザーが時間を設定できるプログラムを作りたいんですが
誰か作ってください。
(ずうずうしくてすいません)
0658デフォルトの名無しさん
NGNGどこいじればいいかわかるとおもうが
0659デフォルトの名無しさん
NGNGどっちかと言うと、
http://pc2.2ch.net/test/read.cgi/tech/1050268207/l50
に行け。
0660デフォルトの名無しさん
NGNGstruct node
{
struct node *left;
struct node *right;
char label;
};
//preorder
void preorder(struct node *p)
{
if(p==NULL)return;
printf("\n stop node %c \n",p->label);
preorder(p->left);
preorder(p->right);
}
//inorder
void inorder(struct node *p)
{
if(p==NULL)return;
inorder(p->left);
printf("\n stop node %c \n",p->label);
inorder(p->right);
}
0661デフォルトの名無しさん
NGNG//postorder
void postorder(struct node *p)
{
if(p==NULL)return;
postorder(p->left);
postorder(p->right);
printf("\n stop node %c \n",p->label);
}
void insertdata(struct node **p)
{
if(p==NULL)return;
insertdata(p->left);
scanf("%c",&p->label);
insertdata(p->right);
}
void main(void)
{
struct node *ptr;
insertdata(&ptr);
preorder(&ptr);
inorder(&ptr);
postorder(&ptr);
}
0662デフォルトの名無しさん
NGNGどなたか教えてください。
0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNGそれはすでに気づいてなおしましたが、insertdata周りでエラーがでます。
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNGエラーはでなくなりましたが(コンパイルは通るが)起動するとすぐに落ちます。
0667デフォルトの名無しさん
NGNG2. if(p==NULL) というコードはあるが、リストの端をNULLにするコードは無い
この辺りが問題かと。
0668デフォルトの名無しさん
NGNG0669608
NGNGどなたかお願いします。
0670デフォルトの名無しさん
NGNG秒数表示のところも、汎用ではできないが、エスケープシーケンスか、
コンソール系APIを使うのが妥当か。
いずれも基礎の基礎レベルとはいえないが、「基礎の基礎」に
こだわるなら、答えは、「できない」
0671デフォルトの名無しさん
NGNGC言語が定めてない帰納が必要だから良い答が欲しければ
あなたが想定している環境(Cの処理系と実行環境)を指定しなければ無理かと
0672デフォルトの名無しさん
NGNGデバッガ以前。このプログラムではなにをどうしようとするのかわからない。
脊髄反射で書いているだけでアドバイスとしては最低。
>> 665
**p を直すのでは本末転倒。insertnode は ptr のほかに他の引数が必要
ではないか?
>> 667
同意します。
というわけで、プログラムの意図を教えてください>>662
0673デフォルトの名無しさん
NGNG説明不足ですみません。insertnodeで値を入力した2分木を作成し、そのあと前置、中置、後置
探索をするというものです。
0674デフォルトの名無しさん
NGNG最低っていわれちゃいました。別に脊髄反射ではないんですけどね。
p->leftとかにNULLが入っているのかどうかデバッガで確かめてくれって
意味で書いたんですけど。意味なしレススマン。
0675デフォルトの名無しさん
NGNG内容はデータに10文字以内のキャラを格納なのですが10文字以上入力されたときに
このままだと問題が発生してしまいます charのバイトの確保どうすれば解決しますか?
ただし char[288]にすると返答したら300文字打ち込む言われてしまいましたTT
/*ソース(このままコピペしてもグローバル宣言ないので動きません)*/
main()
{
int i,j;
char data[10];
j=1;
while(j==1)
{
gets(data);
if(strlen(data)<=9)
{
j=0;
}
if(strlen(data)>10)
{
printf("文字数オーバ打ち直しPLA\n");
}
}
}
0676デフォルトの名無しさん
NGNG10じゃなく9じゃないですか?
0677667
NGNGint main(void)
{
struct node ptr;
ptr.left = NULL;
ptr.right = NULL;
insertdata(&ptr);
preorder(&ptr);
inorder(&ptr);
postorder(&ptr);
return 0;
}
ってしる!あと、>>672よ、同意してくれんのはいいんだが、>>665は合ってると思うが。
0678デフォルトの名無しさん
NGNGどなたかぜひお願いします。
教えてください。
英語の文章データを読み込んで単語に分け、アルファベット順に整理してその出現頻度を表示するプログラムを作成せよ。作業を簡単にするため、英文のテキストは以下のようなスタイルになっているとする。
(1)全て小文字で書かれている。
(2)1つの単語は2行にまたがらない。(ハイフンで継続しない)
(3)単語の区切りはスペース、コンマ、ピリオド、疑問符?、感嘆符!、括弧()などの特殊記号である。
(4)ハイフンとアポストロフィをもつスペル(READY-MADE, I’ve)は1つの単語とする。
(5)総語数は100語以内である。
(6)1語の長さは15字以内である。
【手順】
1.ファイルを読み込む
2.文章を単語を区切る
区切り記号を利用して単語に分ける。
区切り記号と文字を見分けるため、マーク用の文字型配列を用意し、アルファベット文字のある位置には#印、それ以外にはスペースを代入する。
3.一語ずつアルファベット順に仕分けて出現頻度もカウントする
新しい単語が入る位置を探し、辞書順の席が見つかれば、それまで並んでいたものを1つずつ後へずらしてから挿入し、同じものがすでにあればその語のカウント数を1増やす。単語が入るべき位置や同じ語が見つからなければ語種数を1増やし、最後尾に1語追加する。
4.結果を表示する
受け取ったデータを読みやすい形に出力する。縦にアルファベット順に並べ、3列程度に並べて表示するようにする。
(表示の例)
a 5 be 2 from 1
and 8 but 1 has 2
at 2 course 1 in 6
0679675
NGNGあ! そこ書き間違えましたstrlen(data)>9
ですね^^;
さらに書き間違いで仕様で「10文字以内のキャラ・・・」でなくて「9文字以内・・・」が正しいです
まあその辺の細かい所は気にしないでw
それよりも本題のバイト確保の仕方が分からなくて困ってます
仕様が9文字格納するのだがそこを100文字打つとかぬかす奴はどうすればいい?TT
char dataの設定の仕方教えてくださいTT
0680デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNG> 仕様が9文字格納するのだがそこを100文字打つとかぬかす奴はどうすればいい?TT
ポア
0684デフォルトの名無しさん
NGNGmalloc はダメなの?
>>681
そんな仕様は窓から投げ捨てよう!(笑)
0685時代は
NGNG0686675
NGNG結局char data[10];ってしてる限りそこに20文字入れたれたら問題発生するのでは?
char data[10000]ってしても10000以上入力する言われそうですTT
0687608
NGNG0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNGgets() 使う限り無理だから、素直にあきらめろ。
>>687
できるよ。
0690608
NGNGなんか質問ばかりですいません…。
0691デフォルトの名無しさん
NGNGほとんど同じようなことやったことある。
それはいいとして仕様は結構詳しく書いてあると思うんだけど、
どの部分がわからないのでしょうか?わからない所がわからなきゃ
先に進めないのでまずそこから教えてください。
0692デフォルトの名無しさん
NGNG最初に256文字で領域を取っておいてそこに入れていく。
もし足りなくなったらまた256文字領域を確保してそこに入れていく。
これをメモリが無くなるまで繰り返す。私ならこうやるけど…。
0694デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNGイメージフォントだから拡大のレベルに応じてフォントのサイズの変更
するくらいしかできないです。
MSゴシックの12ビットからMSゴシックの18ビットになどですね。
画面アプリケーションを作る上で、これは厄介な問題です。
逆にこれができればわざわざサイズごとのフォントを用意する必要も
ないわけです。
0697デフォルトの名無しさん
NGNGstd::string使え、っと。
0698デフォルトの名無しさん
NGNGえっと、まず、あらかじめ作られているファイルを読み込むのがわからないです。
ファイルを作ってそれを読み込むっていうのはわかるのですが、あらかじめ作られているのだと、ちょっと。。。
次に、2の工程はどうすればいいのか全然わからないです。
0699デフォルトの名無しさん
NGNGキミの環境は?
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNGfopen関数って知ってますか?ファイル読み込みにはその関数を使います。
手順2なんですけどはっきり言って自分にはよく理解できませんw。
>区切り記号と文字を見分けるため、マーク用の文字型配列を用意し、
>アルファベット文字のある位置には#印、それ以外にはスペースを代入する。
こうした後にこれを何に役立てるのかわかりません。文字の切り分け自体は
strtok関数とか使えばいいと思うんですけど、役に立たなくてすいません。
他の方でこの文章の意味を推測できる方いますか?
0702デフォルトの名無しさん
NGNG↓みたいなことなんでない?
バッファ1 同サイズのバッファ2
h #
o #
g #
e #
<space> <space>
h #
o #
(略)
激しく無意味な予感…
0703デフォルトの名無しさん
NGNGということはバッファ2で、#が出てくる始めの配列番号と#が連続で出てきた回数をカウントして
バッファ1の中身を単語に切り分けていくということでしょうか?自分の宿題じゃないのに
本気で悩んでしまいました。これって素直なやり方の1つなんでしょうか。
0704デフォルトの名無しさん
NGNGどーんと100MBくらい確保して、
「じゃあ1億文字入力してみろや」
くらいいえよ。
0705よし@C++
NGNGまたは平均点が60点以上であれば“合格”と表示するプログラムを、関数構造を使って作成せよ。
という課題がでたんですが、正直全然わかりません。基礎論の授業の前期テストなんでホントは簡単なはずなんですが…
勉強がたりなかったようです(:_;) どなたか教えていただけませんか?
0706675
NGNG(・o・)ゞ了解!
100MB確保しますw
これで実践する気にならないね もし1億文字入力されたら報告しますw
0707デフォルトの名無しさん
NGNG#include <stdio.h>
char *nurupo(int uho, int iiotoko, int yaranaika)
{
int ave = (int)((uho+iiotoko+yaranaika) / 3);
return(uho >= 90 ? "合格" : iiotoko >= 90 ? "合格" : yaranaika >= 90 ? "合格" : ave >= 60 ? "合格" : "ば〜か");
}
int main(void)
{
int uho, iiotoko, yaranaika;
printf("英語 = "); scanf("%d", &uho);
printf("国語 = "); scanf("%d", &iiotoko);
printf("数学 = "); scanf("%d", &yaranaika);
printf("%s\n", nurupo(uho, iiotoko, yaranaika));
return(0);
}
0708デフォルトの名無しさん
NGNG#include <stdio.h>
int func(int a,int b,int c);
main(){
int a,b,c;
printf("英語・国語・数学の点数を入力して下さい\n");
scanf("%d%d%d",&a,&b,&c);
if(func(a,b,c)==1){
printf("合格");
}
}
func(int a,int b,int c){
int d;
d=(a+b+c)/3;
if(d>=60){
return 1;
}else if(a>=90 || b>=90 || c>=90){
return 1;
}
return 0;
}
0709デフォルトの名無しさん
NGNG改行文字でも入るのかな。それでめんどくさいから、[BUFSIZ]にして
gets使ってた。エラーチェックしてもダメなん?
0710デフォルトの名無しさん
NGNG0711684=692
NGNGゴメン、お酒飲んでたの♥
コンソールからの入力をバッファリングして、出力するプログラムは以下の通り。
STRSIZE より大きい入力(この例では4文字)が来ても大丈夫なことを確かめてみて。
あと、今、酔っているから、間違ってたらゴメンね♪
#include <stdio.h>
#include <stdlib.h>
#define STRSIZE 4
typedef struct _Data{
char string[STRSIZE + 1];
struct _Data *next;
} Data;
main(){
int i;
Data *start=NULL, *now, *temp;
while( 1 ){
if( ( temp = (Data *)malloc( sizeof( Data ) ) ) == NULL ){
printf( "memory run out!\n" );
break;
}
temp->next = NULL;
fgets( temp->string, STRSIZE, stdin );
if( start == NULL )
start = temp;
else
now->next = temp;
now = temp;
0712デフォルトの名無しさん
NGNG9
9
9
9^(9^9)
0713続き
NGNGif( temp->string[i] == '\n' ){
for( now = start; now != NULL; now = now->next )
printf( "%s", now->string );
break;
}
}
if( temp->string[i] == '\n' )
break;
}
for( now = start; now != NULL; now = temp ){
temp = now->next;
free( now );
}
return 0;
}
0714684=692
NGNG711→713と続いてるから。
0717デフォルトの名無しさん
NGNG43932850369646432982977478265707271205801030817712671062167669775046634474476402
97733014126124825637294350648543542990955703795034525158532385201827409673987465
03532324400000659505126023955913142968176998364877699089666171297275956245407453
03319016864489485057634649269145869517428178955799492360778346148642644861766707
63939011044773249826312976410342770938186928234886034262794736743689436092688717
93467206677285688478458498235002859256706389043030847945506577080623430066283504
39758378904424542958598296457177460586846616037956743272570412126094093934321790
59758473650963158721532409698823634353634497752543930103682673439704262308013902
50903399147001650831878665172798468587509747439118815689
0718デフォルトの名無しさん
NGNG#include <math.h>
#include <stdio.h>
int main()
{
double x,f;
x = pow(9,9)*log(9)/log(10); /* 9^(9^9) = 10^((9^9)*ln(9)/ln(10)) */
f = fmod(x,1);
printf("9^(9^9) = about ");
printf("%fe+%.0f\n", pow(10,f), x-f); /* 10^x = (10^f)*(10^(x-f)) */
return 0;
}
0719デフォルトの名無しさん
NGNG整列アルゴリズムの二分挿入法を、
配列を使わずにポインタのリストで実現するという課題なんですが、
比較する要素をリストから探し出す度に先頭要素から見ていかなきゃならんので、
実行時間がめちゃくちゃ長くなってしまうんです。
(整列するデータは全て数字、数は10万個)
このうざったい要素探索処理を高速化したいんですが
何か良策はないでしょうか?
0720デフォルトの名無しさん
NGNGCPUとか変えれば・・・
0721C勉強中・・・
NGNG625でやっていただいたプログラムを改良しなくてはならなくなりました・・・
どこが悪いですかね?教えてください↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=111&fi=no
0722デフォルトの名無しさん
NGNG動かないから、改良するの?
0724C勉強中・・・
NGNGコンパイルもできるのですが、
最後の表示で、SubjectとTeacherが表示できないのです・・・
改良というか拡張です
Cはまだ勉強不足で原因がいくら考えても出てこなく、デキル人に見てもらおうかと
なんとかなりますかね?よろしくお願いします。
0725C勉強中・・・
NGNGあなたでしたか!とてもお世話になりました!
本当に感謝しています。
これ原因はどこでしょうか?
0726639
NGNGいや、だからね、あなたの張ったリンクが私のプログラムで、悪いところは無いはずなの。
あなたのプログラムはこれだよね?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=112&fi=no
0727C勉強中・・・
NGNG本当に失礼しました
0728C勉強中・・・
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=112&fi=no
が正しいです
0729639
NGNGそのソースをコピペしてコンパイルしたけど、あなたの言っているのと違う結果になった。
No と Point しか表示されない。私のコピペミス? それとも、>>724で言っているのは間違い?
0730C勉強中・・・
NGNGおかしいな・・・
もう一回今やってみます
0731C勉強中・・・
NGNG前略こんな感じです↓
S028 Maeda 73
S029 Ogawa 85
S030 Okada 92
0732C勉強中・・・
NGNG0734C勉強中・・・
NGNG困った・・・
コンパイルの環境はなんですか?
こちらは学校のUNIXサーバなんです
でもこれはこっちで勝手にを加えた部分が悪いでしょうから、見ていただいて、おかしいと思うところがあれば・・・
結構SubjectのIDがC001から順に並んでいなく、C010とか飛んでいる部分がネックになるのでしょうか
0735デフォルトの名無しさん
NGNG二分挿入法(二分探索木の挿入)を使うのなら、
データ構造もリストではなくツリー(二分木)であるべきではないのか
リストを使うなら、リストの末尾の要素を取得した時点で先頭から
逐次探索していた方が早いのでは(循環リストなら話は別)
課題が「ポインタのリストを使って」ということならばデータ構造の変更はできないが
0736639
NGNGゴメン、ファイル名間違って保存してた(笑)。これで Name はひょうじされたぞ!(笑)
で、当初の問題が残ったわけだが(笑)。
ちなみにこっちの環境は XP home に bcc32。
0737C勉強中・・・
NGNGそうですか、少し安心しました。
環境の違いで結果が変わっては聞けるもののきけなくなってしまいますからね(汗)
その環境ならおそらく全然結果に変わりはなさそうですね。
0739C勉強中・・・
NGNGそのフラグというものの概念が実はわからないのでそのあたりは自分でいじれなかったんです・・・
そのほかの部分で納得するのに、昨日の昼からはまってて
もう体が言うことを聞かない状態です><
そのフラグだけで解決できるものですか?
0740639
NGNG�@関数 read_c の sscanf を以下のように変更。
sscanf(linebuf,"%s %s %s %s",buf[0],buf[1],buf[2],buf[3]);
�Aその6行下(else if の最後の項)を
else if(strcmp(buf[j],"Credit")==0)i[3]=j+1;
と変更。
これで実行するとちゃんと表示される! が、異常終了する(笑)。
0741C勉強中・・・
NGNG0742C勉強中・・・
NGNG0743625
NGNGで、正しく修正したけどいる?
0744C勉強中・・・
NGNG0745C勉強中・・・
NGNG是非ほしいです!こんな短時間で驚きました。。。本当に感謝です!
0747625
NGNGNo Name Address Age
となってる並びを
Name Age No Address
とかって入れ替えても(勿論それに続くデータも)動くようにしてあるだけで
何と言うか趣味で付け足しただけだから
分からないなら、削ってしまった方が良いかもよ
0748639
NGNGdefine されている BSIZE が小さい(笑)。大きくしたらちゃんと出たぞやっほうッ!
0749C勉強中・・・
NGNG0750C勉強中・・・
NGNG0751625
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=113
0753デフォルトの名無しさん
NGNG・fgets(linebuf,sizeof(buf),fp);
0754625
NGNGread_c()の中のwhileを↓に訂正して
while(flag&&!feof(fp))
{
fgets(linebuf,sizeof(buf),fp);
sscanf(linebuf,"%s %s %s %s",buf[0],buf[1],buf[2],buf[3]); /* この行 */
j=atoi(buf[i[0]-1]+1)-1;
strcpy(Data_b[j].Subject,buf[i[1]-1]);
strcpy(Data_b[j].Teacher,buf[i[2]-1]);
Data_b[j].Credit=atoi(buf[i[3]-1]);
}
0755C勉強中・・・
NGNG前略
S0029 KaouzouRikigaku Fujii 85
S030 KousakuKikai Nishimura 92
て感じでNameが出ないのは自分だけですか?
本来
S029 Ogawa KouzouRikigaku Fujii 85
となるのですが・・・?
0757625
NGNG変数名を変えた時に直すの忘れてたね…(read_a〜cまでコピペで作ったし…)
つー訳で、全ての
fgets(linebuf,sizeof(buf),fp);
を
fgets(linebuf,sizeof(linebuf),fp);
に直して下さい
0758C勉強中・・・
NGNGお騒がせしました。
0761C勉強中・・・
NGNG0762デフォルトの名無しさん
NGNGつーかそういうデータはバイナリファイルの決められたサイズで保存してそれを
読み込めば簡単なのでは。
0763C勉強中・・・
NGNGそれも考えようとしたのですが、今回のやっていただいた可変長のスペース区切りのほうが頭に入ってきやすかったもので・・・
友人でそちらの方法でやっているひともいるようです。
0765C勉強中・・・
NGNGなるほどそうしたほうが見栄えよくなりますね。アドバイスありがとうございます。昨日から寝てないもので、休んでから挑戦してみます。提出は月曜ですからまだ時間がありますので^^
0766デフォルトの名無しさん
NGNGんじゃ、がんばってね
0767デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=114
0768698
NGNGアドバイスありがとうございます。
ファイルの読み込みはなんとなくわかったのですが、2の工程は全然なんですけど。。。
>バッファ2で、#が出てくる始めの配列番号と#が連続で出てきた回数をカウントして
>バッファ1の中身を単語に切り分けていく
???ってかんじです。
すんません。
0769デフォルトの名無しさん
NGNGprog.exe < でかいファイル.dat
とやられて終わるだけ。
>>709
駄目。
君は、C とかの危ない言語は使わないほうが身のため。
VB とかにしときなさい。
0770608
NGNGwindows2000 SP3
メモリ128MB
VC++6.0
です。
0771デフォルトの名無しさん
NGNGとりあえず、プロトとして敵なし、マップをとことこ歩くのみの
バージョンを創りたいです。
0773771
NGNGC++は参考書で知ってます。
でもマリオは一部のアセンブリ言語を除いて
C言語で書かれていると、昔、雑誌のインタビューで開発者が
言ってました。
0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG表示するプログラムを作れと言われました。
はっきり言ってよく分かりません。
どなたかお願いします。
0776デフォルトの名無しさん
NGNG&bだった気がする。
エスケープ記号のバックスペース。
あとは、time(),clock()のどっちかで、
時間とりながら、一秒ごとに打ち出す。かな。
0777719
NGNG>720
>CPUを変更
そいつは無理です。
>735
>二分木を使う
そうしたいのもやまやまなんですが、
課題にしっかり「リスト版の作成」と書いてあるのでお手上げです。
もう、あきらめます。
こんなバカな課題に付き合ってられません。
0778デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
int main(){
time_t t1,t2;
int cnt=10;
system("cls"); printf("%d",cnt);
time(&t1);
for(;;){
time(&t2);
if(difftime(t2,t1) > 1.0){
system("cls"); printf("%d",--cnt);
if(cnt<=0) return 0;
t1 = t2;
}
}
return 0;
}
0779デフォルトの名無しさん
NGNG賢い人なら、あきらめずに二分木版をつくって、
その優位性をレポートにまとめて提出する。
0780778
NGNGUNIXじゃ試してません。
UNIXなら"cls"を"clear"に変える。
0781デフォルトの名無しさん
NGNG授業でならわなかったの?
0782デフォルトの名無しさん
NGNGタ イ マ ー は 環 境 依 存
コ ン ソ ー ル 関 係 も 環 境 依 存
以上。
0783デフォルトの名無しさん
NGNG二分木だってリストの一種だぞ。
線形リストとは書いてないんだろ?
0784デフォルトの名無しさん
NGNGclock使えば10秒カウントはできないわけではない。
0785180
NGNG#include <stdio.h>
#include <time.h>
#define DOS_TATE_SIZE 25
#define WAIT 10
#define Y 10
#define X 10
int main(void)
{
int i,t,count;
for(count=WAIT;count>=0;count--)//時間まで
{
for(i=0;i<DOS_TATE_SIZE;i++)puts("");//画面クリア
for(i=0;i<X;i++)printf(" ");//xの位置の移動
printf("%02d:%02d",count/60,count%60);//時間の表示
for(i=0;i<DOS_TATE_SIZE-Y;i++)puts("");//yの位置の移動
for(t=clock()/CLOCKS_PER_SEC;clock()/CLOCKS_PER_SEC-t==0;){}//1秒待つ
}
return 0;
}
0786デフォルトの名無しさん
NGNGでもそれはそれでなんかカコイイ
0787デフォルトの名無しさん
NGNGputchar('\n');でいいだろ
0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNG0790675
NGNGどうもありがとうです あの後わからなくてフテ寝決め込んで
起きてみたら すばらしいソースが早速つかわせてもらいます
0791デフォルトの名無しさん
NGNG>>>680
>仕様がgetsなんですよTT
じゃなかったのか?
0792デフォルトの名無しさん
NGNGWinMainの中で無限ループするご時世ですが、なにか?
0793719
NGNG賢い人になるためにしこしこがんばります。
>>783
課題には線形リストの例が載ってたので、
どうやら線形リストを使うことを推奨しているようです。
とりあえず、みなさんのご忠告通りに二分木版を作ろうと思います。
質問に答えてくれてありがとうございます。
0794デフォルトの名無しさん
NGNGCPU100%になんの関係が・・・
0795デフォルトの名無しさん
NGNG教えてください。
使い方を知りたいです。
0796デフォルトの名無しさん
NGNGtime(NULL);
clock();
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG>WinMainとか〜
環境依存。ヴォケが。
0799デフォルトの名無しさん
NGNGどうやるんですか?
0800デフォルトの名無しさん
NGNGやはり手順2の意味が良くわからないですけど、たぶん1度ファイルから読み込んだ
データをバッファ1内で直接扱うのではなく、別バッファ2で'#'と' 'で置き換えて
わかりやすく区別します(>>702参照)。そして連続で#が出てくる最初の配列要素番号とその長さを
取得し、その情報をバッファ1に適用することで実際の単語を取り出すのだと思います。
これはバッファ2内で単純化してから考えるということだと思います。あとバッファ1内の
内容を直接いじって下手にデータ破壊をしないようにしているのだと思います。
自分が処理の中に手順2を含むのであればそう考えますがどうでしょうか?
説明が下手ですいません。他の方ならどう考えるのでしょうか?
0801デフォルトの名無しさん
NGNG色々な戦略(たとえば1順番に出す:2:ランダムに出す など)を一つの関数として定義して,戦略の優劣を評価するプログラムを
教えてください。
0802デフォルトの名無しさん
NGNGそれ以外考えられないと思う。
ただこの場合#は1個でも単語として成立するんだろ?
手順2が無いほうが絶対楽だけど課題じゃしょうがないわな。
0803デフォルトの名無しさん
NGNG一秒ごとに
cls: not found
が表示されますた
winでgcc
0804デフォルトの名無しさん
NGNG>>785じゃ遺憾の?非環境依存だから、どのマシンでもそれなりに動くし。
ウインドウズなら、猫でも分かるの
http://www.kumei.ne.jp/c_lang/intro/no_59.htm
とかを調べてみるといいよ。ただ、windows.hは永井意味の分からん英語が
おっぱおあるから、初心者だと難しいかも。
98、Meなら、エスケープシーケンスと言うのがある。グーグルで見ると
山ほど乗ってるよ。printfにそのまま記述できるから猫のより簡単だけど、
2000、NT(ANSI.SYSが無い)では動かないらしい。
0805デフォルトの名無しさん
NGNGただし%.2fはつかわずに自力で計算すること。
わからないのでよろしくお願いします。
0806デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int main(){
int a,b;
div_t ans;
printf("*** a/b を計算します(小数第一位を四捨五入) ***\na = ");
scanf("%d",&a);
printf("a = ");
scanf("%d",&b);
ans = div(a,b);
printf("a/b = %d", (ans.quot>ans.rem*2)?ans.quot:ans.quot+1);
return 0;
}
0807806
NGNG0808デフォルトの名無しさん
NGNGこのソースにコメントを付けて説明できるようにしろといわれたのですが、
よく分からないのでお願いします。構造体の説明もです。
すみません。
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNGすみません。無理っすか?
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNGちょとやってみる
0813デフォルトの名無しさん
NGNGすみませんでした。
気が向いたらぜひお願いします。
最後の希望age
0814デフォルトの名無しさん
NGNG取り組みありがとうございます。
小数2位のほうでもわかるでしょうか?
0815806
NGNG直した。
#include <stdio.h>
#include <stdlib.h>
int main(){
int a,b;
div_t tmp1,tmp2,tmp3;
printf("*** a/b を計算します(小数第3位を四捨五入) ***\na = ");
scanf("%d",&a); printf("b = "); scanf("%d",&b);
tmp1 = div(a,b);
tmp2 = div(tmp1.rem * 100, b);
tmp3 = div(tmp2.rem * 10, b);
if(tmp3.rem >=5) ++tmp2.quot;
if(tmp2.quot >= 100){++tmp1.quot;tmp2.quot%=100;}
printf("a/b = %d.%d",tmp1.quot,tmp2.quot);
return 0;
}
0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNGすばやい対応ありがとうございました!
0818806
NGNG0819806
NGNGif(tmp3.quot >=5) ++tmp2.quot;
0820デフォルトの名無しさん
NGNGvoid main()
{
int a,b;
printf("*** a/b を計算します(小数第3位を四捨五入) ***\na = ");
scanf("%d",&a); printf("b = "); scanf("%d",&b);
printf("a/b = %d.%d",(1000*a/b+5)/1000, (1000*a/b+5)/10%100 );
}
0821806
NGNGまだだめだった、たびたびすまんす。
#include <stdio.h>
#include <stdlib.h>
int main(){
int a,b;
div_t tmp1,tmp2,tmp3;
printf("*** a/b を計算します(小数第3位を四捨五入) ***\na = ");
scanf("%d",&a); printf("b = "); scanf("%d",&b);
tmp1 = div(a,b);
tmp2 = div(tmp1.rem * 100, b);
tmp3 = div(tmp2.rem * 10, b);
if(tmp3.quot >=5) ++tmp2.quot;
if(tmp2.quot >= 100){++tmp1.quot;tmp2.quot%=100;}
printf("a/b = %d.%02d",tmp1.quot,tmp2.quot);
return 0;
}
これでいいはず。すれ汚し須磨祖。
0822806
NGNG0823デフォルトの名無しさん
NGNGご丁寧にありがとうございます。
改良できるとこはしてくださるとありがたいですよ(笑)
0824806=822
NGNGint をunsigned longにしたり、
tmp2 = div(tmp1.rem * 100, b);
ここが100倍しているけど10倍ですむようにすれば、もう少し扱える数値範囲が増える。
まぁ究極は入力を文字列として受け取って、多倍長処理を実装するわけだが。
やる?
0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=117
こんな感じになった
0827806=822
NGNGじゃ、まだだめだ。
#include <stdio.h>
#include <stdlib.h>
int main(){
int a,b,sig=1;
div_t tmp1,tmp2,tmp3;
printf("*** a/b を計算します(小数第3位を四捨五入) ***\na = ");
scanf("%d",&a); printf("b = "); scanf("%d",&b);
if(b==0){printf("bには0以外の整数を入力してください。\n");return 0;};
if(a<0){a*=-1;sig*=-1;}
if(b<0){b*=-1;sig*=-1;}
tmp1 = div(a,b);
tmp2 = div(tmp1.rem * 100, b);
tmp3 = div(tmp2.rem * 10, b);
if(tmp3.quot >=5) ++tmp2.quot;
if(tmp2.quot >= 100){++tmp1.quot;tmp2.quot%=100;}
printf("a/b = %d.%02d",tmp1.quot*sig,tmp2.quot);
return 0;
}
ついでにb==0のエラー処理もつけた。
0828808
NGNGありがとうございます。
すごくきれいです。
印刷してとっておきます
0829よし@C++
NGNG0830デフォルトの名無しさん
NGNGそんなにコメント書くなんてお疲れ。
でも、実際、俺はうざいな〜。
0831デフォルトの名無しさん
NGNGスゲー、入門書も真っ青だ
参考になります
0832デフォルトの名無しさん
NGNGint WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR lpCmdLine,
int nCmdShow){
int rect;
for(rect=0;rect<=10;rect++){
MessageBox(NULL,TEXT("Hello,world"),
TEXT("はろー"),MB_OK);}
return 0;
}
0833デフォルトの名無しさん
NGNG**要求仕様**
1.最終的な結果として”xとyの最大公約数はzである。”という趣旨の結果表示を行うこと。
2.最大公約数が求められないような値が入力された場合には、(ユーザ入力により負の値が入力されたような想定)
警告を発し、再入力を促すようにせよ。
この問題の2番目がよくわかりません。よろしくお願いします。
0834デフォルトの名無しさん
NGNGじゃあ、2のところだけ。
main(){
int x,y;
while(1){
printf("input x y >>");
scanf("%d %d",&x,&y);
if(x<0){printf("xの値が不正です。");continue;}
if(y<0){printf("yの値が不正です。");continue;}
break;
}
}
0835あ☆
NGNG0836てすと
NGNG0837833
NGNGありがとうございます!
0838デフォルトの名無しさん
NGNGもし入力された得点が大きいならばポインタを挿入し(関数insert() で行う)、そうでなければ
再帰的に先に進むように、関数ordered_append() を完成させる。
#include <iostream.h>
struct node {
int num;
int score;
struct node *next;
};
typedef struct node Node;
Node *ordered_append(Node *, int, int);
Node *insert(Node *, int, int);
void show(Node *);
void deletelist(Node *);
void main()
{
Node *root = NULL;
int num, score;
cout << "番号: ";
cin >> num;
0839838
NGNGcin >> score;
while(num >= 0) {
root = ordered_append(root, num, score);
cout << "番号: ";
cin >> num;
cout << "得点: ";
cin >> score;
}
cout << "番号\t 得点\t 成績\n";
show(root);
deletelist(root);
}
Node *ordered_append(Node *n, int num, int score){
(不明部分)
}
Node *insert(Node *n, int num, int score){
(不明部分)
}
(略)
0840デフォルトの名無しさん
NGNGていう宿題が出されました。いろいろ調べたんですが、よくわかりません。
よろしくお願いします。
0841833
NGNGさらに合計で何文字あったのかを数え上げて表示するプログラムを作成せよ。
**要求仕様**
例)”cat”は3文字
”dog”は3文字
”monkey”は6文字
”rabbit”は6文字
”panda”は5文字
合計で23文字
と表示されるようにせよ。
という問題なんですがよくわかりません。すいませんがお願いします。
0842698
NGNGありがとうございます。
でも、ソースがわからんです。簡単に教えていただけませんか?
別に#に置き換えてのじゃなくて普通に読み込むだけのでもかまわないので教えていただけませんか?
0843デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
int main()
{
char a[4096];
int s=0,d=5,f;
while(d--){
fgets(a,sizeof a,stdin);
f=strlen(s)-1;
printf("\"%s\"は%d文字\n",a,f);
s+=f;
}
printf("\n合計で%d文字\n",s);
return 0;
}
0844デフォルトの名無しさん
NGNG文字数は半角ではなく全角でお願いしまふ
0845デフォルトの名無しさん
NGNGお、、、おーけい。
0846デフォルトの名無しさん
NGNG#include <string.h>
void g(const char *);
int main()
{
char a[4096],k[100];
int s=0,d=5,f;
while(d--){
fgets(a,sizeof a,stdin);
f=strlen(a)-1;
a[f]='\0';
sprintf(k,"%d",f);
printf("\"%s\"は",a);
g(k);
printf("文字\n");
s+=f;
}
sprintf(k,"%d",s);
printf("\n合計で");
g(k);
printf("文字\n");
return 0;
}
0847デフォルトの名無しさん
NGNGvoid g(const char *h)
{
char *j[]={"0","1","2","3","4","5","6","7","8","9"};
for(;*h;h++)
printf("%s",j[*h-'0']);
}
0848846,847
NGNGこれで
0849846,847
NGNG0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNG話の流れが掴めないんだけど、結局、何が分からないの?
0852705
NGNG>>708さん改めてありがとうございました。
でも、funcっていうの(関数?)を習ったことがないんですが、他の関数構造使ったらどうなるんでしょうか?
voidやreturnは習いました。
0853デフォルトの名無しさん
NGNG0854705
NGNGこれまでに習得したコマンドを使用することって書いてあるんですが、自分で作ったその関数ならば通用すると思いますか?
0855デフォルトの名無しさん
NGNGあなたは今とても馬鹿なことを言っています。
はっきり言ってみんな呆れています。
知らないにもほどがあります。
もう少し勉強してからきてください。
日本語が通じていません。
0856705
NGNG0857デフォルトの名無しさん
NGNG関数の作り方と、if文とreturn習ったならおk
最後のreturn 0はmainの最後につけたほうがよさげだなぁ
0858705
NGNG迷惑をかけた皆さん、ホントごめんなさい。
0859_
NGNG0861デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <time.h>
#define NUM 1000
#define MAX 20
int main(void) {
int data[MAX] = {0};
int sum = 0;
int i;
srand((unsigned int)time(NULL));
for(i = 0 ; i < NUM ; i++) {
data[rand() % MAX]++;
}
for(i = 0 ; i < MAX ; i++) {
printf("%2d : %5d\n", i + 1, data[i]);
sum += data[i];
}
return 0;
}
0862デフォルトの名無しさん
NGNG何?
0863デフォルトの名無しさん
NGNG文字列を返すような仕組みの関数ってわかりませんか?
完敗です(・・;)
0864デフォルトの名無しさん
NGNGsprintf()
0865デフォルトの名無しさん
NGNG四捨五入だったかどうか忘れたけど、sprintfの%fで精度を与えればできたかも。
0866デフォルトの名無しさん
NGNGchar* round(double a, int n)
この関数に、小数以下n桁に四捨五入した文字列を返すような仕組みを
作らなければいけないのですが、どうもその仕組みがうまくつかめない
もので。。
0867デフォルトの名無しさん
NGNG/* 戻す領域は再利用されるので呼び出し側での取り扱い注意 */
char *round(double a, int n)
{
static char sBuf[100];
sprintf(buf, "%.*f", n, a);
return sBuf;
}
0868デフォルトの名無しさん
NGNGあああ、sprintf()だけ書いたときの名残が・・・
sprintf(sBuf, ...)
ってことで。
0869デフォルトの名無しさん
NGNGrount(1.005, 2)やってみ
0870デフォルトの名無しさん
NGNGround(1.005, 2)
0871JK北野
NGNGそれを可能にする関数char*printint(int n,x)を作りなさい。
ここで、変数nは表示桁数、変数xは出力したい数値を表すものとする。
なお、表示桁数に満たない数の頭の部分は空白で埋めるものとする。
また、得られた処理結果はprintf("%s\n",printint(n,x));で確認できる。
という問題なのですが、ご迷惑でなければ、どうにか
お力添えをお願い致します。
0872838
NGNG全文載せました。誰か解答お願いします・・・
0873デフォルトの名無しさん
NGNG表示桁数を超える数の時はどうする?
ていうか、これじゃダメなのか?
printf("%*d\n", n, x);
0874デフォルトの名無しさん
NGNG> 標準関数printfは表示桁数を変数で指定できないため、
できます。
0875デフォルトの名無しさん
NGNG{
static char buf[1024];
sprintf(buf,"%*d",n,x);
return buf;
}
0876デフォルトの名無しさん
NGNG本質的でない問題の解決案。
#include <stdio.h>
#include <float.h>
/* 戻す領域は再利用されるので呼び出し側での取り扱い注意 */
char *round(double a, int n)
{
static char sBuf[100];
sprintf(buf, "%.*f", n, (1 + DBL_EPSILON) * a);
return sBuf;
}
0877デフォルトの名無しさん
NGNGchar* round(double a, int n)
お願いします。
0878デフォルトの名無しさん
NGNGchar* round(double a, int n)
お願いします。
0879_
NGNG0880デフォルトの名無しさん
NGNG整数型mul それぞれの構造体を定義する
文字型typ
20~99までの整数について
X[n]addにはn+n
X[n]mulにはn*n
X[n]typには 奇数なら”O”偶数なら”E”
3nが5から15の場合の値を表示する
初歩的だとは思うんですけどまったくわかりません。おしえてください。おねがいします
0881デフォルトの名無しさん
NGNG整数型mul それぞれの構造体を定義する
文字型typ
2 99までの整数について
X[n]addにはn+n
X[n]mulにはn*n
X[n]typには 奇数なら”O”偶数なら”E”
3 Nが5から15の場合の値を表示する
初歩的だとは思うんですけどまったくわかりません。おしえてください。おねがいします
0882デフォルトの名無しさん
NGNG俺こういう言い方嫌い
何をもって初歩的だと思ったわけ?わからないくせに
0883デフォルトの名無しさん
NGNGHなサイトなので、Hな人だけ見てみて♪(´∀` )
http://www12.ocn.ne.jp/~carlowen/beautiful/
0884デフォルトの名無しさん
NGNGint main(void)
{
static const struct {
int add;
int mul;
char typ;
} X[] = {
{0, 0, 'E'},
{2, 1, 'O'},
{4, 4, 'E'},
{6, 9, 'O'},
...
{198, 9801, 'O'},
};
int ic;
for (ic = 5; ic <= 15; ic++) {
printf("値\n");
return 0;
}
0886デフォルトの名無しさん
NGNGプログラムがある。そのうち二つの関数(bcdhen(), aschen())を作成しなさい。
誰か、
おねがいします。。
#include <stdio.h>
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long LONG;
typedef char SBYTE;
typedef short SWORD;
typedef long SLONG;
BYTE datatbl[100],/* 初期データ(バイナリ) */
bcdtbl[100],/* BCD データ */
asctbl[100];/* ASCII データ */
void bcdhen(void);
void aschen(void);
void main(void)
{
WORDcnt;
/* バイナリデータ作成 */
for(cnt = 0; cnt < 100; cnt++)
datatbl[cnt] = cnt;
bcdhen();
aschen();
}
/* バイナリ → BCD 変換 */
void bcdhen(void){}
/* バイナリ → 文字コード変換 */
void aschen(void){}
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890878
NGNG0891デフォルトの名無しさん
NGNGsprintf
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGで四捨五入。
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG0896878
NGNGお願いします!
0897デフォルトの名無しさん
NGNGint i;
double x;
for (x = 5; i < n; i++, x /= 10);
sprintf(buf, "%%.%df", n);
sprintf(buf2, buf, a+x);
0898デフォルトの名無しさん
NGNG馬鹿。過去ログ読めよ。
0899デフォルトの名無しさん
NGNG馬鹿。釣られるな。
0900デフォルトの名無しさん
NGNG例えば変数の値が10〜20の場合その変数を表示したときにその数字が黄色色に1〜9の場合赤色になるプログラムを誰か作ってください。
御願いします。
0901900
NGNG0902JK北野
NGNGこんなにたくさんの人が協力してくれるなんて感動です。。。
0903デフォルトの名無しさん
NGNGprintf("<font color=\"yellow\">%d</font>\n",i);
else if(i>=1&&i<=9)
printf("<font color=\"red\">%d</font>\n",i);
0904900
NGNG0905デフォルトの名無しさん
NGNGコンソール関連は環境依存だ。ヴォケが。
0906デフォルトの名無しさん
NGNG>>903は一つの有意義な回答なのだが。
君が提示せずに、誰が君の利用したい環境を推測し得ようか。
0907デフォルトの名無しさん
NGNG>>884は問題を的確に提示できない君への皮肉だ。
0908900
NGNG0909デフォルトの名無しさん
NGNG(α+γ)(β+γ)を求めて表示せよ。
ただし、複素数を、実数部と虚数部に対応するメンバで構成される構造体
として表し、複素数の加算用関数c_add()と乗算用関数c_mul()を作成し、
これを利用すること。
これらの関数は、sとtを複素数を表す構造体としたとき、c_add(s,t)、
c_mul(s,t)と呼び出すと、それぞれ戻り値として、sとtを加算、または乗算
した結果である複素数の構造体を返すものとする。
0910デフォルトの名無しさん
NGNGどういう出力イメージを持っているんだ?
0911デフォルトの名無しさん
NGNGその数を表示するプログラムなのですが、ここまではつくったんですが、検索の部分がどうしても
おかしいのです。なんとかなりませんでしょうか?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp;
char ch;
int i=0, j=0, k=0;
if(argc!=3){
printf("使用法:<プログラム名> <ファイル名> <文字>\n");
exit(1);
}
if((fp = fopen(argv[1], "r"))==NULL){
printf("ファイルを開くことができません\n");
exit(1);
}
0912911
NGNGwhile((ch = fgetc(fp)) != EOF){
if(ch==*argv[2]){
if(j==0)
j++;
}
if(j>=1){
if(ch==*(argv[2]+j))
j++;
}
if(*(argv[2]+j)=='\0'){
j=0;
i++;
}
/* データ検索のルーチン終了 */
0913911
NGNGif(i>1){
printf("%d個の ", i);
while(k<=j){
printf("%c", *(argv[2]+k));
k++;
}
printf("が見つかりました。\n");
}
else
printf("Not found\n");
fclose(fp);
return 0;
}
0914デフォルトの名無しさん
NGNG>>511に同じ問題が貼られているから、そこから読み直せ
0915デフォルトの名無しさん
NGNGファイルの中身を単一のバッファに全て読み込んでstrstr
fseek,ftell,malloc,fread,strstr これらの関数を駆使して。
0916デフォルトの名無しさん
NGNG0917911
NGNGあ〜、さっぱり分からないですその辺の関数
そんな難しいんでしょうか?
0919911
NGNG0920911
NGNG完全に正常には動かなくて…今のままだとたまにおかしくなるんです
0922911
NGNG全部一気に読み込んで検索ならもう少し楽なのかもしれませんが
0923デフォルトの名無しさん
NGNGこんな感じでいいかな?
きれいじゃないし、エラー処理してないからその辺は適当に・・・。
あと、コンパイルしてないからエラーがあるかも。
/* int find
FILE* fp;ファイルポインタ
char* lpsz;検索文字列
戻り値:ファイル中に含まれる検索文字列の数
*/
int find(FILE* fp,char* lpsz)
{
int i = 0,
len = 0, //検索文字列の長さ
count = 0; //カウント
char c = 0;
len = strlen(lpsz);//文字列の長さ取得
do{
for(i=0;i<len;i++){ //このforループ内で検索する
c = fgetc(fp);
if(c == EOF) break; //終端なら脱出
if(c != lpsz[i]) break; //一致しないと検索ループを抜ける
}
if(i == len) count++; //もし、上のループをbreakせずに抜ければ検索文字列と一致
}while(c != EOF);
return count;
}
0924デフォルトの名無しさん
NGNG検索する文字列 "ab"
テキストファイル "aab"
だとカウントされないのでは。
0925911
NGNG俺が上で作ってるプログラムもそうなんです…abでaabだと文字列にならないので困ってます。
0926デフォルトの名無しさん
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;
}
}
}
/* データ検索のルーチン終了 */
0927878
NGNG0928911
NGNGところで俺のプログラムはどこがまずかったのでしょうか?
argv[2][j]はどういう意味なんでしょうか?ポインタを配列に置き換えてるんですか?
0929911
NGNG0930923
NGNGんじゃ、これでどうかな?
int find(FILE* fp,char* lpsz)
{
int i = 0,
len = 0, //検索文字列の長さ
count = 0; //カウント
char c = 0;
len = strlen(lpsz);//文字列の長さ取得
do
{
for(i=0;i<len;i++) //このforループ内で検索する
{
c = fgetc(fp);
if(c == EOF) break; //終端なら返る
if(c != lpsz[i]) break; //一致しないと検索ループを抜ける
}
if(i == len){ //もし、上のループをbreakせずに抜ければ検索文字列と一致
count++;
}else{
fseek(fp,-i,SEEK_CUR);//breakしたときはファイルポインタをiだけ戻す
}
}while(c != EOF);
return count;
}
0931デフォルトの名無しさん
NGNGたぶん問題が悪い。
文字列として char* が戻り値なんて、ロクな問題じゃない。
0932923
NGNG文字列:aaaaa
検索対象:aa
のときに戻り値が2になっちゃうね。
戻り値が4になるには
count++;
↓
count++;
fseek(fp,-len+1,SEEK_CUR);
にすればいいかな?
なんか、文字列検索ってなかなか複雑だね。
まだどっか、間違ってそうだわ。
0933デフォルトの名無しさん
NGNGこう検索するの?
0934911
NGNGこの部分がよく分からないのですがどういう動作をするんでしょう?
0935デフォルトの名無しさん
NGNG釣られてやる。
860番代辺りに同じ質問と回答がある。
0936デフォルトの名無しさん
NGNGch == argv[2][j]が偽であるとき、jに0を代入して
ch == argv[2][j]を検査する。
0938911
NGNGポインタで書いたら
if (ch == *(argv[2]+j) || ch == *(argv[2]+(j=0)))
こうですか?
0939デフォルトの名無しさん
NGNGそう検索するんだったら、一文字読んで fgetpos()、
文字列が一致するか確認したら、fsetpos() で元の位置に戻す
とかした方が楽なんじゃないの?
0940デフォルトの名無しさん
NGNG*(Pointer + Integer) ≡ Pointer[Integer] ≡ Integer[Pointer]
どう書き換えてもポインタ演算。
0941デフォルトの名無しさん
NGNGこれ位までなら、理解出来るようになろうね
if (ch == i[argv[2]] || ch == (j=0)[2[argv]] )
0942デフォルトの名無しさん
NGNG#include <stdio.h>
#include <windows.h>
int main(void)
{
int i;
for(i=1;i<=20;i++)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),(WORD)(4+(1-(i-1)/10)*2));
printf("%d\n",i);
}
return 0;
}
0943デフォルトの名無しさん
NGNGこんな方法もある。
#include <stdio.h>
int main(void)
{
int num;
printf("num = ");
scanf("%d", &num);
if(10 <= num && num <= 20){
printf("\x1b[1;33;48m");
printf("num = %d\n", num);
}
else if(0 <= num && num <= 9){
printf("\x1b[1;31;48m");
printf("num = %d\n", num);
}
else
printf("num = %d\n", num);
printf("\x1b[m");
return 0;
}
0944山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0945デフォルトの名無しさん
NGNG文字列 str に同じ文字が続くときは、それらを1つにする関数
void omit_samechar(char str[])
を作成せよ。
実行例:(下線部分は実行時に入力する)
文字列を入力してください:sssaaaaanyyyosaaaannnn
sanyosan
0946デフォルトの名無しさん
NGNGchar *dst = str, prev = 0;
for( ;*str; str++ )
{ if( *str != prev ) *dst++ = *str;
prev = *str; }
}
0947デフォルトの名無しさん
NGNG終端は?
0948945
NGNGでもすみませんが、途中じゃわからないので
全部教えていただけませんか?
0949デフォルトの名無しさん
NGNG{
char *p;
if (str == NULL || *str == '\0') {
return;
}
p = str++;
do {
if (*str != *p) {
p++;
}
} while(*p = *str++);
}
/* 常にコピーする辺りが無駄 */
0950デフォルトの名無しさん
NGNGmain()位自分で書け。
0951デフォルトの名無しさん
NGNGchar *dst = str;
for( ;*dst++ = *str;)
for (; *dst == *++str;) ;
}
0952デフォルトの名無しさん
NGNGchar *dst = str;
for( ;*dst = *str; *dst++)
for (; *dst == *++str;) ;
}
0953デフォルトの名無しさん
NGNG{
char *p;
for (p = str; *p = *str; p++) {
while (*p == *++str) {
}
}
}
/* がーん、952と同じな上に出遅れた */
0954デフォルトの名無しさん
NGNG{
char *p=s;
while(*p++){
if(*p != *s){
*++s = *p;
}
}
}
0955デフォルトの名無しさん
NGNG最後のヌル文字入る?
0956デフォルトの名無しさん
NGNG{
char *p = str;
do {
if (*str != *p) {
*++p = *str;
}
} while (*str++);
>>955
先にコピー済みなので大丈夫。
0957954
NGNG0958山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0959900
NGNG例えば、
#include<stdio.h>
int main(){
int a=30;
while(1){
printf("%d\n",a);
getchar();
a--;
if(a==0){return 0;}
}
}
このようなプログラムがあった場合、変数aが20になった場合10まで色が黄色に、
10になった場合0まで赤色にしたいのです。
0960デフォルトの名無しさん
NGNGgoogle で ANSIエスケープ を検索
0961デフォルトの名無しさん
NGNG文字をデータとして保持する構造体Listを考える。二つの リストをl1とl2とするとき、
l2の要素を l1の後ろに連結する関数を定義し、その動作を確認しなさい。 戻り値は、
追加したノード数とする。また、l2の要素と l1に追加された要素は独立の存在するとする。
int concat(List &l1,List l2)
0962デフォルトの名無しさん
NGNG構造体の定義も書かないでできるか!
0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGって逝ったらこのスレの意義がなくなるか…
0967r
NGNG今さらだが、折角書いたのでupさせてくださいな...
http://do.sakura.ne.jp/〜junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=119
ファイルが aaaa で検索文字列が aa のとき、3になる。
つーか、ずいぶん大げさなプログラムになってしまったので、
あんまり参考にはならないかもね。ケケッ!
0968r/967
NGNG0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNG-947347397.00とかに。なぜですか?
#include <stdio.h>
void main (void)
{
double indata[5];
double ave = 0.0;
int i;
for(i=0;i<5;i++)
{
printf("\n数値を入力(実数型)");
rewind (stdin);
scanf ("%4.2f",&indata[i]);
ave=ave+indata[i];
}
printf("平均値は%4.2f",ave/5);
}
0971デフォルトの名無しさん
NGNGscanf("%lf",&indata[i]);
0972デフォルトの名無しさん
NGNG関数があるって聞いたのですがなんていう関数ですか?
例)
キーボード入力でabcdefghijkと打ち込んで変数(配列)の文字数指定が5文字だとしたら
変数にはabcd\0と格納されefghijkは廃棄されるという関数なのですが・・・・
知ってる方教えてください よろしくお願いしますm(_ _)m
0973r/967
NGNG0974デフォルトの名無しさん
NGNGvoid main (void)
{
char i;
scanf("%c",&i);
while ( i != 'Y' || i != 'N')
{
scanf ("%s",&i);
}
printf ("終了\n");
}
なぜか永久ループです
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNGvoid main (void)
{
char i;
scanf("%c",&i);
c = toupper(c);
while ( i != 'Y' || i != 'N')
{
scanf ("%s",&i);
}
printf ("終了\n");
}
0977デフォルトの名無しさん
NGNGネタ?
0978積>>974
NGNGつーか、もしかして、1000取り合戦なのか?
0979デフォルトの名無しさん
NGNG{
std::cout << std::cin;
}
0980974
NGNG0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG残り僅かなのに、スレを無駄に消費した責任を取って、次スレよろ
0984911
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;
}
}
}
/* データ検索のルーチン終了 */
ここから改造してそこを修正する方法はないんでしょうか?
0985デフォルトの名無しさん
NGNG本当に
>文字をデータとして保持する構造体List
なのか?
0986デフォルトの名無しさん
NGNG#include <stdio.h>
struct List
{
std::string buf_;
};
int concat(List &l1,List l2)
{
l1.buf_ += l2.buf_;
return l1.buf_.size();
}
main()
{
List l1,l2;
l1.buf_ = "萌";
l2.buf_ = "ろろろろ";
concat(l1, l2);
printf("%s", l1.buf_.c_str());
}
0987デフォルトの名無しさん
NGNG<`Д´>C/C++の宿題は私にやらせるニダ!Ver11
http://pc2.2ch.net/test/read.cgi/tech/1058283913/
0988デフォルトの名無しさん
NGNG乙
0989デフォルトの名無しさん
NGNG/* データ検索のルーチン */
while ((ch = fgetc(fp)) != EOF) {
if (ch == argv[2][j]) {
++j;
if (argv[2][j] == '\0') {
++i;
j = 0;
}
}
else {
fseek(fp, -j, SEEK_CUR);
j = 0;
}
}
/* データ検索のルーチン終了 */
0991r
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=119
fseekしないでもOKです。
0992デフォルトの名無しさん
NGNGどういう判断で戻り値が無いと思ったの?
0994デフォルトの名無しさん
NGNGその警告が出てる関数はmain()じゃねーのか?
0995デフォルトの名無しさん
NGNGmain()→void main()
にすればいいんじゃ?
0996デフォルトの名無しさん
NGNGだろ?>>995
0997デフォルトの名無しさん
NGNGネタに(略
0998デフォルトの名無しさん
NGNGネタということにしたいのですね? :)
0999デフォルトの名無しさん
NGNGもう、その手のネタは飽きた
1000デフォルトの名無しさん
NGNGふーん
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。