トップページ⇒tech
1001コメント360KB

ぼるじょあがC/C++の宿題を片付けますYO! 35代目

レス数が1000を超えています。これ以上書き込みはできません。
0001ぼるじょあ ◆yBEncckFOU NGNG
(・3・)エェー C++房のぼるじょあですYO!
わからない宿題を片づけますYO!
――【注意点】――――――――――――――――――――――
・使用する言語(C/C++)や環境(CUI/GUIなど)は必ず書きましょう。
・問題文は、ちゃんと解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式自体をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その行とエラーの詳細を書きましょう。
 エラーメッセージが出た場合はそのままコピーしてください。
・後になって問題につけたしをするのはやめましょう。
 解いてもらっている方に失礼になってしまいます。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html

【歴代スレは>>1-10辺り】

34代目: http://pc5.2ch.net/test/read.cgi/tech/1100530682/
33代目: http://pc5.2ch.net/test/read.cgi/tech/1097932699/
32代目: http://pc5.2ch.net/test/read.cgi/tech/1097592876/
31代目: http://pc5.2ch.net/test/read.cgi/tech/1095075678/
30代目: http://pc5.2ch.net/test/read.cgi/tech/1091954342/
29代目: http://pc5.2ch.net/test/read.cgi/tech/1090765027/
28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
0002デフォルトの名無しさんNGNG
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
1代目: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html

【注意点追加】
・複雑なAAはスレが荒れたり問題を埋もれさせてしまう原因に
 なりますので、使用を控えてください。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか
[5] その他の制限:
0003デフォルトの名無しさんNGNG
ちんちん
0004デフォルトの名無しさんNGNG
は?
0005ぼるじょあ ◆yBEncckFOU NGNG
(・3・)エェー ぼるじょあかYO!
0006デフォルトの名無しさんNGNG
**************** 糸冬 了 ****************
0007デフォルトの名無しさんNGNG
ぼるじょあキター
性懲りも無く・・・
0008デフォルトの名無しさんNGNG
ボルジョア・ワイン
0009デフォルトの名無しさんNGNG
ぷれたぽるて
0010デフォルトの名無しさんNGNG
>>1
乙
0011デフォルトの名無しさんNGNG
集約とprivateな継承はどのように使い分けたらよいか、実際のコードを用いて説明せよ。
使用する言語はC++とする。

という宿題がでたんですけど、だれか教えてくれませんか?
0012デフォルトの名無しさんNGNG
ボルジャレー ターヴォ3
0013ぼるじょあ ◆yBEncckFOU NGNG
だれもこないね。。
0014デフォルトの名無しさんNGNG
前のスレ終わったの?
001511NGNG
僕はスルーですか?・・・
0016(・∀・)イイ!!NGNG
そんな答えてもらいたいなら
あげれば(・∀・)イイ!!
それでも答えてもらえないなら
しかたな(・∀・)イイ!!
0017デフォルトの名無しさんNGNG
あげ
0018デフォルトの名無しさんNGNG
宿題スレ自体はあるの?
0019sageNGNG
専門学校1年のアルゴリズムで、本当に出た宿題(問題そのまま)です。
具体例は理解できるのですが、考え方がまったくわからないので
お願いします。

[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
C言語を用いて次のプログラムを作成しなさい。

材料が、鉄:5000kg 3000kgの二種類あり、
製品が、鉄鋼:3100kg 1800kg 1400kg 1100,800kgの4種類ある。

ユーザは、ほしい製品の数量をコンソールからそれぞれ入力し、
どの材料からどのような組み合わせで作ればいいか
最適な組み合わせ(材料に無駄が少ないようにする)を出力する。
具体例:
3100kg*1がほしい→5000kgから3100*1の組み合わせで作ればよい。
1500kg*2がほしい→3000kgから1500*2の組み合わせで作ればよい。
3100*2,1800*2,1000*2がほしい
↓
4000kg*1から3100*1+1800+1
4000kg*1から3100*1+1800+1
3000kg*1から1000*2
の組み合わせで作ればよい。
[3] 環境
 [3.1] OS:Windows2000
 [3.2] コンパイラ(バージョン):Microsoft VisualC++6.0
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:2004年12月14日
[5] その他の制限:ある程度最適ならよい
002019NGNG
sageみすりました_Π○
0021デフォルトの名無しさんNGNG
>>19
不可能でFA
0022デフォルトの名無しさんNGNG
4000kg?
0023デフォルトの名無しさんNGNG
"abcbccab"という文字列のsuffix arrayを作成するC++のプログラムを作成せよ。

要するにabcbccab、bcbccab、cbccab、bccab、ccab、cab、ab、bという文字列を
クイックソートを用いて辞書順にソートしたいんですがどうもやり方がわかりません
0024デフォルトの名無しさんNGNG
作成せよとか書かれるとどっちが主題出されてる側なのかと思ってしまう。
0025(・∀・)イイ!! ◆LC7P44pfbg NGNG
出された問題は文章変えずにそのまま投稿しろということになってるから
しかたな(・∀・)イイ!!
0026デフォルトの名無しさんNGNG
>23
クイックソートしなくてもセットに入れていけばいいんだよね?
0027デフォルトの名無しさんNGNG
また、(・∀・)イイ!!か。
(・∀・)イイ!!の言うことは確かに正論だ。
だがな?正論ばっかじゃ生きていけないぜ?
(・∀・)イイ!!のような自治厨をこのスレは欲していない。
(・∀・)イイ!!がいたところで、このスレが荒れることには
変わりないんだからな、わかったな?
0028デフォルトの名無しさんNGNG
>>27
良い良い良い良い五月蠅いな
0029デフォルトの名無しさんNGNG
そんなことより、なんか書き込みすくねーな。
0030デフォルトの名無しさんNGNG
[2] 問題文: マクローリン展開によって正弦を計算する簡単なプログラムを作れ
[3] 環境
 [3.1] OS:windows xp
 [3.2] コンパイラ(バージョン):よく分からないんですが、Cygwin(?
 [3.3] 言語:C

sin(x)=x-x^3/3!+x^5/5!-x^7/7!・・・がサインの展開したものです。
角度をthetaとしてください。何項まで計算するか自分で指定しなくちゃいけないんですかね^^;
かなりの素人ですが、 お願いしますm(__)m
0031デフォルトの名無しさんNGNG
ん?何項までの計算は自分でするの?
それとも俺等が聞かれてるの?

オマエは素人ってか馬鹿だから、俺は答えない。
0032デフォルトの名無しさんNGNG
すみません; それすらもよく分かりません。
四項まで指定するとどうなりますか?
0033デフォルトの名無しさんNGNG
>>31はばかだと思う。
0034デフォルトの名無しさんNGNG
>>32
4項までとかそんなのは関係無い。
要は、何項までか指定されているか、そうでないか?で、プログラムが変わる。
0035デフォルトの名無しさんNGNG
指定があったら
> 何項まで計算するか自分で指定しなくちゃいけないんですかね^^;
なんて言葉が出てくるだろうか
0036デフォルトの名無しさんNGNG
>>35
いけないんですかね?だとしたら、
指定されているけど、そんなんする必要あるの?っ解釈も出来るでしょ?
その上での>>31。
0037デフォルトの名無しさんNGNG
そんなもんユーザーに決めさせるようにするにきまってんだろ。
0038デフォルトの名無しさんNGNG
>23
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <iterator>
#include <map>
using namespace std;
class Suffix{
map<string, int> Dictionary;
public:
Suffix(string str);
void MakeSuffix(string str);
vector<int> GetSuffixArray();};
Suffix::Suffix(string str){MakeSuffix(str);}
void Suffix::MakeSuffix(string str){
for(string::iterator itr=str.begin();itr!=str.end();itr++){
string temp;
copy(itr, str.end(),back_inserter(temp));
Dictionary.insert(make_pair(temp, itr-str.begin()));}}
vector<int> Suffix::GetSuffixArray(){
vector<int> ret;
for(map<string, int>::iterator itr=Dictionary.begin();itr!=Dictionary.end();itr++){
ret.push_back(itr->second);}return ret;}
void show(int i){cout << i <<endl;}
int main(void){
string str="imfinethankyou";
Suffix sfx(str);
vector<int> v=sfx.GetSuffixArray();
for_each(v.begin(), v.end(), show);
return 0;}
0039300NGNG
>製品が、鉄鋼:3100kg 1800kg 1400kg 1100,800kgの4種類ある。

5種類に見える
0040デフォルトの名無しさんNGNG
csvファイルを作成する時、1行目のA1を a、B1を b と表示するには
どうすればいいのですか?

a    b
0.001  1
0.002  2
0.003  3
以下続く。

for(i=1; i<10; i++){
 moge(double a, double b;):
  cout<< a << ", " << b << endl;
}
0041デフォルトの名無しさんNGNG
駄目だ… どうコメントしたらいいか…
0042デフォルトの名無しさんNGNG
>>40
何がしたいのかよく分からん。もっと分かりやすく説明してくれ。
0043デフォルトの名無しさんNGNG
ぼるじょあさん今日はもう寝ちゃったの?
0044デフォルトの名無しさんNGNG
そもそも宿題じゃないだろ?
0045デフォルトの名無しさんNGNG
どのセルも文字列として扱え
0046デフォルトの名無しさんNGNG
[1] 授業単元:プログラミング言語基礎
[2] 問題文:
課題2 1〜20までの整数を入力し、その個数分だけの正の整数を入力し、入力した順と逆順に出力する。
課題3 20個までの適当な正の整数を入力し、入力した順と逆順に出力する。課題2とは違って、あらかじめ何個入力するかは指定しない。
課題4 課題3で入力された整数に加えて、別に1個の数値を入力し、その数値が先に入力した数値の中に含まれるかどうかを判定し、あればyes、無ければnoを出力する。
課題5 課題4に加えて、数値がある場合、何番目の数値か出力する。
課題6 課題4,5に加えて、後から入力した数値が含まれる場合、その数値を除いた残りの数値を出力する。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ(バージョン): MinGW 2.0.0
 [3.3] 言語:C
[4] 期限:2004年12月22日

素人なのでよく分かりません。どうか宜しくお願いします。
0047デフォルトの名無しさんNGNG
#include <stdio.h>
#include <string.h>

int main()
{
    int array[20];
    int i,in,key;
    int yesno = 0;
    memset(array, -1, sizeof(array));
    printf("個数?:");
    scanf("%d",&in);
    if(in < 0 || in > 20) return 0;
              /* in = 20; */
    printf("-1で強制終了:");
    for(i=0; i<in; i++) {
        scanf("%d",&array[i]);
        if(array[i] == -1) break;
    }
    printf("キー?:");
    scanf("%d",&key);
    for(i=19; i>=0; i--) {
        if(array[i] == key) { yesno = 1; printf("yes\t"); printf("%d番目\n", i+1); }
        else if(array[i] != -1) { printf("%d\n",array[i]); }
    }
    if(yesno == 0) { printf("no"); }
}
0048デフォルトの名無しさんNGNG
>>30
#include <stdio.h>
#include <math.h>
/* 階乗 */
double factorial(unsigned int a)
{
    int ans = 1;
    while(a) {
        ans *= a;
        a--;
    }
    return (double)ans;
}
int main()
{
    int n;
    double x,ans = 0.0;
    printf("n?:");
    scanf("%d", &n);
    printf("theta(rad)?:");
    scanf("%lf", &x);
    while(n>0) {
        ans += ( pow(-1,(n-1)) / factorial(2*n-1) * pow(x,(2*n-1)) );
        n--;
    }
    printf("左辺:%lf", sin(x));
    printf("右辺:%lf",ans);

    return 0;
}
ある範囲超えると大幅に狂う… 制限区間があったかも
0049デフォルトの名無しさんNGNG
入力した文字列が何文字であっても正確に逆順に出来るプログラムを作りなさい。

だそうです。
誰か作って下さい。
005049NGNG
C++でお願いします。
0051デフォルトの名無しさんNGNG
>>49
std::string str = "hoge";
str.assign(str.rbegin(), str.rend()); // 逆順にする
0052デフォルトの名無しさんNGNG
>>49
君はまずCとC++の区別をつけられるようになりなさい
0053デフォルトの名無しさんNGNG
>>48
階乗はあっさりINT_MAXを越えると思うのだが。
005449NGNG
>>51
ありがとうございます。

>>52
今まで実行は Visual C++ .NET でやっていたのでてっきり
自分はC++習ってると思ってたんですが、ちょっと調べたところ、C言語だったみたいです。
忠告ありがとうございました。




まことに身勝手ながら、>>49の問題を誰かC言語でお願いします。
005546NGNG
>>47 ありがとうございました。

また、課題が出たので、よろしくお願いします。

[1] 授業単元:プログラミング言語基礎
[2] 問題文:
  20個の正の整数を入力し、その中から3番目に大きな数値とそれが何番目に入力されたかを出力するプログラム。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ(バージョン): MinGW 2.0.0
 [3.3] 言語:C
[4] 期限:2004年12月24日
005649NGNG
自力で出来ました。
お騒がせしました。
もしやって下さっていた方が居ましたら、
ご苦労様でした & すいませんでした。
0057デフォルトの名無しさんNGNG
[2]問題文:離散データ点列 (0.0,1.0),(1.0,3.0),(2.0,5.0)
                   (3.0,5.0),(4.0,2.0),(5.0,0.0)
        の最小2乗近似による一次多項式f1(x),二次多項式f2(x)を求めなさい
        与えられた関数系はf(x)=x^jとして,近似関数F(x)を係数a(j)と関数系f(x)を乗じて
        0からj(j=0,1,・・・,m)まで級数をとったものとする。その近似が最もよくなるように
        係数a(j)を決める
[3]環境:
 [3.1]OS:Windows XP
 [3.2]コンパイラ(バージョン):詳細はわかりませんが,Cygwinを使ってます
 [3.3]言語:C

最小2乗近似をつかって近似多項式を求める問題でm=1,2の場合について
求めなければならないのですが、求めるのは係数のa(j)で、m=1の場合はa(0),a(1)
m=2の場合はa(0),a(1),a(2)という風に分けて求めたいです
どうかよろしくお願いします
0058デフォルトの名無しさんNGNG
c言語初心者で程度の低い質問で申し訳ないんですが

キーボードから10個の値(正の整数)入力し、その合計を求め表示するプログラム

 入力した値が
 奇数なら5を足した値を足す
 偶数は3倍した値を足す

10個の値を入力するためには、for関数を使用する

という課題を出されたのですが、for関数を用いて10個の値を入力するってのがよく分かりません。
お教え頂けないでしょうか?
0059デフォルトの名無しさんNGNG
int func_for()
{
  int i,num,total=0;
  for(i=0;i<10;i++) {
    scanf("%d",num);
    if(num%2 == 1) total+=num+5;
    else total+=(num*3);
  }
}
    
  
0060デフォルトの名無しさんNGNG
>>58
int main(void){
unsigned int i,n,sum=0;
for(i=0;i<10;i++){
scanf("%u",&n);
if(n%2 == 1) sum+=n+5;
else sum+=(n*3);
}

return(0);
0061デフォルトの名無しさんNGNG
[問題文]
円周率πを以下の式を用いて計算するプログラムを作成しなさい。

π/4 = arctan 1/2 + arctan 1/5 + arctan 1/8

ただし、arctanは以下の級数展開の式を用いて計算すること。

arctan t = t - t^3/3 + t^5/5 -t^7/7 + … + (-1)^n * t^(2n+1) / 2n+1 + …

[言語]C言語です


式が見づらくてすみません。
このような課題が出たのですが、解き方が全くわかりません。
どなたか解いていただけないでしょうか?
0062デフォルトの名無しさんNGNG
>>55
かなりやっつけ。もっとスマートな方法はあるはず。
void sort(int *list,int *input){
int cnt1,cnt2,temp;
for(cnt1=19;cnt1>0;cnt1--){
for(cnt2=0;cnt2<cnt1;cnt2++){
if(*(list+cnt2)<*(list+cnt2+1)){
temp=*(list+cnt2+1);
*(list+cnt2+1)=*(list+cnt2);
*(list+cnt2)=temp;
temp=*(input+cnt2+1);
*(input+cnt2+1)=*(input+cnt2);
*(input+cnt2)=temp;
}
}
}
}

void showList(int *list,int *input){
for(int cnt=0;cnt<20;cnt++)printf("%d番目に大きいのは%d(入力は%d番目)\n",cnt+1,*(list+cnt),*(input+cnt)+1);
}

int main()
{
int list[20],input[20];
for(int cnt=0;cnt<20;cnt++){printf("No. %d =",cnt);scanf("%d",&list[cnt]);input[cnt]=cnt;}
sort(list,input);
printf("3番目に大きいのは%d(入力は%d番目)\n",list[2],input[2]+1);
showList(list,input);
}
0063デフォルトの名無しさんNGNG
あー、int mainがreturnしてねぇ…
0064デフォルトの名無しさんNGNG
>>61
long double Arctan(long double t,unsigned int n){
  unsigned int i;
  long double p,q,x=0;
  for(i=0;i<n;i++){
    p=pow(-1,n);
    q=pow(t,2*i+1);
    x=p*q/(2*i+1);
  }
  return(x);
}

int main(void){
  unsigned int n;
  scanf("%u",&n);
  printf("%lf\n",Arctan(0.5,n)+Arctan(0.2,n)+Arctan(0.25,n));
0065デフォルトの名無しさんNGNG
答えたのにお礼も無い人ってどうかと思うよー。
0066デフォルトの名無しさんNGNG
>>65
じゃあ答えるなよばーか
0067デフォルトの名無しさんNGNG
>>66
ほぉーそう来たかw
分かった。そうする。
0068デフォルトの名無しさんNGNG
>>64
間違ってねぇか?
p=pow(-1,n); はp=pow(-1,i);
最後のArctan(0,25)は(0.125)だと思われ。
あと最後の返し中括弧がないね。これはどーでもいいが。
0069デフォルトの名無しさんNGNG
>>68
あーそうだね。間違ってる。
でも君が気付くんだから、質問者も気付くんじゃないかな?
最後の括弧とretunは面倒だから省いた。ヘッダのインクルードもね。
0070デフォルトの名無しさんNGNG
>>69
じゃあ答えるなよばーか
0071デフォルトの名無しさんNGNG
>>70
だから答えねーよばーか
0072デフォルトの名無しさんNGNG
>retun
言い訳がましいなぁ。まぁ、Typoする香具師だということはよく判ったが。
0073デフォルトの名無しさんNGNG
彼は会社にいてほしくない人だね
0074デフォルトの名無しさんNGNG
>>72
んな小さいミスでゴタゴタ言うなや・・・すぐ見つかるミスだからいいでしょ。
このスレに書くプログラムで動作テストまでやってる人いるの?
0075デフォルトの名無しさんNGNG
>>74
動作確認して書くのは当たり前だろ。
恥を知れ。
0076デフォルトの名無しさんNGNG
>>73
何?社会人でこのスレにプログラム提供してる人いるの?
だとしたら、随分レベルの低い人だね。

俺は大学学部4年。暇な時ここに書いてる。
0077デフォルトの名無しさんNGNG
>>75
そうか。ドンマイw
0078デフォルトの名無しさんNGNG
>>76
もう二度とクソコード書き込むなよ…
0079(・∀・)イイ!! ◆LC7P44pfbg NGNG
回答者どうしでケンカするの(・∀・)イイ!!
せめぎ合う中で良質のプログラマーは育まれ
世に良質なコードが多数生み出されていく
そんな明るい未来(・∀・)イイ!!
0080デフォルトの名無しさんNGNG
>>78
うーん。大体が糞コードなんだし、糞コードが一つ増えても何も変わらないのでは?
ま、もうここにソースは書き込まないよ。

ってか書き込む人はちゃんと動作テストするんだぞ!!
0081デフォルトの名無しさんNGNG
>>80
ソースといわず、ここといわず、何も書き込むな。
0082デフォルトの名無しさんNGNG
暗い人達ですが、何か?
0083デフォルトの名無しさんNGNG
C++

(  )の中に当てはまる語句を選択肢から選ぶ問題です。

・switch文は(  )[1]によって、(  )[2]の実行文の中のどれかを(  )[3]処理する(  )[4]制御文です。

選択肢
a単数 b複数 c式の値 d選んで e単一方向 f多方向分岐

・(式)の値は(  )[1]でなければいけません。
・case 定数式:と default:文は実行文を示す(  )[2]です。
・case 文は、何段でも続けて書くことが(  )[3]。
・case 定数式と default の後には(  )(;)[4]ではなく(  )(:)[5]を書きます。
・実行文の範囲は、カッコ{  }で(  )[6]。
・(  )[7]文は、必要でなければ省略することもできます。
・switch 文はif 文のように、式の大小や、文字列同士を比較して分岐方向を決めることが(  )[8]。

選択肢
aできます bできません c示します d示しません eラベル f整数 gコロン hセミコロン i case j default


よろしくお願いします m(_ _)m
0084デフォルトの名無しさんNGNG
動くかどうかや不正確な情報を書く人の気が知れないなぁ
0085デフォルトの名無しさんNGNG
>>81
いやーそれはしない。
ソースを書き込まないってのはここの流儀が俺には気に食わないからって理由。
ここに書き込まない理由は一切無い。

そういう指図する権利があるのが是なら、俺も君にこのスレに書き込むな要求をしよう。
0086デフォルトの名無しさんNGNG
>>84
宿題丸投げしておいて礼も言わない人にそこまでの労力を注ぐ人の気が知れないなぁ
0087デフォルトの名無しさんNGNG
誰だその問題作った香具師。曖昧な回答があるじゃないか。
0088デフォルトの名無しさんNGNG
[8]は引っかけか?
0089デフォルトの名無しさんNGNG
>>86
気が向きゃコード書くし、暇ならテストもする。労力? そんなものが要るほど高度な宿題なんかあったかね。
0090デフォルトの名無しさんNGNG
>>86
じゃあ答えるなよばーか
0091デフォルトの名無しさんNGNG
>>88
7,8は引っかけと言うより設問者が阿呆だと思われ。
0092デフォルトの名無しさんNGNG
>>89
馬鹿。テストは義務らしいぞ。暇なら〜は通用せんらしい。
0093デフォルトの名無しさんNGNG
>>92
お前、いいかげん邪魔なんだけど。
0094デフォルトの名無しさんNGNG
ってかね、>>89のスタンスでいいじゃん。
何でテストまで義務化するよ?

簡単な問題でもミスる時あるでしょ?
テストの段階ですぐミスに気付けば、それでいいじゃん。
俺のさっきのミスはあれは勘違いとかのハマリにはならない。すぐ気付くミス。

そんなんいちいち指摘するなよ。
0095デフォルトの名無しさんNGNG
>>93
邪魔?結構。
0096デフォルトの名無しさんNGNG
VisualStudioやBorlandのせいで
ソフト使ってるだけでC++を勉強してるんだと勘違いしてる椰子多すぎ
0097デフォルトの名無しさんNGNG
>>94
じゃあ答えるなよばーか
0098デフォルトの名無しさんNGNG
文字列の中に文字aが何文字あるか表示するプログラムってどう書けばいいですか?
Cの基礎を勉強中です。
0099デフォルトの名無しさんNGNG
>>94
横槍だが、自分の書いたことに責任もてない奴が何を言っても無駄
010061NGNG
>>64 >>68
さっそく解いていただきまして、ありがとうございます。
ご指摘の箇所を訂正して、コンパイルしようとしたら

error C2018: 文字 '0x81' は認識できません。
error C2018: 文字 '0x40' は認識できません。

このようなエラーが出てしまったのですが・・・
0101デフォルトの名無しさんNGNG
>>100
見えないかもしれないが、全角スペースが入ってる。
0102デフォルトの名無しさんNGNG
>>100
2バイト空白を1バイト空白に置換汁。
それから、2バイト空白が見えるエディタを使っとけ。
0103デフォルトの名無しさんNGNG
>>99
そこまでの事をする必要性に疑問を感じる。
君はここにプログラムを書くときにわざわざコンパイルまでしてるの?
書き込み欄に書いて確認しないで終了って人が殆どだと思ってた。
>>100
スペースは全角で入れてる。
コピペしても動かんぞ。
0104デフォルトの名無しさんNGNG
>>103
じゃあ答えるなよばーーーーーーーーーーーーーーーーか
010599NGNG
>>103
少なくとも君に意見している椰子はそれが常識という認識だろう
0106デフォルトの名無しさんNGNG
>>105
自分の意見に責任持つのは大事だけどさぁ、
別にここに書き込む”プログラムの方”に責任持つのは理解できんな。

というのが俺の認識だな。
ま、この話題はもう止めようや。平行線だろ。
0107デフォルトの名無しさんNGNG
>>98
#include <stdio.h>

int main(void)
{
char *s = "aaabcdeeaa", *p, cnt = 0;

for (p = s; *p;p++)
if (*p == 'a') cnt++;
printf("aは%d個\n", cnt);
return 0;
}
0108デフォルトの名無しさんNGNG
間違っていない自信があるならテストもコンパイルさえも不要だろ。
なーに、間違ったところでどうせ誰かの突っ込みが入るさ。
0109デフォルトの名無しさんNGNG
>>106
お前が消えれば終わるんだよ
0110デフォルトの名無しさんNGNG
>>109
俺は君が消えたらこの話題を続ける必要は無くなる。
なので、君が消えれば終わるんだよ。
0111デフォルトの名無しさんNGNG
>>108
上の香具師はそういうスタンスとは明らかに違うがな
0112デフォルトの名無しさんNGNG
ガミガミ言い合ってるだけのつまらん自演だな。
0113デフォルトの名無しさんNGNG
>>107
意図的にそう書いているなら未だいいが、普段からそんな書き方しているなら仕事では通用しないな。
0114デフォルトの名無しさんNGNG
すげえ。久々にイカれた奴をみたwwww
0115デフォルトの名無しさんNGNG
大原2号?



いや本人か!?
0116デフォルトの名無しさんNGNG
>>113
いえ、意図的ではなく、まじめに書いたつもりです。
プログラムで飯を食うつもりはありませんが、後学のために
どこがいけないのか教えてもらいたいです。
0117デフォルトの名無しさんNGNG
>>113
君が仕事で通用していないということが良く分かった
0118デフォルトの名無しさんNGNG
>>116
横槍だが、何文字数えられますか?とか、関数化したほうが、とか。
0119デフォルトの名無しさんNGNG
>>107
ありがとうございます!!
0120デフォルトの名無しさんNGNG
追記で、数えられる数以内になかったら・・・
0121デフォルトの名無しさんNGNG
>>118
はぁ?
0122デフォルトの名無しさんNGNG
>>121
君が仕事で通用していないということが良く分かった
0123116NGNG
何文字数えられますか?とはなんでしょう。
あと、例を示すのにこのくらいのものなら関数化は必要ないと思いました。
0124デフォルトの名無しさんNGNG
ばかなやつが、自演やら適当なレスを繰り返してるんだろ・・・
0125デフォルトの名無しさんNGNG
cntがcharってのがまずおかしい。
0126デフォルトの名無しさんNGNG
>>125
それは仕様です。
0127116NGNG
>>125
ああ本当ですね(汗)素でミスりました。
0128デフォルトの名無しさんNGNG
ポインタを使わないで、配列だけで書く方法はないですか?

>文字列の中に文字aが何文字あるか表示するプログラムってどう書けばいいですか?
0129デフォルトの名無しさんNGNG
――【注意点】――――――――――――――――――――――
・使用する言語(C/C++)や環境(CUI/GUIなど)は必ず書きましょう。
・問題文は、ちゃんと解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式自体をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その行とエラーの詳細を書きましょう。
 エラーメッセージが出た場合はそのままコピーしてください。
・後になって問題につけたしをするのはやめましょう。
 解いてもらっている方に失礼になってしまいます。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0130デフォルトの名無しさんNGNG
すいません、失礼しましたm()m
0131デフォルトの名無しさんNGNG
#include <stdio.h>

int main(void)
{
char *s = "aaabcdeeaa";
int cnt = 0, i;

for (i = 0; s[i]; i++)
if (s[i] == 'a') cnt++;
printf("aは%d個\n", cnt);
return 0;
}
0132113NGNG
>>107
一応マジレス。
・cntをchar型にする積極的理由がない。
・変数は1行に一つ(或いは意味的関連性がある数個)程度にしたほうが保守性が上がる。
・1行に書かない制御構造は修正時のミスを避けるためにブロック化するべき。
・1行に纏めたい積極的理由がないなら制御構造ではブロック化したほうが無難。
・明らかな使い捨て処理であっても関数化しておく癖をつけるとコードの再利用がしやすくなる。
・文字終端の検出は、できればナルキャラのと比較という形にしたほうが意図が伝わりやすい。

要は、ダメプログラマーが読めるように、という按配。
0133デフォルトの名無しさんNGNG
>>130
せめて「すいません」ではなく、「すみません」と書くように。
0134107NGNG
>>132
なるほど参考になります。しかしこのスレの性質上多少の手抜きは
容認してもらいたい気もします。
0135デフォルトの名無しさんNGNG
>>131
本当にありがとうございます。

>>133
「すいません」が間違った日本語とでも?
0136デフォルトの名無しさんNGNG
小さい処理をいちいち関数化して示す必要は別にないだろ。
関数やってないんで、使わないでくれって初心者多いし。
あとスタイルの問題についてとやかく言うのはどうかと。
0137デフォルトの名無しさんNGNG
ダメコードで教わり育った人はダメコードを書く。
0138デフォルトの名無しさんNGNG
なんかさっきから無駄に煽ってるやつがいるな。
0139デフォルトの名無しさんNGNG
すみません 【済みません】
相手に謝るとき、礼を言うとき、依頼をするときなどに言う語。しばしば感動詞的に用いられる。
すいません。
三省堂提供「大辞林 第二版」より
0140デフォルトの名無しさんNGNG
>>132
ここ宿題スレだぞ?
014161NGNG
たびたびすみません。
おかげさまでようやくコンパイルできたんですが
プログラム実行してみても、動かないというか・・・
私自身使い方よくわかってないのだと思います・・・
よろしければ教えていただけないでしょうか?
0142デフォルトの名無しさんNGNG
char s[] = "aaabcdeeaa";
int i,cnt[256]={0};
for(i=0; i<sizeof(s)/sizeof(s[0]); ++i) ++cnt[s[i]];
printf("aは%d個\n", cnt['a']);
0143デフォルトの名無しさんNGNG
関数に、というのは時と場合だろうけど、>137は頷ける
0144デフォルトの名無しさんNGNG
>>141
あぁ、アークタンジェントの関数に、t-ってのを忘れてたわ。
すまん。l
0145132=113NGNG
>>140
仕事で2ch語でメールなんぞ書いたらとんでもないことは判るよね?
仲間内なら2ch語でメール書いてもそれは一向に構わないのだけれど
不特定多数へのメールなら一応2ch語は避けようと思わない?

私はプログラミングも同じだと思う。つまり、普段から崩れた書き方してると
それが染み付いてしまいきちんとした書き方ができなくなりますよ、と。

>>134
容認も何も、私が書いたことには一切拘束力はない。
判断し、行動するのはあなた。char cntの件がなければ>132も書かなかっただろうしね。
0146デフォルトの名無しさんNGNG
145 名前: 132=113 [sage] 投稿日: 04/11/30 00:18:19
>>140
仕事で2ch語でメールなんぞ書いたらとんでもないことは判るよね?
仲間内なら2ch語でメール書いてもそれは一向に構わないのだけれど
不特定多数へのメールなら一応2ch語は避けようと思わない?

私はプログラミングも同じだと思う。つまり、普段から崩れた書き方してると
それが染み付いてしまいきちんとした書き方ができなくなりますよ、と。


( ;´Д`)
0147デフォルトの名無しさんNGNG
ウザ
0148デフォルトの名無しさんNGNG
会社にて、後輩or同僚、時には先輩で苦労した人じゃないと共感はされまいて。
0149デフォルトの名無しさんNGNG
>>145
飯食っていく気ないんなら自分が読めればそれでいいじゃん
0150デフォルトの名無しさんNGNG

  <⌒/ヽ-、___  たまたま機会があったから書いただけじゃないか。
/<_/____/ いいよもう、寝るから。
0151デフォルトの名無しさんNGNG
758 :仕様書無しさん :04/11/29 18:35:48
この上司の台詞に俺はキレた・・・
「ドラクエ8のラスボスは主人公の兄イリアス」



759 :仕様書無しさん :04/11/29 18:54:19
>>758
うそだと言ってくれ・・・orz


761 :仕様書無しさん :04/11/29 19:14:45
>>758
おれはおまえにキレそうだ。
0152デフォルトの名無しさんNGNG
なんでお説教が始まってんだ?
ドキュソのプログラム作ってやるのに
ブロック化だの、関数化だの
会社だの仕事だの・・・・
0153デフォルトの名無しさんNGNG
駄目コードを作る人間に育つ人が増える事が辛いんだろう
0154デフォルトの名無しさんNGNG
助けてもらいたいのですが、
VC++6.0でダイアログベースで作成してます。
Monthcalendarの週番号は取得できないのですか?
MSDNを見たんだけど、ShowWeekNumberっていうのを
どのように使ったらいいかわかんないんです。
詳しく、お願いします。
誰か親切な方お願いします。
0155デフォルトの名無しさんNGNG
>>154
まずは仕様書を書いてください。
そんなことではじっさいの開発では通用しませんよ。
0156デフォルトの名無しさんNGNG
>>155
はっはっはっはっはっは
じっさいの開発にかかわった事ないな?仕様書が最初にあるわけないだろう
わっはっはっはっはっは
0157デフォルトの名無しさんNGNG
ttp://f1.aaa.livedoor.jp/~pointc/index11.html
今度からテンプレに入れておいてくれ
0158デフォルトの名無しさんNGNG
>>156
泣くな。
0159デフォルトの名無しさんNGNG
仕様書ですか?
月間予定表のプロパティで週番号の表示はできますよね。
ある日付を選択したら、その週番号をエディットボックスに
表示したいんですけど・・・
それでもわかりにくいですか・・・
誰かお願いします。
0160デフォルトの名無しさんNGNG
カーニハンは典型的な駄目プログラマだったってことでOK?
0161デフォルトの名無しさんNGNG
だめプログラマでもいいので教えてください

0162デフォルトの名無しさんNGNG
たしかあのへんにあったんだが
0163デフォルトの名無しさんNGNG
どの変ですか?
本当にお願いします。
0164デフォルトの名無しさんNGNG
LRESULT CALLBACK FooDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case WM_INITDIALOG:{
HWND hwndMonthCalender;
RECT rcMonthCal;
// 新しいコントロールを使用するための宣言
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(icex);
// カレンダーコントロールを使用する
icex.dwICC = ICC_DATE_CLASSES;
InitCommonControlsEx(&icex);
// カレンダーコントロールの作成
// ここで指定したウィンドウサイズは意味がない
hwndMonthCalender = CreateWindowEx( WS_EX_CLIENTEDGE, MONTHCAL_CLASS, "",
WS_VISIBLE | WS_CHILD | WS_BORDER | MCS_DAYSTATE ,
5, 5, 150, 150, hDlg, NULL, g_hInstance, NULL);
// カレンダーコントロールの大きさを取得
MonthCal_GetMinReqRect( hwndMonthCalender, &rcMonthCal);
// 大きさを設定
SetWindowPos( hwndMonthCalender, NULL, 0, 0,
10+rcMonthCal.right-rcMonthCal.left,
10+rcMonthCal.bottom-rcMonthCal.top, SWP_NOMOVE );
return TRUE;
}break;
}
return FALSE;
}
0165デフォルトの名無しさんNGNG
BOOL CFooDialog::OnInitDialog()
{
CDialog::OnInitDialog();
:
:
// 新しいコントロールを使用するための宣言
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(icex);
// カレンダーコントロールを使用する
icex.dwICC = ICC_DATE_CLASSES;
InitCommonControlsEx(&icex);
// m_wndMonthCalenderはCWnd型のオブジェクト
// カレンダーコントロールの作成
// ここで指定したウィンドウサイズは意味がない
m_wndMonthCalender.CreateEx( WS_EX_CLIENTEDGE, MONTHCAL_CLASS, "",
WS_VISIBLE | WS_CHILD | WS_BORDER | MCS_DAYSTATE ,
5, 5, 150, 150, m_hWnd, NULL);
// カレンダーコントロールの大きさを取得
CRect rcMonthCal;
MonthCal_GetMinReqRect(m_wndMonthCalender.m_hWnd, &rcMonthCal);
// 大きさを設定
m_wndMonthCalender.SetWindowPos( NULL, 0, 0,
10+rcMonthCal.Width(), 10+rcMonthCal.Height(), SWP_NOMOVE );
return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。
}
0166デフォルトの名無しさんNGNG
これはカレンダーを表示ですよね?
週番号の取得は・・・
0167デフォルトの名無しさんNGNG
計算したら?
0168デフォルトの名無しさんNGNG
もう人の宿題やるのは辞めよう…
0169デフォルトの名無しさんNGNG
それを聞きたいのですよ。
0170デフォルトの名無しさんNGNG
週番号って、何週目ってやつ?
ツェラーの公式でその年の1/1の曜日がわかるんだから、
うるう年の計算忘れずに知りたい日の1/1からの日数調べて割れば?
0171デフォルトの名無しさんNGNG
その何週目ってやつです。
月間予定表コントロールで週番号を表示できるので
その週番号を取得できないですかって聞いてるんです。
0172デフォルトの名無しさんNGNG
strftimeはVCに無いの?
0173デフォルトの名無しさんNGNG
ありますけど、うるう年ときがおかしくなってしまう。
0174デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1101761829
学校で出た課題です。
txtファイルを読み込んだり、arrayがいっぱいあったりで少し混乱してます。
txtファイルが読み込めなくてかれこれ3時間ほど苦悩しえます。

テキストファイルを読み込むには
ifstream inFile;
inFile.open("txt")
でいいんですよね?
ファイルがうまくよみこめません。
txtファイルはプログラムがセーブしてある同じフォルダ内においてあります。
テキストファイルが読み込めないことには何もできないです。
どうか助けてください。
0175デフォルトの名無しさんNGNG
ifstream fin("txt")
0176デフォルトの名無しさんNGNG
意味同じか…
ファイルないんじゃないの
0177デフォルトの名無しさんNGNG
C++かと思えばC++もどきか…

openだけすればファイル読み込み完了してるんだと勘違いしてる悪寒
0178デフォルトの名無しさんNGNG
>>174
ファイルの内容が、リンク先の>>2でいいのなら・・・

char Item_id[date];
int Sale_Date[date];
int Customer_id[date];
char Payment_Type[date];
    ↓
string Item_id[date];
string Sale_Date[date];
int Customer_id[date];
string Payment_Type[date];

あと、ソースの一番上に「#include<string>」を書く。

・charは1文字しか入らないので、stringにする。
 char Item_id[date]・・・では、「一文字」の配列になってしまうので望んだとおりにならない。
・日付はいきなりintにならんので、stringに読み込んでおく。
で、どうだろう。
0179デフォルトの名無しさんNGNG
あと、voidなのにreturnはまずくないか?
DevC++ではOKなのか?
0180デフォルトの名無しさんNGNG
>>179
OK death
File wo hiraku koto ha dekimashita
(full path ga hituyou datta)
0181提出まで後7日NGNG
>175-179の方々
色々ご指摘ありがとうございます。
試行錯誤の結果txtファイルのフルパスを入れてみたら読み込めました。
こんな感じです。
これ見つけるまでにとても時間がかかった(一日つぶしちゃいました
//Open file
ifstream data("C:\\Documents and Settings\\My Documents\\PROJECT\\Sales.txt");
前にVC++で作ったプログラムは動いたので行けるかなと思ってたらダメでした。
そして今度こそファイルを表示できるべとおもってたら・・・
なぜじゃー
という具合です。
0182提出まで後7日 DevC++4.0NGNG
連続で質問、大変もうしわけありませんがお許しください。
txtファイルのほうはこうなっているのですが
Sale_ID Item_id, Sale_Date, Customer_id, Payment_Type
2004090001, p1, 09/01/2004, 0000, Credit
2004102002, p2, 10/01/2004, 0001, Cash
2004100003, p1, 10/01/2004, 0001, Cash
2004090004, p3, 09/01/2004, 0000, Credit
  ・    
  ・
2004110020, p1, 11/20/2004, 0012, Credit

まず日付を認識し、同じ日に購入したお客さんの支払い方法(cash or credit)
で分けるようにしたいのです。
スクリーンOUTPUTの例です。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1101761829&res=2&fi=no

Sales.txtは他のファンクションでも使うのでstructをつかってみようと思います。
(classにするかもです)。
そしてinheritanceも他のファンクションに使ってみようと思ってます
(そんなことじぶんにできるのか疑問ですが)。

今日はこれから出かけなければいけないのでこれ以上書き込みできませんが、
これから一週間このスレに粘着させていただきます。
(大変ご迷惑だと思います、本当にすみません。相談できる友達いないんです)。
なにとぞよろしくご指導のほどをお願い致したい次第でございます。
0183≠179NGNG
>>182

・>179の補足。
戻り値なし(void)の関数から値を戻しては(値つきのreturn)いけない。

・各処理関数からReportMenu()を呼び出しているが、それだといずれスタックオーバフローで落ちる。
ReportMenu()内でループするようにし、各処理関数は単純に戻るだけにしたほうがいい。

・エラー時に関数から抜けてないので正常処理に突入してしまっている。

つーか、課題に見合うだけの基礎知識がない気がするが。

0184デフォルトの名無しさんNGNG
文字列"hoge00123.txt"があって、ここから拡張子の前の数値の部分(123)だけ
取り出すにはどうしたらいいですか?
Cでおながいします。
0185デフォルトの名無しさんNGNG
>>184
それが人にものを頼む態度か?失せろ
0186デフォルトの名無しさんNGNG
>>184
取り敢えず、こんなもんでどうだろう。

int getFileValue(const char * buf)
{
int value;
if (sscanf(buf, "%*[^0-9]%d", &value) < 1) {
return 0; /* or -1 &c. */
}
return value;
}
0187デフォルトの名無しさんNGNG
先を越された……。しかもそっちの方がスマートだ。OTL
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
int Hoge(const char *pText) {
  const char *p;
  if (pText == NULL || *pText == '\0')
    return 0;
  p = strrchr(p, '.');
  if (!p)
    p = pText + strlen(pText);
  while (pText != p--) {
    if (!isdigit(*p)) {
      p++;
      break;
    }
  }
  return atoi(p);
}
0188デフォルトの名無しさんNGNG
[1] 授業単元: プログラミング言語 基礎
[2] 問題文:
20個までの適当な個数の正の整数を入力し、その中から3番目に大きな数値とそれが何番目に入力されたかを出力するプログラム。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ(バージョン):MinGW 2.0.0
 [3.3] 言語:C/
[4] 期限:2004年12月27日

よろしくお願いします。
0189デフォルトの名無しさんNGNG
>>182
添付テキストデータ
途中コンマ抜けたりしてるんだけど、これって自分で作ったの?
0190提出まで後7日 DevC++4.0NGNG
>>183
なるほど。
MenuReport()に戻りたいなあと思いreturn MenuReport()を
入れたら通ってしまったのでそのまま気にしないでいました。
MenuReport()内でループできるよう変更して見ます。
>>189
いえ、渡されたものです。
テキストデータのエラーを指摘したところそれを直すのも課題のうちだといわれましたので
一部自分で手を加えています。
自分が使うデータファイルは今のところSales.txtとCustomer.txtです。
もう一度ファイルの中を確認してみます。

現在はデータを読み込むことはできたのですが表示できないのでそれと格闘中です。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1101761829&res=9
大幅な書き換えが必要なので再び書けるところまで書いてからまた質問させて
いただこうと思ってます。
0191デフォルトの名無しさんNGNG
座標系変換に手を焼き課題が解けないので、知恵を拝借したく参りました。
宜しくお願いします。

ラウンジをお借りしました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1101811955
0192デフォルトの名無しさんNGNG
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
キーボードから入力をチェックする。
入力が0〜100であれば「OK」と表示し、
それ以外であれば「NG」と表示する。
OKの例…0,16,100
NGの例…-3, 2d, # , スペースを含む入力,Enterのみの入力
[3] 環境
 [3.1] OS:Windows me
 [3.2] コンパイラ(バージョン):Visual C++(R)6.0
 [3.3] 言語:C言語
[4] 期限:早急に!
[5] その他の制限:特になし
0193デフォルトの名無しさんNGNG
>>190
無限ループ…
breakを入れよう
0194デフォルトの名無しさんNGNG
>>192
君が悪いわけじゃないけれど、そのテンプレートは見にくいなぁ。
0195デフォルトの名無しさんNGNG
>>192

#include <stdio.h>

int main()
{
scanfとかで入力を受け取る
if(0から100)
OKと出力
else
NGと出力

return 0;
}

019661NGNG
>>144
遅くなってすみません。
t-は、具体的にどこの部分に入れたらいいのでしょうか?
何ヶ所かにt-を入れてみたのですが、うまくいかないもので。。。
0197デフォルトの名無しさんNGNG
>>196
宿題の期限いつまでなの?
とりあえず今日俺もう酔っ払ってるから、コード書きたくないのね。

明日か明後日辺りにちゃんと動く奴作っておくよ。
019861NGNG
>>197
金曜の朝までです。
作っていただけるなら本当にありがたいです。
お忙しいと思いますが、どうぞよろしくお願いします。
0199デフォルトの名無しさんNGNG
>>198
あそ。ならそれまでに作っておくわ。
020061NGNG
>>199
すみません、どうもありがとうございます!
0201184NGNG
>>186-187
ありがとうございます!
助かりました。
0202某NGNG
ttp://www.iis.u-tokyo.ac.jp/~susaki/c/func2.html
ここの問題なんですが・・・・
全部分かりません(x_x)
どなたかよろしくお願いしますm(_ _)m
丸投げ状態ですが、ちゃんとパソコンの前に座って勉強してます
0203デフォルトの名無しさんNGNG
>>202
辞めてしまえ。
0204デフォルトの名無しさんNGNG
scanf使うなボケ
0205≠197NGNG
>>61
#include <stdio.h>
#include <math.h>

double arctan(double t, double n)
{
double p = 0.0, x = t, i;
for(i = 0.0; i < n; i += 1.0) {
p += (x / (2.0 * i + 1.0));
x = - x * t * t;
}
return p;
}

int main(void)
{
double n = 15.0; /* 求める桁数 */
double p;

p = arctan(0.5, (unsigned int)(n * 1.661));
p += arctan(0.2, (unsigned int)(n * 0.71534));
p += arctan(0.125, (unsigned int )(n * 0.5537));
printf("pi = %.*1f\n", (unsigned int)n, p * 4.0);
return 0;
}

色々端折った。
0206某NGNG
どうかお願いしますm(_ _)m
0207デフォルトの名無しさんNGNG
>>206
いやです
0208デフォルトの名無しさんNGNG
>>206
では聞くが、課題1はやったのか?
0209某NGNG
遅れましたm(_ _)m
実行はしたのですが、「正の整数を5つ入れてください」
しか表示されません

実行例通りにはならないんです
どうしてか分かります??
0210デフォルトの名無しさんNGNG
>>209
判ります。("分"ではなくて"判"だよ。)
貴方が書いたコードに誤りがあるからです。
0211某NGNG
>>210質問者側なのに偉そうな事を言いますが
答えてくれる気がないなら書かないでくれますか??
口先だけの貴方には何も期待してませんから

他の方どうかよろしくお願いしますm(_ _)m
0212デフォルトの名無しさんNGNG
>>211
答えていますが、何か答えに問題がありましたか?
0213某NGNG
>>210詳しくお願いしますm(_ _)m
>>211情けないですよ(x_x) 人の文章使わないで下さい
0214某NGNG
>>212さん
211は私じゃないですm(_ _)m
多分、どっかのアホです
さっきからちょっかい出して来るんですよ(x_x)
0215デフォルトの名無しさんNGNG
>>213
第6引数に&maxを付けましょう。
0216デフォルトの名無しさんNGNG
>>215
マルチ野郎にも親切なんですね。
0217デフォルトの名無しさんNGNG
>>216
大原ゆきですから。
0218某NGNG
>>216
僕のような将来日本をしょって立つ東大生に親切にしておくと損はないですよ。
いずれじゅうぶんな見返りを社会に対して返せますからね。
0219某NGNG
>>215
感謝しますm(_ _)m

>>216
マルチ行為はすいませんでしたm(_ _)m 期間のせいで余裕が無いんです
それで納得してください
0220デフォルトの名無しさんNGNG
バカは死ななきゃ直らないんです。
相談できる友達もいないんですから。
0221デフォルトの名無しさんNGNG
>>219
反省の色の欠片も無いな。
氏ね。
0222デフォルトの名無しさんNGNG
>>219
> 期間のせいで余裕が無いんです
> それで納得してください
その理由は一般社会には通りませんよ。
0223デフォルトの名無しさんNGNG
キーボードから数個のstringを読み込んで、
fwrite()を使用することによってファイルにstringを書くプログラムを作れ。
次にfread()を使ってファイルを開き、列変数からファイルからのストリングを読み取れ。
そして画面にstringを表示せよ

全く意味がわかんないんです・・・
お願いします。
0224某NGNG
>>220口だけなら何でも言えますよ
友達に相談する手も考えましたが
2chの方達の方が詳しく教えて頂けるかと思いここに書きましたm(_ _)m
しかしドコにでも貴方のように中傷するしか脳が無い方はいるんですね
0225デフォルトの名無しさんNGNG
>某

正の整数を5ついれてみろ。

33_44_11_55_2 (リターン)
みたいな感じで
0226某NGNG
>>225協力感謝しますm(_ _)m
0227某NGNG
>>219
遅れましたm(_ _)m
まだ学生の身分なので「一般社会」を語ることなんて到底無理ですが
私はネットと一般社会が同じようなモノだとは思ってません
0228デフォルトの名無しさんNGNG
>>227
一般社会とは一般的な社会のことです。
ネット社会が一般的であれば一般社会と言えるでしょう。
0229デフォルトの名無しさんNGNG
Cの標準関数のみを使ってg[x][y]のint型の配列をグラフ化しなさい。

7|
6|
5|
4|
3|
2|
1|_____________________________________
0 1 2 3 4 5 6 7 8 9 10 11 12
このような形式のグラフを作りたいのです。

宜しくお願いします。
0230デフォルトの名無しさんNGNG
>>229
問題の意味がよく分からない。
g[x][y] の値はどこにどのように表示されるの?
0231ぼるじょあ ◆yBEncckFOU NGNG
>>229
(・3・)エェー よく分からないYO!
0232デフォルトの名無しさんNGNG
キーボードから数個のstringを読み込んで、
fwrite()を使用することによってファイルにstringを書くプログラムを作れ。
次にfread()を使ってファイルを開き、列変数からファイルからのstringを読み取れ。
そして画面にstringを表示するプログラムを作製せよ。

提出明日でむっちゃ困ってます・・・
お願いしますm(__)m
0233デフォルトの名無しさんNGNG
無意味にstringなんて単語使ってるから混乱するんだよな
この場合は string = 文字列 に置き換えて読めば問題の意図はわかるだろ
0234デフォルトの名無しさんNGNG
おっと、
>キーボードから数個の string を読み込んで
とあるから string = 文字 か?
でも、以降の string は文字列と解釈して欲しいんだろうけど…
0235デフォルトの名無しさんNGNG
列変数って何だ?
作成じゃなくて作製か?
stringもそうだが、課題を出される方もDQNなら出す方もDQNだな。
0236デフォルトの名無しさんNGNG
>>192

#include <stdio.h>

int main(void)
{
char str[BUFSIZ];
int num;

if(fgets(str, sizeof(str), stdin) != NULL &&
sscanf(str, "%d", &num) == 1 &&
num >= 0 && num <= 100)
puts("OK");
else
puts("NG");

return 0;
}
0237233NGNG
煽るつもりじゃなかったんだが…
>>232まぁとりあえず書いた。環境は知らんから cc で確認

#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 256

int main( int argc, char *argv[] ){
FILE *fp = NULL;
char buf[ BUFFER_SIZE ] = { '\0' };

if( ( fp = tmpfile() ) == NULL ){
printf( "file was not created.\n" );
return EXIT_FAILURE;
}

printf( "input strings[EOF:stop]\n" );
while( scanf( "%s", buf ) != EOF )
fwrite( buf, sizeof( char ), BUFFER_SIZE, fp );

fseek( fp, 0, SEEK_SET );
printf( "\ninputed string are...\n" );
for( ;; ){
fread( buf, sizeof( char ), BUFFER_SIZE, fp );
if( feof( fp ) )
break;
printf( "%s\n", buf );
}
fclose( fp );
return EXIT_SUCCESS;
}
0238デフォルトの名無しさんNGNG
>>237
煽る積もりも何も、そんなコードじゃ話にならない。
突っ込みどころが多すぎるので突っ込みは割愛。
0239デフォルトの名無しさんNGNG
fflush( fp );
が必要ってこと?

でも多すぎる、なんて言ってるからもっとあるんだろうけど、
割愛されちゃ、ハタから見たらガキが文句言ってるだけにしか見えないよ?

それとも固定サイズの配列でscanf使ってることに文句言いたいとか?
とりあえず突っ込みキボン
0240デフォルトの名無しさんNGNG
>>238




.
0241デフォルトの名無しさんNGNG
>>239
それじゃさわりだけ。

・括弧の内側空けるな。
・必要のない初期化をするな。
・エラーは標準出力ではなくエラー出力に出力しろ。
・scanf()を使うなら最低限バッファサイズで制限しろ。
・sizeof(char)は常に1だ。無意味だから1にしておけ。
・fwrite()で不定値が入った情報はできれば書くな。
・fread()で全て読めることを期待するな。
・読めた情報がナルターミネートされていることを当てにするな。
・課題なのだから出力されたファイルを見られるようにしておけ。
・そもそも課題に書かれていることを無視するな。
0242デフォルトの名無しさんNGNG
・括弧の内側空けるな。
好みでは? それとも環境依存?
・sizeof(char)は常に1だ。無意味だから1にしておけ。
課題だからこそ、1が何を意味しているのか知るべき

・必要のない初期化をするな。
VCで変数初期化しないと挙動が変になった経験上

・エラーは標準出力ではなくエラー出力に出力しろ。
ferror( "tmpfile" ); は反応なかった(有無は知らない)

・課題なのだから出力されたファイルを見られるようにしておけ。
問題からはそのような文意は読み取れませんが?
・そもそも課題に書かれていることを無視するな。
どのことでしょう?
文字列を fwrite で書き込み, それを fread で読み取るが問題のメインじゃ?

・fwrite()で不定値が入った情報はできれば書くな。
できればって…

・scanf()を使うなら最低限バッファサイズで制限しろ。
・fread()で全て読めることを期待するな。
・読めた情報がナルターミネートされていることを当てにするな。
これこそ課題に求められてるものなの?

つーか>>241は
http://pc5.2ch.net/test/read.cgi/tech/1101615970/413-
の>>417じゃない?
0243デフォルトの名無しさんNGNG
どっちもキチガイなことに気付け
0244デフォルトの名無しさんNGNG
あはは、おもしろいねここ
0245デフォルトの名無しさんNGNG
釣られちゃってごめんなちゃい(´・ω・`)
0246デフォルトの名無しさんNGNG
課題を読む限りプログラムは2本作らないといけないような。
0247デフォルトの名無しさんNGNG
西暦、月、日を入力してその日から1週間分の西暦、月、日を出力せよ。
その月が何日まであるか、閏年等も考慮すること。


よろしくお願いします
0248デフォルトの名無しさんNGNG
閏年等って何?
ユリウス歴とか?
0249デフォルトの名無しさんNGNG
>>242
ferrorじゃなくてfprintf(stderrとかfputs("hoge", stderr);とかだよ。
0250デフォルトの名無しさんNGNG
>>247
1752年や、それ以前の扱いは?
0251デフォルトの名無しさんNGNG
双方向リストに対して、次の3つのソート方法を用いた辞書順ソートプログラムを作れ。
1.バブルソート
2.クイックソート
3.マージソート
よろしくお願いします。
0252デフォルトの名無しさんNGNG
DQNな問題だな
0253デフォルトの名無しさんNGNG
>>247
http://up.isp.2ch.net/up/041b7dc4c9af.txt

>>1のアップローダー==ラウンジが無くなってしまっている・・。
0254デフォルトの名無しさんNGNG
誰か居ませんでしょうか?
0255デフォルトの名無しさんNGNG
>>253

ありがとうございました。
中身を理解できるように頑張ります
0256デフォルトの名無しさんNGNG
リストにか...
0257デフォルトの名無しさんNGNG
一般社会にでて無理難題を押し付けられても
口答えせずにちゃんと解決する訓練なんだよ。
0258デフォルトの名無しさんNGNG
インデクサはさめばいいんじゃないか
0259デフォルトの名無しさんNGNG
C言語で、キーボードから入力した文字列を字句解析して、結果を表示してくれるプログラムを
作りたいのですが判りません。初心者ですが、教えてください。お願いします。

例えばa+1と入力すると

IDENT:a
OP :+
NUM :1.0

3a*5と入力すると

ERR :3a
OP :*
NUM :5.0

ab 1.2 *と入力すると空白を無視して

IDENT:ab
NUM :1.2
OP :*

のように表示してくれるものを作りたいのです。よろしくお願いします。
0260デフォルトの名無しさんNGNG
パーサは一文字呼んで状態変化の繰り返しで簡単なものはどうにでもなる。
もう少し頑張ってみろや
0261デフォルトの名無しさんNGNG
parserじゃなくてlexerじゃないの?
0262デフォルトの名無しさんNGNG
キーボードから数個のstringを読み込んで、
fwrite()を使用することによってファイルにstringを書くプログラムを作れ。
次にfread()を使ってファイルを開き、列変数からファイルからのstringを読み取れ。
そして画面にstringを表示するプログラムを作製せよ。

sizeofとかfopenとか使うみたいです。
文字列を入力してファイルを読んで文字列を表示するんだそうです。

お願いします・・・
0263デフォルトの名無しさんNGNG
高速フーリエ変換について調べないと行けないんですけど
解説ページみてたら分からなくなりました。
以下解説文から抜粋----------------


 まず,長さ N の DFT

    N-1    jk         -2πi / N
A = Σ a W , W = e  
 k   j=0  j  N    N      


を素直に計算する場合を考えます.この場合 A_0 から
A_N-1 までの各項の 計算に N 回の乗算が必要なため,全体で
N^2 回の乗算が必要になります. しかし,少し考えてみてください.
もし,N が 2 で割り切れるならば, 添字 k を偶数と奇数とに分ける
ことで,長さ N の DFT は,次の二つの, 長さ N/2 の DFT

    N/2-1               jk
A = Σ  (a + a )     W
 2k   j=0     j   N/2+j       N/2


    N/2-1           j   jk
A = Σ ((a − a ) W ) W
 2k+1   j=0     j   N/2+j   N   N/2
0264デフォルトの名無しさんNGNG
>>262
>列変数からファイルからのstringを読み取れ
???
0265デフォルトの名無しさんNGNG

に分解できることがわかると思います.さらに,この分解を
2 回, 3 回,... と繰り返せば, 計算量は約 1/4, 1/8,... と激減します.


以上抜粋----------------
この解説ページみたいにやっていくと
最期はW_N/Nになって乗数のところは2πijkになってWの項はつねに
1になる状態になってkごとの変化がなくなるきがするんですが、どこか
勘違いしてるんでしょうか?教えて下さい。。。
0266デフォルトの名無しさんNGNG

に分解できることがわかると思います.さらに,この分解を
2 回, 3 回,... と繰り返せば, 計算量は約 1/4, 1/8,... と激減します.


以上抜粋----------------
この解説ページみたいにやっていくと
最期はW_N/Nになって乗数のところは2πijkになってWの項はつねに
1になる状態になってkごとの変化がなくなるきがするんですが、どこか
勘違いしてるんでしょうか?教えて下さい。。。
0267デフォルトの名無しさんNGNG
>>263
割り込んでごめんなさい
0268デフォルトの名無しさんNGNG
すいません。二重に書き込んでしまいました。263と265で続いてます。
宜しくお願いします。。。
0269デフォルトの名無しさんNGNG
�@二つのN*M行列X、Yを与え、行列の和WA=X+Yを求めるプログラムを作成しなさい。
�A�@のプログラムの行列の和を求める部分を関数mplus()にしなさい。
N、M、行列の要素はキーボード入力させる事

という課題です、よろしくお願いします
0270デフォルトの名無しさんNGNG
>>263
http://science3.2ch.net/test/read.cgi/math/1065894741/
0271デフォルトの名無しさんNGNG
>>270
?わかんないです。何か関係あるんですか?
0272デフォルトの名無しさんNGNG
>>269
http://www.ecs.shimane-u.ac.jp/~kyoshida/c6(2002).pdf
ここの101ページ嫁
0273デフォルトの名無しさんNGNG
すいません。ご迷惑おかけしますが教えてください。

学校でこのような宿題が出てわからず困っています。
使用するアプリケーションはvisual stdio.net。
C言語を用いて作成する。

問題文↓
2つの自然数を入力してその間にある素数を表示する.
入力は整数2つ.
2つの整数が正であること(エラー処理).
大小関係が逆でも対応できるようにする.
処理:prime関数を用いる.
引数:整数
戻り値:素数の場合が1、それ以外0.
出力:素数の値 下4桁と下4桁+100.

#include <stdio.h>←学校ではこれしか習っていない.

void prime(int)

main()
{
int a,b;
printf("input number:" );
scanf(%d%d,&a,&b);
if(a<=0||b<=0){ printf("error.");}
}
この先からどうすればいいのか全くわかりません。
0274デフォルトの名無しさんNGNG
おいおい、クリスマスも近いってのにstdio.hしか習ってないってどういう事だ?
0275デフォルトの名無しさんNGNG
初心者なんですがお願いします。MATLABで画像のラベリングをやってるんですがプログラムの仕方が全くわかりません。C/C++でいいんでプログラム例を教えてください。
0276デフォルトの名無しさんNGNG
>処理:prime関数を用いる.
prime関数はもうあるのかえ?
0277273NGNG
>>274
すいません・・・

>>276
まだないです・・・。
全て1から作れとのことです。
下のCは僕が自分なりに考えて作ってみたものです・・・
って言いますか、全然できてないけど。
0278269 ◆AnalSexRiQ NGNG
>272
ありがとうございます、助かりました
0279デフォルトの名無しさんNGNG
>>273
「出力:〜」の意味がよく分からなかったから適当に素数を出力するだけ。
参考にしてちょうだい。
#include <stdio.h>
#include <stdlib.h>
int prime(int n){
  int i, notprime, ret, *is_prime = (int*)malloc(sizeof(int) * (n + 1));
  for (i = 2; i <= n; i++) is_prime[i] = 1;
  for (i = 2; i <= n; i++) {
    notprime = i;
    while ((notprime += i) <= n) is_prime[notprime] = 0;
  }
  ret = is_prime[n];
  free(is_prime);
  return ret;
}
int main(){
  int a, b, lower_bound, upper_bound, i;
  printf("input number:");
  scanf("%d %d", &a, &b);
  if (a <= 0 || b <= 0)
    printf("error.");
  else {
    lower_bound = a < b ? a : b;
    upper_bound = a < b ? b : a;
    for (i = lower_bound; i <= upper_bound; i++)
      if (prime(i)) printf("%4d ", i);
  }
}
0280デフォルトの名無しさんNGNG
>出力:素数の値 下4桁と下4桁+100.

なんか深い意味があるような無いような
0281273NGNG
>>279
ありがとうございます。
このCを土台にがんばってみます。
僕の学校じゃ#include <stdlib>とか習っていない
のでそこらへんはどうにかしてみます。
ありがとうございました。ご迷惑おかけしました。

>>280
すいません、それは僕のミスです。
出力は素数の値だけでいいそうです。
混乱させてすいません。
0282279NGNG
ちょっと気になった。差し替え。
#include <stdlib.h>
int prime(int n){
  int i, notprime, ret, *is_prime = (int*)malloc(sizeof(int) * (n + 1));
  for (i = 2; i <= n; i++) is_prime[i] = 1;
  is_prime[0] = is_prime[1] = 0;
  for (i = 2; i <= n; i++) {
    notprime = i;
    while ((notprime += i) <= n) is_prime[notprime] = 0;
  }
  ret = is_prime[n];
  free(is_prime);
  return ret;
}
0283デフォルトの名無しさんNGNG
#include "resource.h"
これがついたときどう実行するんですか
visual6.0
0284デフォルトの名無しさんNGNG
>>283
宿題じゃないならスレ違い。
0285デフォルトの名無しさんNGNG
アップローダーが逝ってる・・・
質問です。

これがテキストファイルです。
Sale_ID, Item_id, Sale_Date, Customer_id, Payment_Type
2004090001, p1, 09/01/2004, 0000, Credit,
2004092002, p2, 09/01/2004, 0000, Credit,
2004090003, p1, 09/01/2004, 0001, Cash,
2004090004, p3, 09/01/2004, 0000, Credit,
2004100005, p2, 10/01/2004, 0000, Credit,
2004100006, s1, 10/01/2004, 0001, Cash,

このファイルを読みこんで、日付(例えば09/01/2004)で区切って、
さらにcreditかcashで分けてスクリーンに表示させたいんですけどどうすればいいですか?
こんな感じで。

//Sale_ID, Item_id, Sale_Date, Customer_id, Payment_Type//ここの部分はいりません。
2004090001, p1, 09/01/2004, 0000, Credit,
2004092002, p2, 09/01/2004, 0000, Credit,
2004090004, p3, 09/01/2004, 0000, Credit,
2004090003, p1, 09/01/2004, 0001, Cash,
0286285NGNG
struct Sales_text
{
char Order_id;
char Item_id;
char Sale_date;
char Customer_id;
char Payment_type;
};
int main()
{ Sales_text[ここもどれでコントロールしたらいいかわからないっす] }
これをベースにしようと思ってます。
実際のテキストにはもっとデータが入ってます。
「,」で区切られてるんだけど、それをどうやったらとれるのかわからないっす。
0287285NGNG
表示するときはカンマを無くさないといけないです。
実際の表示画面はこんな感じになります。
テキストの名前はSales.txtです。

OrderID ItemID SaleDate CustomerID PaymentType
2004090001 p1 09/01/2004 0000 Credit
2004092002 p2 09/01/2004 0000 Credit
2004090004 p3 09/01/2004 0000 Credit
2004090003 p1 09/01/2004 0001 Cash
0288デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/%7Ejunkroom/

なくなっちゃったんだこのサイト・・・
0289デフォルトの名無しさんNGNG
>>287
お前>174か? そうでないなら同級生か?
カンマを取り除いて入力するには、ファイルから1行fgets()で読み込んでから、
sscanf()かstrtok()で切り出す。
#sscanf()なら"%s"ではなく"%[^,],"を使う。
0290285NGNG
>>289
そうです。
174です。
fgets()、教科書に載ってないのですがどうやって書けばいいんですか?
sscanf()とstrtok()もないです。
厨ですみません。
0291デフォルトの名無しさんNGNG
>>285
つ http://www.linux.or.jp/JM/
0292デフォルトの名無しさんNGNG
>>291
つ?
0293デフォルトの名無しさんNGNG
おっと説明足らずだな
man on WWW で対象の関数とか検索
0294デフォルトの名無しさんNGNG
書式が一定なら fscanf を使う

ってのはダメなの?
0295285NGNG
>293
行ってみましたがまるで理解の範疇をこえています。
どうやって調べていいかすらわかりません。
対象の関数でしらべてみましたがよくわかりませんでした。
>>285-287をそれで書いていだだけますか?
見れば理解できるかもしれません
0296デフォルトの名無しさんNGNG
man を理解できなきゃ今後同じ様な質問を際限なく繰り返す
まずは man などの内容を理解できるようになってからプログラミングやれ
0297285NGNG
>>294
書式が一定とはどういう意味でしょうか?
このテキストファイルはアップデートされるので
あまり応用が利かないと困るんです。

0298285NGNG
>>296
勉強はしますが、ここは宿題スレということで書き込んでます。
そういうことでご理解ねがえますか?
0299285NGNG
fstream.data("Sales.txt", ios::in)
data.read((char*) &sales, sizeof(Sales_text));

これでファイルを読み込んでます。
このあとの
while(!data.eof())
の中がよくわかりません。
0300デフォルトの名無しさんNGNG
(;´Д`)…(絶句)
0301デフォルトの名無しさんNGNG
>>285
MSDNライブラリの方がわかりやすいかも
サンプルコードあるから

重いけど…
0302デフォルトの名無しさんNGNG
/* そのデータを読み込んで表示するだけのサンプル。 */
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

struct Sales_text {
char Order_id[12];
char Item_id[4];
char Sale_date[12];
char Customer_id[6];
char Payment_type[10];
};

static void readAndPrint(const char * fileName);
static bool readStruct(const char * buf, struct Sales_text * data);
static void printStruct(const struct Sales_text * data, bool withHeader);

int main(int argc, char ** argv)
{
if (argc < 2) {
fprintf(stderr, "Usage:%s <file name>.\n", argv[0]);
exit(EXIT_FAILURE);
}
readAndPrint(argv[1]);
return EXIT_SUCCESS;
}
/* cont'd */
0303デフォルトの名無しさんNGNG
void readAndPrint(const char * fileName)
{
char buf[200];
bool withHeader = true;
FILE * fp = fopen(fileName, "r");
if (fp == NULL) {
return;
}
while (fgets(buf, sizeof(buf), fp) != NULL) {
struct Sales_text tmp;
if (!readStruct(buf, & tmp)) {
fprintf(stderr, "Illegal data:%s\n", buf);
} else {
printStruct(& tmp, withHeader);
withHeader = false;
}
}
fclose(fp);
}

bool readStruct(const char * buf, struct Sales_text * data)
{
if (sscanf(buf, "%11[^,], %3[^,], %11[^,], %5[^,], %9[^,]",
data->Order_id, data->Item_id, data->Sale_date,
data->Customer_id, data->Payment_type) < 5) {
return false;
}
return true;
}
/* cont'd */
0304デフォルトの名無しさんNGNG

void printStruct(const struct Sales_text * data, bool withHeader)
{
if (withHeader) {
printf(" OrderID ItemID SaleDate CustomerID PaymentType\n");
}
printf("%10.10s %2.2s %10.10s %4.4s %s\n",
data->Order_id, data->Item_id, data->Sale_date,
data->Customer_id, data->Payment_type);
}
/* cで書いちまったよ。 */
0305263NGNG
>>263 の高速フーリエ変換についてきいてた者です。
すげー勘違いしてました。自己解決したので後はスルーお願いします。
0306デフォルトの名無しさんNGNG
最初からスルーされてたような気がするがw
0307デフォルトの名無しさんNGNG
なんか、もっと斬新な話はないのか…どこかで見たような話ばかりだ。
0308デフォルトの名無しさんNGNG
宿題なんてだいたい似たようなもんばっかだからな(´Д`)
0309デフォルトの名無しさんNGNG
リストをクイックソートは問題としては斬新だったな。
0310ゆかこNGNG
今度C言語の課題が出たのですがどうも自分の力ではできません。
よろしければ助言をいただきたいと思います。よろしくお願いします。


レポート課題
以下のようなゲームを作りなさい。
コンピュータが 0から 9までの数を 4つ, 順序付きで重複なく選ぶとする. プレイヤ(人間)は, この数列を当てるのだが, はずれた場合に提示されるヒントは次の通り.

正解の n番目の数を n番目に解答していれば, Hit と呼ぶ. Hit の個数がヒントとして提示される.
正解の n番目の数を m番目(n≠m)に解答していれば, Blow と呼ぶ. Blow の個数がヒントとして提示される.

実行例
5 6 7 8
Hit: 0, Blow: 3
7 8 9 0
Hit: 1, Blow: 1
1 2 3 6
Hit: 1, Blow: 0
9 8 5 6
Hit: 3, Blow: 0
0 8 5 6
Congratulations!
0311デフォルトの名無しさんNGNG
↑無理があるな… いったん配列に落としてまたリストに戻すのかな。
0312309NGNG
>>308宛ね
0313310NGNG
ずれた。>>309宛
0314デフォルトの名無しさんNGNG
中身を見ずに目新しいからといって、それだけで否定している奴っているよな
0315デフォルトの名無しさんNGNG
>>310
いわゆるマスターベーションってゲーム?
0316デフォルトの名無しさんNGNG
>>310
そのゲームで、コンピュータ側が解答者で人間側が出題者のやつをやったことあるけど、
何度か適当なヒント出してるうちに、「矛盾してる!嘘を言うな!」とか言い出した。w
0317デフォルトの名無しさんNGNG
>>310
begin-base64 664 HitAndBlow.c.gz
H4sICC7zrkEAAEhpdEFuZEJsb3cuYwCNVt9PW1Ucfy4J/8MBQnr7Q2jnXraORZhsmgAzOuIibLW0
t3CgvSX33jKnI5HvNQ42GAXKapYsmcag1C2LMRvJzExcGIIZ+uKDby4xjkF8aOKDD+7B7/me0/a2
srhAes/53u/vH5/vbeFGPJVN6OyIZSd4pm3kaGNDi5uW4kN1RJundSI1NrS3tyT0JDd01vdqd1f/
CaL5WS5/5Ro8mn2QyzN/O4qWefp7u7rfjB472d93ih2s4Z17uPDHYqqGu7fzdFRKsEOC17JjNo8z
btgsZljndHPAre9MRPAIjf7GBqbUfge3YdV51znuDDl9RP4kWri+mIKHy7/AWmOD3y8MuhRzK8GH
uW1p8Yxh2Sw+EjOZ3/KxDxobPDzJtCa84NFj6nbWNFgIjXrwP5kxmRZBzgizAgHiENya32JHmDfk
9bELF5i4HWXeQ14fMdToUOcwnifdUSxdgxUozf2Zu0lXZ8ZZcqLOh7BVfQF3pjplPpZ/zuVha+H3
pWewBrtTXXXxTWR4gqVjY3pUsmsqLBF2kI1G1BldMc+Li2XGjISmZQ2LDxt6wsdE3bW+/p4en4+S
LcPmrANjYBwjddcDKZgJsuBJZOTTQ7qJn66qjPwMksiYj7UyzVX3AAv7JCs2Sg83su+xN8zMsBlL
p3XTa7HemJGNpWALnsAe/DS9OXMPHi3/c/UVKOY+mv8CvkHqOnwmc1FnT8NYfUwLh9pCfmm73WU5
EG4L+ZRpkUJ8ULCjMthRDJbjoxKhrLfSP4r6O1jFWIWlEn44oghDph4bU5dJetDvJDs3wlM600iA
3KCuaOFJA4ejMmuecROjSGrNnWTrMGsm3v8vizBSlm1NsOagy9uIS++gQRpbdCPBk8KDmuZ0Pp4a
cPphFXaWnhW2oXTlL7g91emMI/U03IH7s5dnfoSSqVvZlF3tSylKTPOZwjRsYoE24QcUPOHMTA1A
0318デフォルトの名無しさんNGNG
MX8rd1eIz+/NXYTty/1QwmG9A+vz04XrULr6G6yJcqISJD/FWS7mzqKCndzN2b/3m2hjPGtHjWx6
SDctUXTmlx7JstCED2WTA+HQgYMCQzw1k49JFA0fKXP6x10UUi8RANtTIYQVjxmUVfmHqZXmBkJn
Ksdw9XigenwZO6Wpo6Za9VgjYhMFHtYRotDrILP4+3omKc4+vCCCG1RA9Gfm2ZwFpfyt2VWRTNiB
b+FrKM6/vjhAKCsBSoRj2WZ8xJTqvIMmwhOh1X9fGfiKPKIseAdDXgV/Ik2ChHwv1n9yItBJ57Rz
ntplG089iNIT0jmPGgBRATTFvBIyEVxpWpT05Se5X+EplBZPwZqSI5B2+24FSdxXnkLBwOvzzF5C
oJFjWMk2QwOFiYUkFBe+QiPYprIhZZsqczSuesrSJVKMBwKuzJTdFKtoevPSScSmu7iUijgH3xMu
idZfvZTOH3c7X1lB1j57wiMbgvqFYCxmZzhyus2JkYAvQZRduvy4xmWqe1XFERaS9a6SjrpW7/N8
oJIrYHru9iqcxSW1gyB8X/hEK2sDbqjgd2F1fmPuooSDKSz9O9gIb2OOBq+swGPs3c/3HfOFt2B9
em9xYp9Rj4/o8TG1uWnQafb333Ij3GblRSTuQ6nMufL9RfvXBfmcIJ/sCQylnKEJ1a6iQVT71W+R
Wt3PWShu7aOufSKcViYqy0S07dJtuIufAsXlT/H3BuzKxp3em30AG0hZgV3VC7VbR1VTGBbp6ajD
Imm2vBqOZQzcw3Y2henHjDepVeFxNwOpqwZfFn2N24dZayLIutB/cULZoKhIkMpQoyak1EzKrztR
qnSMG+5vF0pL/aegp+ZDR+GUApWwq35N9ftBdEw5w2WHu00zY1YjFCvCxo8RPVKBAKFKtp/SQHyV
9S54ELPFCpHOuKLDd/8CxofV2IQLAAA=
====
0319デフォルトの名無しさんNGNG
ゆかこちゃんにいぢわるするのはよせ
0320デフォルトの名無しさんNGNG
GyRCJEwkayRdGyhC
0321デフォルトの名無しさんNGNG
どうせならQRコードで解答すっかw
0322デフォルトの名無しさんNGNG
お願いします。
http://pc5.2ch.net/test/read.cgi/tech/1101615970/501
0323デフォルトの名無しさんNGNG
>>322
おまえは馬鹿かアホかと
0324デフォルトの名無しさんNGNG
>>322
マジレスすると隣り合った文字列リテラルは結合されてしまう。しかし
問題はそこにあるのではなく、',' (カンマ)が入っている事です。これじゃ
ホワイトスペース文字とマッチしないよん。
0325デフォルトの名無しさんNGNG
だ、誰か!助けて!

【仕様】
2つのファイルを読み込んで新しい2つのファイルを作成する。
読み込むファイルには1行に1名分のデータが書かれており、
「B 氏名 打率」または「P 氏名 防御率」である。以下は例である。

--bluewave.txt--
B tani 0.317
B hidaka 0.274
P kawagoe 4.16
P motoyanagi 5.61

--kintetsu.txt--
B kitagawa 0.303
B isobe 0.308
P iwakuma 3.00
P kawajiri 4.25

このような2つのファイルを読み込み打率が0.300以上または防御率が4.20以下のデータのみを集めた
orixbuf.txtと、それ以外のデータを集めたrakuten.txtという2つのファイルを出力するプログラムを作成せよ。
0326317NGNG
分からない宿題やってもらう分、
Base64の知識でも詰め込んで置けと言うつもりでやったんですけどね

>>320
GyRCJSwlQxsoQg==
0327325NGNG
ぐわ、書き忘れだ… orz
言語はC言語です。
0328デフォルトの名無しさんNGNG
C++の問題で
文字列と1文字を入力して、文字列中の1文字の個数を処理して出力する問題なんですけど
たとえばnellyでlなら2と出力するプログラムなんですけど、よかったら教えてください
0329デフォルトの名無しさんNGNG
>>328
#include <algorithm>
#include <iostream>
#include <string>

int main()
{
  std::string str = "Hello, World!";
  char c = 'l';
  std::cout << std::count(str.begin(), str.end(), c) << std::endl;
  return 0;
}
0330285NGNG
>>304
どうもです。
うごかないです。
C++で書くとどうなりますか?

表示するのはできますが、読み込んだ後日付とPayment_typeで読み込んだ後の
ファイルの並び替えをしなければなりません(すでに書いたと思いますが)。
それをどうやったらいいかわかりません。
0331デフォルトの名無しさんNGNG
名前データの先頭文字が'E'のものだけ表示するプログラミングを作りなさい。

static char *name[]={"Eluza","Candy","Emy","Ann"};
int i;
for (i=0;i<4;i++)
if (name[i][0]=='E')
printf("%s\n",name[i]);

これを先頭文字をscanfで打ち込み、その先頭文字の名前を表示し、
打ち込んだ先頭文字の名前がなければその旨を表示するプログラムに
変えたいんですが、どうしたらいいでしょうか?
言語はCです
0332デフォルトの名無しさんNGNG
頭文字(・∀・)イイ!!
0333デフォルトの名無しさんNGNG
#include <stdio.h>

>>331
int main(void)
{
  static char* name[] = {"Eluza", "Candy", "Emy", "Ann"};
  int i, count;
  char cap;
  printf("頭文字をどうぞ:");
  scanf("%s", &cap);
  for (i = 0, count = 0; i < 4; i++)
    if (name[i][0] == cap)
    {
      printf("%s\n",name[i]);
      count++;
    }
  if (!count) printf("ありませんですた");
  return 0;
}
0334331NGNG
>>333
ありがとうございます!
助かりました。
0335デフォルトの名無しさんNGNG
C言語で質問なのですが、少しわからない事があります。
背番号,打数,安打数を多数入力し、打率の最高の選手のみ
背番号,打数,安打数とともに打率を出力する(同一打率の選手はない)
プログラムです。ストッパは背番号=−999,打数=安打数=0
ここまでは出来ました。しかしコンパイルがうまくいきません・・・。
指摘下さいますと助かります。
#include <stdio.h>
int main(void)
{
int num,num1,dasuu,dasuu1,anda,anda1;
double daritu,daritu1;
daritu=0;
daritu1=0;
do{
printf("背番号を入力せよ\n");
scanf("%d",&num);
printf("打数を入力せよ\n");
scanf("%d",&dasuu);
printf("安打数を入力せよ\n");
scanf("%d",&anda);
daritu=anda/dasuu;
if (daritu1<daritu)
{
num1=num;
dasuu1=dasuu;
anda1=anda;
    daritu1=daritu;
}
}while(num!=-999 && dasuu!=0 && anda!=0);
printf("%d %d %d %.3f",num1,dasuu1,anda1,daritu1);
return(0);
}
0336デフォルトの名無しさんNGNG
>>335
    daritu1=daritu;
↑ここに全角スペースがあるからちゃうのん?
0337273NGNG
>>273
>>279
>>282
のC言語なんですが、訂正をお願いしてもいいでしょうか?
僕の学校ではstdlibをならってないのでできるだけstdioだけで
Cを作りたいのです・・・.
prime関数の方ではmallocは習っていないのでこれを学校に
提出したらちょっと危ないと思いますので、使わないでどうにか
できませんか?
Cを書いてもらった279さんには不愉快な思いをさせて申し訳
ありませんが、どなたかお願いします。
0338279NGNG
>>337
氏ね
0339デフォルトの名無しさんNGNG
>>336
コンパイルはできたんですけど実行がうまくいかないんですよ。
だからプログラム自体が間違えてると思うんですよねぇ〜。
0340デフォルトの名無しさんNGNG
>>330
>302-304はCでも動くぞ。stdbool.hをインクルードする必要もないし。
充分ヒントになるように関数を作ってあるようだから、頑張って勉強しろや。

>>333
何故頭文字だけなのに%s? ほぼ確実に領域破壊しているんだが。

>>334
つーことで、そのまま提出しないように。
0341デフォルトの名無しさんNGNG
>>335
実行モジュールは何かダイイング・メッセージを残しませんでしたか?
0342デフォルトの名無しさんNGNG
>>341
ストッパを入力すると『Division by 0』というのがでて終了してしまいます。
0343デフォルトの名無しさんNGNG
>>342
( ゚Д゚)ポカーン

そのまんまだろう
0344デフォルトの名無しさんNGNG
>>343
すいません(^∀^;初心者なもので・・・。
どういう意味なんでしょうか?
0345デフォルトの名無しさんNGNG
自分で書いたことぐらい把握しろ
それとも何か?人生初心者を主張してるのか?
0346はるかNGNG
すいません質問です。0から9までの数を重複なく四つ選ぶ方法を教えてください
0347328NGNG
>>329
ありがとうございましたー
0348デフォルトの名無しさんNGNG
>>344
お前、ストッパは-999, 0, 0なんだろ? 0 / 0 を計算しているだろ?
あやまれ!それを告げて死んだプログラムにあやまれ!
0349デフォルトの名無しさんNGNG
>>345
だってわかんないんだもぉ〜ん!
0350デフォルトの名無しさんNGNG
>>346
「0〜9までの数字をランダムで2個選んでswap」を
任意回行った後、先頭の4つを取り出す。
0351デフォルトの名無しさんNGNG
/* 取り敢えずこんなもんかな */
int prime(int n)
{
int i;

if (n == 2) {
return 1;
}
if (n < 2 || n % 2 == 0) {
return 0;
}
for (i = 3; i * i <= n; i += 2) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
0352デフォルトの名無しさんNGNG
for (int i0 = 0; i0 <= 9; ++i0) {
for (int i1 = 0; i1 <= 9; ++i1) {
if (i1 == i0) {
continue;
}
for (int i2 = 0; i2 <= 9; ++i2) {
if (i2 == i1 || i2 == i0) {
continue;
}
for (int i3 = 0; i3 <= 9; ++i3) {
if (i3 == i2 || i3 == i1 || i3 == i0) {
continue;
}
printf("%d, %d, %d, %d\n", i0, i1, i2, i3);
}
}
}
}
0353デフォルトの名無しさんNGNG
>>348
っつー事は0/0を計算しなければ(・∀・)イイ!ってことか!
0354デフォルトの名無しさんNGNG
>>348
AA略をお忘れですよ。
0355279NGNG
>>337
俺が書いたのはエラトステネスのふるいと超有名な方法の最も
初歩的な書き方。どっちにしても見ておくといいだろう。
で、>>351氏のを提出したら大丈夫じゃねぇか?
0356273NGNG
>>279
ごめんなさい。そしてありがとうございます。
最後の最後まで迷惑おかけしました。
ずうずうしい自分の態度に反省しています。

>>351
ありがとうございます・・・。
0357デフォルトの名無しさんNGNG
(・3・)エェー ここはぼるじょあスレなのに
なんでみんな普通の言葉でしゃべってるんだYO!
0358ぼるじょあ ◆yBEncckFOU NGNG
>>357
(・3・)エェー なんでトリップがついてないんだYO!
0359デフォルトの名無しさんNGNG
いつまでそんな、とっくに飽きられた事をやってるんだ?
0360デフォルトの名無しさんNGNG
>>359は新スレが立つたびに荒らす奴か。
今回はおとなしかったみたいだが。
0361ほんたまNGNG
プログラマーのみなさん、教えてください。
ひとつのオブジェクトを2つに分裂させるコードを書きたいのですが、どう書けばいいのですか?
擬似的に2つに分裂したように見えるのではなくて、実際に2つに分裂するコードを書きたいのです。
つまり1つから2つのオブジェクトが同時に発生し、2つのオブジェクトの発生にはほんの少しの時間差もないという、事実上の分裂を書きたいのですが…
0362デフォルトの名無しさんNGNG
>>361
CPUが二つ必要だな
0363デフォルトの名無しさんNGNG
精神分裂病になれば同時に二人分の人生を生きられるよ。
0364デフォルトの名無しさんNGNG
つーか、何マルチしてんだよ。
0365デフォルトの名無しさんNGNG
ギャー誰も>>325の問題にレスつけてくれてNeeeeeeeeeee!!!
死んできます、切腹。orz
0366デフォルトの名無しさんNGNG
>>365
起きたら電子レンジのように解答が出来上がってるって虫のいい事を
考えないで、答えが出るまで起きてて催促しろ。
0367365NGNG
>>366
うぉ、心に響く… 確かに、そうですな。
もう少し自分で足掻くだけ足掻いてダメだったら吊って来る。
0368デフォルトの名無しさんNGNG
まず,ファイルにデータの個数nと,その個数分のデータ(整数のデータ)を保存する.
プログラムbinsearch.cは,まずファイルからnを読み込み,その数だけデータを読み込む.次に整数を一つキーボードから入力し,それが読み込んだデータ内に存在する場合にはyes,存在しない場合にはnoを答える.
プログラムbinsearch.cを作成し,その動作を確認せよ.ただし,プログラムの動作がわかるように,探索範囲のインデックス(iL, iM, iR)を表示するようにせよ
以下参照
#include <stdio.h>
#define N 100
enum yn {yes,no};
enum yn bsearch(int x, int *A, int n);
main(){
int A[N],n,x;
enum yn ans;
ans = bsearch(x,A,n);}
enum yn bsearch(int x, int *A, int n){
int iL,iR,iM;
iL=0;iR=n-1;
if(A[iL]==x||A[iR]==x)return(yes);
if(x<A[iL]||x>A[iR])return(no);
while(iR-iL>1){
iM=(iL+iR)/2;
if(A[iM]==x)return(yes);
if(A[iM]<x)iL=iM;
else iR=iM;}return(no);}
cでお願いします。
0369デフォルトの名無しさんNGNG
>>367
暇だから作ってみたけど、>>1のリンク先切れてるな。
確か前に行った時、どこか他のURIに変わるって書いてあった希ガス。
今どこにうpすればいい?
0370デフォルトの名無しさんNGNG
アップローダーの移転先わからんからここに連貼りするよ。
#include <stdio.h>
#include <stdlib.h>

#define INPUT1 "bluewave.txt"
#define INPUT2 "kintetsu.txt"
#define OUTPUT1 "orixbuf.txt"
#define OUTPUT2 "rakuten.txt"


struct Member {
char position;
char name[20];
double rate;
};

int main(void)
{
FILE *fi1, *fi2, *fo1, *fo2;
struct Member mb[20];
int i, count = 0;
char buf[128];

if ((fi1 = fopen(INPUT1, "r")) == NULL || (fi2 = fopen(INPUT2, "r")) == NULL || (fo1 = fopen(OUTPUT1, "w")) == NULL || (fo2 = fopen(OUTPUT2, "w")) == NULL)
exit(1);

while (fgets(buf, 128, fi1)) {
sscanf(buf, "%c %s %lf", &mb[count].position, mb[count].name, &mb[count].rate);
count++;
}
0371デフォルトの名無しさんNGNG
fclose(fi1);
while (fgets(buf, 128, fi2)) {
sscanf(buf, "%c %s %lf", &mb[count].position, mb[count].name, &mb[count].rate);
count++;
}
fclose(fi2);

for (i = 0; i < count; i++)
switch (mb[i].position) {
case 'B':
fprintf((mb[i].rate >= 0.3) ? fo1 : fo2, "%c %s %f\n", mb[i].position, mb[i].name, mb[i].rate);
break;
case 'P':
fprintf((mb[i].rate <= 4.2) ? fo1 : fo2, "%c %s %f\n", mb[i].position, mb[i].name, mb[i].rate);
break;
default:
break;
}
fclose(fo1);
fclose(fo2);

return 0;
}

>>1の移転先わかる人URIキボン。
0372デフォルトの名無しさんNGNG
移転先が分からない。見つかるまではここを代用にどうでしょう。
2ch(公式?)うpローダー。txtを貼れるからそこに書く。少し重いけど。
http://up.isp.2ch.net/upload/c=03okari/index.cgi
0373デフォルトの名無しさんNGNG
お前らは負け組みであり勝ち組
そういう均衡を保った凄まじさに可憐さを交えた
熱い思いを吐き出せずに、ただ毎日を暗鬱と過ごしている
だけのカリカチュア。
0374デフォルトの名無しさんNGNG
誤爆?
0375デフォルトの名無しさんNGNG
ローカル記憶域を指してthisポインタのようなものと言ってるのだろう。
0376デフォルトの名無しさんNGNG
以下のメインプログラムを基に、4次のAdams-Bashforth法を用いて常微分方程式を
解くプログラムを作成せよ。


#include <stdio.h>
#include <math.h>

#define DX 0.1
#define XINI 1.0
#define YINI 0.0
#define IXFIN 10

main()
{
double x = XINI, y= YINI, y_next;
int ix;
double next(double,double);

for(ix=1;ix<=IXFIN;ix++)
{
y_next= next(x,y);
x= XINI + DX*(double)ix;
y= y_next;
printf("%f%f\n",x,y);
}
}

Cでお願いします。
0377デフォルトの名無しさんNGNG
最近思うんだ・・・
#defineは使うんじゃネェ!

ってint ix;
for(ix=1
ってやってるあたりからしてCか・・・
0378デフォルトの名無しさんNGNG
>>377
だからCだと言ってるじゃないですか。
いいかげんにしてください。
0379デフォルトの名無しさんNGNG
#define よりも const を使うことが推奨されている
0380デフォルトの名無しさんNGNG
>>379
わたしを区切らないで
 ,(コンマ)や;(セミコロン)いくつかの段落
 そしておしまいに「return」があったりする
 プログラムのようには
 こまめにコメントをつけないでください
 わたしは終りのないプログラム
 川と同じに
 はてしなく流れていく 拡がっていく
 一行の詩
0381デフォルトの名無しさんNGNG
池沼?
0382デフォルトの名無しさんNGNG
>>380
心に沁みます。
0383デフォルトの名無しさんNGNG
>>380
心にシミが出来ますた。
0384デフォルトの名無しさんNGNG
>>378
去れ池沼
0385デフォルトの名無しさんNGNG
>>384
そういうふうな言葉を言われるととても悲しくなります。
どうして、そんな非道いこと僕にいったの?
0386デフォルトの名無しさんNGNG
。゚(゚´Д`゚)゚。
0387デフォルトの名無しさんNGNG
           ...,、 -  、
      ,、 '  ヾ 、    丶,、 -、
     /    ヽ ヽ  \\:::::ゝ
 /ヽ/   i  i    ヽ .__.ヽ ヽ::::ヽ
 ヽ:::::l i.  l  ト  ヽ  ヽ .___..ヽ 丶::ゝ
 r:::::イ/ l  l.  i ヽ  \ \/ノノハ  ヽ
 l:/ /l l.  l  i  ヽ'"´__ヽ_ヽリ }. ',  ',
 'l. i ト l  レ'__    '"i:::::i゙〉l^ヾ  |.i. l
. l l lミ l /r'!:::ヽ    '‐┘ .} /  i l l  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
  l l l.ヾlヽ ゝヾ:ノ   ,     !'"   i i/ i<  お呼びですか?
  iハ l  (.´ヽ     _   ./    ,' ,' '  |   ・・・・・
   |l. l  ` ''丶  .. __  イ          \_______
   ヾ!        l.   ├ァ 、
          /ノ!   /  ` ‐- 、
         / ヾ_   /     ,,;'' /:i
        /,,  ',. `  /    ,,;'''/:.:.i
0388デフォルトの名無しさんNGNG
死ねよ
0389デフォルトの名無しさんNGNG
また禁断症状ですか?
0390デフォルトの名無しさんNGNG
[PR] 2chカレンダー2005仮予約受付中 [PR]
http://chbox.com/goods/
0391デフォルトの名無しさんNGNG
c言語です。お助けください…

文字列数字を10進数に変換して表示させる

NGワード:atoi(ss)

自分は(恐らく)00001111でその文字とANDをとったところまでしかわからんです
一桁までならわかるんだけど、何だか制限されてるんですよ。
以下問題箇所をそのまま載せます

char suuji[5]= "5432" ;
unsigned int r1=0; mask=(任意)
int cnt ;

for(cnt = 0 ; cnt < 4 ; cnt ++){
r2 = (unsigned int)suuji[cnt] ;
r2 = r2 (演算子1) mask ;
r1 = (r1 (演算子2) 3 ) + (r1 (演算子3) 1 ) ;
r1 = r1 + r2 ;
}

printf("10進数 = %u\n",r1) ;

(演算子1〜3)を補って10進数を表示させるらしいのですが…
maskの値は…0x0fじゃないかなーとか思っております…こういうひらめきなの嫌いです。
ヒントでも良いです・・・お願い致します…
0392デフォルトの名無しさんNGNG
なんかきもちわるいプログラムですね。
0393デフォルトの名無しさんNGNG
mask = 0x0f;

r2 = r2 & mask;
r1 = (r1 << 3) + (r1 << 1); /* (r1 * 8) + (r1 * 2) は (r1 * 10) */
r1 = r1 + r2;
0394デフォルトの名無しさんNGNG
関係ないけど
r1 *= 10;って書くより
r1 = (r1 << 3) + (r1 << 1);
のほうがいいの?
0395デフォルトの名無しさんNGNG
>>394
昔のCPUで命令に掛け算が無かった頃はその方が速かった。
0396デフォルトの名無しさんNGNG
はやっ・・・・・・・・・
おれはあれですか、バカですか・・・ありがとうございました・・・r1*10か・・・なるほどね・・・がっくし
0397デフォルトの名無しさんNGNG
>>396
バカとは言ってないよ。こういうのは経験として知ってるかどうかだけだと思う。
とりあえず、2進数の掛け算を筆算でしてみればいい。
0398デフォルトの名無しさんNGNG
さっぱりわかんない宿題がでました。助けてください。

[1] 授業単元:プログラミング言語基礎
[2] 問題文:
  2ちゃんねるデータ形式で、ID名をカウントし、一番多いやつを調べる。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ(バージョン): MinGW 2.0.0
 [3.3] 言語:C
[4] 期限:2004年12月24日
0399デフォルトの名無しさんNGNG
それ宿題じゃなくてお前が作って欲しいだけだろ
0400デフォルトの名無しさんNGNG
ネタ乙
0401デフォルトの名無しさんNGNG
int* sumArrays(int* a, int* b, int N){
int* c = new int[N];
for (int i = 0; i < N; ++i)
c[i] = a[i] + b[i];
return c;
}

これってコンパイルとラン可能ですよね?
自分でやってみたら、動いたんですけど。。。
でもエラーとか不利点とか、あるみたいで、それがいまいち、よく分からないんですが。。。

ポインターって、関数で、&パス(リファレンス)できないですよね?
なんでですか?
0402デフォルトの名無しさんNGNG
>ポインターって、関数で、&パス(リファレンス)できないですよね?
なんのために使う?
0403デフォルトの名無しさんNGNG
使わないけど、そういう問題が出てて。なんで出来ないのか書けって。
0404デフォルトの名無しさんNGNG

int* sumArrays(int*& a, int*& b, int N){
int* c = new int[N];
for (int i = 0; i < N; ++i)
c[i] = a[i] + b[i];
return c;
}

これコンパイル&ラン可能だったけど?
0405404NGNG
コンパイラはBorland C++ Compiler
0406デフォルトの名無しさんNGNG
関数呼んだあとdeleteをするのを忘れるなって話?
0407デフォルトの名無しさんNGNG
そうなんだよね。私も出来たんですよ。でも、問題文が、
「これは、コンパイラー、ラン可能か?そのエラーと不利点をあげ、正しくプログラムを書き換えろ」
なんだよね。。。
0408デフォルトの名無しさんNGNG
std::vector<int> sumArrays(int*& a, int*& b, int N) {
  std::vector<int> v;
  for (int i = 0; i < N; ++i)
    v.push_back(a[i] + b[i]);
  return v;
}
こう直せばいいんじゃないか?
0409404NGNG
int* sumArrays(int*& a, int*& b, int N){
int*&ってしたの気づいてくれてるよね?
0410404NGNG
>403
0411デフォルトの名無しさんNGNG
プログラムの開始前時刻と終了後時刻を調べその差を取ってプログラム実行時間(秒単位)を調べよ
↑
この課題の時間差ってどうやってもとめるのでしょうか?
0412デフォルトの名無しさんNGNG
time
0413デフォルトの名無しさんNGNG
>>409
ポインタのリファレンスは呼び出し側で&を省けるって利点があるね。
それがそのまま欠点にもなってるけど。
0414デフォルトの名無しさんNGNG
出力結果をhtml形式の表に出力するのはどうやったら宜しいのでしょうか?

htmlファイルの中にある複数のセルを結合した中にC言語の変数の内容を出力したいのですが・・・

printf関数の内容をhtml出力対象にしてもセル関係がうまく均等にならなかったり

0415デフォルトの名無しさんNGNG
>>414
CでHTMLを出力するってこと?
それならHTMLの勉強をすればいい。
HTMLでのtableの結合は、tdタグのcolspan属性またはrowspan属性だ。
0416デフォルトの名無しさんNGNG
>>411
時間変数2個作って最初と最後に取った差分を取るだけ?
0417デフォルトの名無しさんNGNG
助けて下さい! 「身長を入力していき、一番背の高い人と一番低い人の身長を
求めるぷログラム(0を入力した時にデータ終了)」が課題なんです。while文を
使うんです。私はSUMとかDATとか習ってないのでそれらを使わずに作らなくては
いけないんですが、どうしても分かりません・・。誰かお助けをお願いします!
0418デフォルトの名無しさんNGNG
>>417
ソートの問題はさんざん既出だろ。
みなさん、スルーで。
0419417NGNG
すいません。ソートって何ですか?過去ログ四段ですけどいまいち分からなくて。
c++とかのことですか?
0420デフォルトの名無しさんNGNG
ソートじゃないと思うけど。
0421デフォルトの名無しさんNGNG
>>419

int i;
double a[100]
double max;
double min;

max = a[0];
min = a[0];
i = 0;
while (a[i] != 0) {
if (a[i] > max) max = a[i];
if (a[i] < min) min = a[i];
++i;
}
0422デフォルトの名無しさんNGNG
>>417
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main()
{
  char buf[256];
  int n, min = INT_MAX, max = INT_MIN;
  while( n = atoi(fgets(buf, sizeof(buf), stdin ) ) ){
    if( min > n ) min = n;
    if( max < n ) max = n;
  }
  printf(" 最大 %d, 最小 %d \n", max, min );
  return 0;
}
0423デフォルトの名無しさんNGNG
こんなの出ました(Cです)

"end"という文字列が入力されるまで文字列を入力として受け付けて、
入力された文字列を全て配列に格納せよ(ただし、上限は100とする)。
この配列の要素のうち、添え字が偶数のもののみ出力せよ。

お願いします。
0424デフォルトの名無しさんNGNG
ガンバレ
scanfで文字列読みとって
charの2次元配列にstrcpyでコピー
入れた数は変数にでもいれとけ
0425デフォルトの名無しさんNGNG
ファイルを読み取り、その各行に行番号をつけたものを別のファイルに出力する
プログラムを作成せよ。(C言語でお願いします)

例)
Nice to meet you.
My name is Taro Tanaka.
のとき、出力は
1: Nice to meet you.
2: My name is Taro Tanaka.

のように。

FILE *rfp, *wfpみたいにファイルポインタを宣言して
fopen やfclose などを使って
if((rfp = fopen("test1input.txt", "r")) == NULL)
みたいにやっていくみたいなんですが、サパーリです(汗

よろしくお願いします。
0426デフォルトの名無しさんNGNG
>>423
#include <stdio.h>
#include <string.h>
int main() {
  char Buf[101] = "";
  int i, Len;
  for (i = 0; i < sizeof Buf; i++) {
    int ch = getchar();
    Buf[i] = ch;
    if (ch == EOF || !strcmp(Buf + i - 2, "end"))
      break;
  }
  Len = strlen(Buf);
  for (i = 0; i < Len; i += 2)
  putchar(Buf[i]);
  return 0;
}
0427デフォルトの名無しさんNGNG
>>426
ひねくれてるなぁw
0428デフォルトの名無しさんNGNG
>>426
感動した
0429デフォルトの名無しさんNGNG
>>425
#include <stdio.h>

int main(void)
{
char buf[1024];
FILE *rfp, *wfp;
int line = 1;

if((rfp = fopen("test1input.txt", "r")) == NULL){
fprintf(stderr, "file open error\n");
return -1;
}
if((wfp = fopen("test1output.txt", "w")) == NULL){
fprintf(stderr, "file create error\n");
return -1;
}

while(fgets(buf, sizeof buf,rfp) != NULL){
fprintf(wfp, "%d: %s", line, buf);
line++;
}

fclose(rfp);
fclose(wfp);

return 0;
}
0430デフォルトの名無しさんNGNG
>>425
#include <stdio.h>
int main(int argc, char **argv) {
  FILE *fpInput, *fpOutput;
  unsigned i = 0;
  if (argc <= 2)
    return 1;
  fpInput = fopen(argv[1], "r");
  fpOutput = fopen(argv[2], "w");
  if (!fpInput || !fpOutput)
    return 1;
  for (;;) {
    char Buf[512];
    if (!fgets(Buf, sizeof Buf, fpInput) || fprintf(fpOutput, "%d:\t%s", ++i, Buf) < 0)
      return 0;
  }
}
これは0からカウントするようになっているが、もし1からカウントするようにしたいならi++を++iに書き替えれば良い。
0431デフォルトの名無しさんNGNG
C++の「algorithm」にある、文字列の並び替え関数next_permutationって、
どういうアルゴリズムなんですか?普通のC言語のプログラムで書こうとしたらどうなるのでしょうか?
javaで同じことをしたいんですけど、ヘッダファイルを見てもチンプンカンプン。
0432デフォルトの名無しさんNGNG
配列を使用して3つの整数を入力しました。
この3つの整数の大小を比較して大きい順に並び替えたいんですが、
整数のかず(今は3つ)に依存せずいくら多くなっても少なくても並びかえれるようにできるプログラム
はできますでしょうか?教えてください。お願いします(C言語でお願いします)
0433デフォルトの名無しさんNGNG
だからソートしるって。
0434デフォルトの名無しさんNGNG
>>432
qsort
0435デフォルトの名無しさんNGNG
int min (int x, int y) {
if ( x < y ) {
return x;
else
return y;
}
}

print("小さいのは %d です。", min(x, y));

上記のように関数ではなく以下のようにマクロを用いるメリットについて考察して述べよ。
#define MAX(a, b) ((a > b) ? a : b )
 〜略〜
printf("大きいのは %d です。\n", MAX(x, y));

どうなんでしょう?
0436デフォルトの名無しさんNGNG
>>435
関数を呼ぶときのオーバーヘッドが無くなる かも しれない
0437デフォルトの名無しさんNGNG
>>436
違います。
0438デフォルトの名無しさんNGNG
メリットとしては、型に関係ないコードが書けるので同じ内容のコードを
型ごとに書く手間が省ける点、関数呼び出しのオーバーヘッドがない点
がある。その反面、マクロはスコープを持たず、エラーメッセージが読み
にくくなりやすい等の副作用が無視出来ない程に多い。型を無視すると
いうのも、分かりにくいエラーの元になり、必ずしもメリットとは言い切れ
ない。よって、殆どの場合において出来る限りマクロは避け関数で書いた
方がよい。C++にはテンプレートと言う機能があり、副作用がなく、しかも
基本的には型ごとに同じコードを書く必要がない。関数呼び出しのオーバー
ヘッドに関しては、inlineキーワードを使うことによって関数呼び出しの
オーバーヘッドを取り除くかどうかの判断をコンパイラに任せるのが
得策である場合が多い。
よって、マクロには現実的メリットは殆どない。
0439デフォルトの名無しさんNGNG
C++持ち出してメリットないなんていかがなものかと。
C99でもinlineもサポートされたけどポータブルな分まだ利用価値はあるだろ。
0440デフォルトの名無しさんNGNG
#define MAX(a, b) (((a) > (b)) ? (a) : (b))

あと MAX(hoge++, fuga++) みたいな使い方も爆死
0441デフォルトの名無しさんNGNG
ソース置き場がなくなったのって何で?http://www2.to/sourceでも
繋がらないし。完璧にお亡くなりになった?
0442デフォルトの名無しさんNGNG
マクロのほうがカッコイイ。
0443デフォルトの名無しさんNGNG
マクロはカッコだらけでカッコワルイイ。
0444425NGNG
>>429さん
エラー出ちゃうんですけど・・・
0445デフォルトの名無しさんNGNG
エラーの内容ぐらい書けよ
0446デフォルトの名無しさんNGNG
#define より defmaro のほうがカッコイイ。
0447デフォルトの名無しさんNGNG
>>440みたいなマクロの使い方がわからないなぁ
0448デフォルトの名無しさんNGNG
>>431
順列を生成してるだけだから。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int nextperm(int n, int pp[]) {
int i, j, t;i = n - 2;
while (0<=i && pp[i] >= pp[i+1]) i--; if (i < 0) return 0; j = n - 1;
while (pp[i] >= pp[j]) j--;t = pp[i]; pp[i] = pp[j]; pp[j] = t;
i++; j = n - 1; while (i < j) {t = pp[i]; pp[i] = pp[j]; pp[j] = t; i++; j--;}return 1;
}
#defineN4
int main(int argc, char* argv[]) {
int i, count = 0, p[n];
for (i = 0; i < N; i++) p[i] = i + 1;
do {
printf("%5d: ", ++count); for (i = 0; i < N; i++) printf("%4d", p[i]); printf("\n");
} while (nextperm(N, p));
return 0;
}
0449デフォルトの名無しさんNGNG
>>444
どうせ、txtファイルを、プログラムと同じ場所においてないからじゃないの。
0450デフォルトの名無しさんNGNG
ファイルの内容を読み込んでそれを2進数で出力せよ。
どうやるんでしょう?
0451デフォルトの名無しさんNGNG
ものすごい桁数になるがそれでもいいのか?
0452デフォルトの名無しさんNGNG
>>451
OKです
入力用のファイルは多くても200byteなので。
0453デフォルトの名無しさんNGNG
>>450
int main(int argc, char **argv)
{
  FILE *fpInput;
  if (argc <= 1)
    return 1;
  fpInput = fopen(argv[1], "r");
  if (!fpInput)
    return 1;
  for (;;)
  {
    int i, ch = getc(fpInput);
    if (ch == EOF)
      break;
    for (i = 0; i < CHAR_BITS; i++, ch <<= 1)
      putchar((ch & 80 != 0) + '0');
    putchar('\n');
  }
  fclose(fpInput);
  return 0;
}
0454デフォルトの名無しさんNGNG
>>450
#include <bitset>
#include <climits>
#include <fstream>
#include <iostream>
#include <iterator>

int main()
{
std::ifstream file("data.dat", std::ios::in | std::ios::binary);
for (std::istreambuf_iterator<char> first(file), last; first != last; ++first) std::cout << std::bitset<CHAR_BIT>(*first);
}
0455423NGNG
>>426
ありがとうございました!
助かりました!
0456デフォルトの名無しさんNGNG
>>454
短さに感動した
0457デフォルトの名無しさんNGNG
>>440
>>447
マクロ関数をマクロ関数と見抜けない人には・・・
http://pc5.2ch.net/test/read.cgi/tech/1099412045/
0458デフォルトの名無しさんNGNG
1int型整数a,bに値をキー入力する。
2a,bのアドレスをポインタ変数pa,pbに代入する
3paとpb内容(アドレス)を交換する
4paとpbが指すアドレスに格納されている値を表示する
プログラムおねがいします
0459デフォルトの名無しさんNGNG
>>458
#include <stdio.h>

int main(void)
{
  int a, b, *pa, *pb, *temp;
  printf("a,bの形式で入力せよ:");
  scanf("%d,%d", &a, &b);
  pa = &a;
  pb = &b;
  temp = pa;
  pa = pb;
  pb = temp;
  printf("*pa = %d, *pb = %d", *pa, *pb);
  return 0;
}
0460425NGNG
すいません、2問目もお願いします。

ファイルを読み込み、合計・平均・最大値と最小値を求め、ファイルに書き出す
プログラムを作成せよ。
(429さんみたいにお願いします。Cで)

例
(入力ファイル)
1
2
3
4

出力
合計:10
平均:2.5
最大値:4
最小値:1
0461デフォルトの名無しさんNGNG
つーか、といてもらってお礼もなしで
次の質問なんてずいぶん礼儀正しい人ですね。
0462デフォルトの名無しさんNGNG
全角数字では難しいですねぇ
0463デフォルトの名無しさんNGNG
>>459
ありがとうございました
0464デフォルトの名無しさんNGNG
>>460
半角数字でよければw
#include <stdio.h>
#include <limits.h>
int main(void) {
  FILE *rfp, *wfp;
  int temp, n = 0, sum = 0, max = INT_MIN, min = INT_MAX;

  if((rfp = fopen("test1input.txt", "r")) == NULL){
    fprintf(stderr, "file open error\n");
    return -1;
  }
  if((wfp = fopen("test1output.txt", "w")) == NULL) {
    fprintf(stderr, "file create error\n");
    fclose(rfp);
    return -1;
  }

  while(fscanf(rfp, "%d\n", &temp) != EOF) {
    if (temp > max) max = temp;
    if (temp < min) min = temp;
    sum += temp;
    ++n;
  }

  fprintf(wfp, "合計:%d\n平均:%f\n最大値:%d\n最小値:%d", sum, (double)sum / n, max, min);

  fclose(rfp);
  fclose(wfp);

  return 0;
}
0465デフォルトの名無しさんNGNG
[2] 二次方程式の解を求めるプログラムの作成
・係数 a,b,c はキーボードより入力
・繰り返し処理が出来る事(for,while,don 〜 while文のいずれかを用いる)
・繰り返しの条件終了は a=0 の時とする
・虚数解は、求めなくて良い

[3] 環境
 [3.1] OS: WinXP
 [3.2] コンパイラ(バージョン): CPad Ver2.31
 [3.3] 言語:C++
[4] 期限:2004年12月6日

素人なのでよく分かりません。よろしくお願いしますm(__)m
0466425NGNG
>>429さん
すいません、エラー出てて書き込めてなかったみたいです。
よく出るんです・・・何故?

ありがとうございましたm(__)m
0467デフォルトの名無しさんNGNG
>>466
だから、エラーの内容を書けとあれほど・・・
0468デフォルトの名無しさんNGNG
解いて欲しい問題だけは書き込めるんだな
0469458NGNG
1a,bに値を代入する。
2a,bのアドレスをポインタ変数pa,pbに代入する
3pa,pbをつかって(a,bを使わずに)aとbの値(内容)を交換する
4a,bの値を表示する
を自分でやってみました
#include <stdio.h>
int main(void)
{
int a,b,*c,*pa,*pb;
printf("a= ");
scanf("%d",&a);
printf("b= ");
scanf("%d",&b);
pa=&a;
pb=&b;
pa = pb - pa;
pb -= pa;
pa += pb;
printf("pa=%p\n",*pa);
printf("pb=%p\n",*pb);
}
途中までしたんですがエラーが出ます
間違って入るところを直してください。
おねがいします
0470デフォルトの名無しさんNGNG
>>469
お前の根性が間違っている
0471デフォルトの名無しさんNGNG
>>470
お前の根性ひねくれてる
0472デフォルトの名無しさんNGNG
――【注意点】――――――――――――――――――――――
・使用する言語(C/C++)や環境(CUI/GUIなど)は必ず書きましょう。
・問題文は、ちゃんと解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式自体をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その行とエラーの詳細を書きましょう。
 エラーメッセージが出た場合はそのままコピーしてください。
・後になって問題につけたしをするのはやめましょう。
 解いてもらっている方に失礼になってしまいます。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0473デフォルトの名無しさんNGNG
>>465
#include <iostream>
#include <cmath>

int main()
{
  double a, b, c;
  for (; ; )
  {
    std::cout << "a?:";
    std::cin >> a;
    if (a == 0.0) break;
    std::cout << "b?:";
    std::cin >> b;
    std::cout << "c?:";
    std::cin >> c;
    if (b * b - 4 * a * c < 0)
    {
      std::cout << "方程式" << a << "x^2+(" << b << ")x+(" << c << ")=0は実解を持ちません" << std::endl;
      continue;
    }
    std::cout << "方程式" << a << "x^2+(" << b << ")x+(" << c << ")=0の解" << std::endl
              << "x=" << (- b + std::sqrt(b * b - 4 * a * c)) / (2 * a) << std::endl
              << "x=" << (- b - std::sqrt(b * b - 4 * a * c)) / (2 * a) << std::endl;
  }
}
0474466NGNG
>>467さん
すいません、指摘のとうり
同じトコにファイル置いてないだけでした。

ご迷惑をおかけしましたm(__)m
0475459NGNG
>>469
>pa = pb - pa;
>pb -= pa;
>pa += pb;
これはダメ。pbもpaもポインタだから「pb - pa」の型はsize_tだから。
普通の整数と違ってそういう足し算引き算でポインタ交換するのは面倒くさい。
0476285NGNG
>>302-304
どうもありがとうございます。
参考にさせていただきました。
#include <iostream.h>#include<cstdlib>
#include<iomanip>#include<fstream>
#include <stdlib.h>#include<string>
using namespace std;
#define Sales_counter 45
struct Sales_struct
{//Begin Sales_struct
char sale_id[12],item_id[4],sale_date[12],customer_id[6];
};//End Sales_struct
void ReportMenu();
void SalesByOrder(Sales_struct [], int);
int main()
{//Begin Main()
ReportMenu();system("PAUSE");return 0;
}//End Main()
0477285NGNG
void ReportMenu()
{//Begin ReportMenu()
int action,
Sales_Counter;
Customer_struct Customer;
Sales_struct Sales[Sales_counter];
//Ask user to Enter the action
cout<<"\n\n\nREPORT MENU:"<<endl;
cout<<"\n2.Sales by Order Number "
<<"\n\nEnter the number to proceed your action" <<endl;
cin >>action;
//go to function SlaesByOrder()
if(action==2)
SalesByOrder(Sales, Sales_counter);
}//End Report_Menu()
0478285NGNG
void SalesByOrder(Sales_struct Sales[], int size)
{//Begin SalesByOrder()
cout<<"\nThis is the Sales by order menu : " ;
fstream data("a:\\PROJECT\\Sales.txt", ios::in);
if(data.fail())
{cout <<"\nNo file" <<endl;
system("PAUSE");}
data.getline( (char *) &Sales[Sales_counter].sale_id, sizeof(Sales_struct), ',');
data.getline( (char *) &Sales[Sales_counter].item_id, sizeof(Sales_struct), ',');
data.getline( (char *) &Sales[Sales_counter].sale_date, sizeof(Sales_struct), ',');
data.getline( (char *) &Sales[Sales_counter].customer_id, sizeof(Sales_struct));
while(!data.eof())
{//Begin while Loop
data.getline( (char *) &Sales[Sales_counter].sale_id, sizeof(Sales_struct), ',');
data.getline( (char *) &Sales[Sales_counter].item_id, sizeof(Sales_struct), ',');
data.getline( (char *) &Sales[Sales_counter].sale_date, sizeof(Sales_struct), ',');
data.getline( (char *) &Sales[Sales_counter].customer_id, sizeof(Sales_struct));
cout << "\nDEBUG! : " << Sales[Sales_counter].sale_id
<< Sales[Sales_counter].item_id
<< Sales[Sales_counter].sale_date
<< Sales[Sales_counter].customer_id;
}//End while Loop
char BackMenu ='q';
cout <<"enter Q to back to REPORT MENU" <<endl;
cin >> BackMenu;
if((BackMenu=='q')||(BackMenu=='Q'))
ReportMenu();
}//End SalesByOrder()
0479285 DevC++NGNG
Sales.txtの中身
Sale_ID, Item_id, Sale_Date, Customer_id,
2004090001, p1, 09/01/2004, 0000
2004092002, p2, 09/01/2004, 0000
2004090003, p1, 09/01/2004, 0001
2004090004, p3, 09/01/2004, 0000
2004090005, p2, 09/01/2004, 0000
2004090006, s1, 09/01/2004, 0001
2004090007, p2, 09/01/2004, 0000
2004100001, p1, 10/01/2004, 0001
0480285 DevC++NGNG
Sales.txtをSales[Sales_counter]に読み込むまではなんとかなりました。
次はSales_ID順にその日のデータを表示しなくてはなりません。
Sale_ID, Item_id, Sale_Date, Customer_id,←Customer_idの後の「,」は間違いです。本来はありません。

char Date[12];
cout<<"Enter the date mm/dd/yyyy"<<endl;
cin>>Date;

として、その入力された日付分のデータを表示したいのですがどうしたらいいでしょ?
while(!data.eof())
{//Begin while Loop
if(Date=Sales[Sales_counter].sale_date)
{
data.getline( (char *) &Sales[Sales_counter].sale_id, sizeof(Sales_struct), ',');
data.getline( (char *) &Sales[Sales_counter].item_id, sizeof(Sales_struct), ',');
data.getline( (char *) &Sales[Sales_counter].sale_date, sizeof(Sales_struct), ',');
data.getline( (char *) &Sales[Sales_counter].customer_id, sizeof(Sales_struct));
}これだと156 void value not ignored as it ought to be というエラーメッセージがでました。
}//End Whileloop
0481285 DevC++NGNG
if(Date=&Sales[Sales_counter].sale_date)ですね。
これで出るエラーは 156 incompatible types in assignment of `char (*)[12]' to `char[12]'です。
0482465NGNG
>>473
ありがとうございましたm(__)m
0483デフォルトの名無しさんNGNG
C言語でジグザグスキャンを行うには
どのようにしたらよいのでしょうか?
教えてくださいm(__)m
0484デフォルトの名無しさんNGNG
>>483
JPEGのとか対象が小さいならテーブル使うのがいい
0485デフォルトの名無しさんNGNG
>m(__)m
↑これを使われると不快感たっぷりになるのはなぜだろう
0486デフォルトの名無しさんNGNG
ハゲドー
0487デフォルトの名無しさんNGNG
C言語で
キーボードから数値を入力して、それが偶数の時のみ入力した数値を足し算する。
合計が50になるまで続け、50になったら合計値を出力するプログラムを作ろうとしているのですが、
まだまだ良く理解出来ていないせいで、完成に至りません。
どこもかしこも間違っていると思いますが、添削お願いします。

#include<stdio.h>
main(){

int a,sum;
sum=0;
printf("input number >>\n");
while(sum<=50)
{scanf("&d",&a);
if (a%2==0)
{sum=sum+a;
printf("input again");}
else {printf("input again");}
printf("sum=%d\n",sum);
}
0488デフォルトの名無しさんNGNG
>>487
致命的にまちがってるのは
scanf("&d",&a); じゃなくてscanf("%d",&a);
あと、最後にカッコが足りない。
0489デフォルトの名無しさんNGNG
>>487
#include <stdlib.h>
#include <stdio.h>
main()
{
  int sum;
  sum = 0;
  puts("input number >>");
  while (sum <= 50)
  {
    char buf[64];
    int n;
    fgets(buf, sizeof buf, stdin);
    n = atoi(buf);
    if (n % 2 == 0)
    {
      sum += n;
    }
    puts("input again");
  }
  printf("sum = %d\n", sum);
}
0490デフォルトの名無しさんNGNG
whileの判定式が間違ってるな
それから非数が入力された場合のフローが激しくキモい
0491デフォルトの名無しさんNGNG
#inclide <stdio.h>
int main(void)
{
short a[]={10,11,12,13};
short *b;
int i;
b=a;
for(i=0;i<4+i++){
printf("a[%d]=%d ",i,a[i]);
printf("&a[%d]=%p ",i,&a[i]);
printf("a+%d=%p ",i,b);
printf("*(a+%d)=%d\n",i,*b);
b++;
}}
このプログラムの配列とポインタ変数をlong型に変更してください。
おねがいします。
0492デフォルトの名無しさんNGNG
>>491
shortをlongにして、a[i]と*bを表示するprintf()内の書式を%dから%ldに替える。
iとiを表示する%dと%pはそのまま。
0493デフォルトの名無しさんNGNG
>>492
どうもありがとう
0494デフォルトの名無しさんNGNG
使用する言語:C

【問題文】
五角形の面積をヘロンの公式を用いて求めるプログラムを作成しなさい。
繰り返し処理を用いて複数回連続処理ででるようにすること。終了条件は自由。

【ヘロンの公式】
面積 = bh/2 又は
ヘロンの公式
面積 =√( S (S-a) (S-b) (S-c) )

ここで S=(a+b+c)/2 とする
● 鈍角三角形でも、同じ

サッパリ分からず困り果てています。どうかよろしくお願いします。
0495デフォルトの名無しさんNGNG
>>494
五角形?三角形じゃないの?
それから辺の長さを入力させるのか?それとも頂点の座標を入力するのか?
はっきりさせないと。
0496デフォルトの名無しさんNGNG
>>495さん
本当にすみません。ヘロンの公式は使用しなくても良いです。。
ヘロンの公式って三角形の面積を求める公式ですよね。。(^^;
申し訳ありません。

辺の長さを入力させたいと思います。
0497デフォルトの名無しさんNGNG
>>496
結局五角形の面積を求めるのか?
0498デフォルトの名無しさんNGNG
>>481
おまいは比較したいときに代入してどうすると言うのだ。
コンパイラのエラーくらいきちんと読め。
それから文字列の比較は、C++らしくstd::stringに格納して比較演算子で比較するか、
C流にstrcmp()を使うかだ。
おまいの課題の場合は、日付けを数値化しておいて数値として比較してもいいかも知れん。
0499デフォルトの名無しさんNGNG
はい。「辺の長さを入力させて五角形の面積を求めるプログラム」でお願いします^^;
本当に細かいご指導までありがとうございます。
0500デフォルトの名無しさんNGNG
こんなん参考にならないかな

五角形
http://www.curri.miyakyo-u.ac.jp/w3-st/kouza/c-lang/044.html
0501デフォルトの名無しさんNGNG
>>500
ありがとうございます!動かす事ができました。
問題文の中の
>繰り返し処理を用いて複数回連続処理ででるようにすること
というのが自分はよく分からないのですが、
1辺の値を変動させるという事なのでしょうか。。
0502デフォルトの名無しさんNGNG
見事に苛めに誘導されているなぁ。
辺の長さだけでは五角形の面積は一意に決まらないのに。
元がヘロンの公式だから、>500でFAだろうけど。
0503500NGNG
>>501
ごめん
オレわからん('A`)
他の人よろー
0504デフォルトの名無しさんNGNG
ぷっ、2秒差w

>>501
>500のmain()の先頭で、直接代入しているのを止めて、
ループの先頭で入力するようにすればいいと思われ。
但し、5辺ではなくて5辺+対角線2本であることに注意。
0505デフォルトの名無しさんNGNG
>>504
ありがとうございます。一応頭では分かりました。
しかしどう書けば良いのかわかりません^^;

度々申し訳ないのですが、できればその処理をソースで書いていただけないでしょうか。。
0506デフォルトの名無しさんNGNG
(; ・`д・´) !? (`・д´・ (`・д´・ ;) ナ,ナンダッテ−!
0507デフォルトの名無しさんNGNG
>>505
scanf
0508デフォルトの名無しさんNGNG
>>398
むかーしつくったのがあるよ
ほしけりゃさらすけど需要ないかな?
0509デフォルトの名無しさんNGNG
>>505 あとは適当に改造して
int main()
{
double a, b, c, d, e, f, g;
double s1,s2,s3,s;
int ans;

while(1){
printf("input a:"); scanf("%lf", &a);
printf("input b:"); scanf("%lf", &b);
printf("input c:"); scanf("%lf", &c);
printf("input d:"); scanf("%lf", &d);
printf("input e:"); scanf("%lf", &e);
printf("input f:"); scanf("%lf", &f);
printf("input g:"); scanf("%lf", &g);

s1=area(a,b,c);
s2=area(b,d,e);
s3=area(e,f,g);
s=s1+s2+s3;

printf("五角形の面積は%10.2f\n",s);
printf("続けますか?(yes = 0 / no = 1):");
scanf("%d", &ans);
if (ans == 1) break;
putchar('\n');
}
return 0;
}
0510デフォルトの名無しさんNGNG
これって真面目にやると奥が深いねぇ。
長さが不適切だとsqrt()でエラーになるとか、
通常、対角線が得られていることは少ないだろうから寧ろ座標を入れた方がいいとか、
どっちみちヘロンの公式を単純に利用したんじゃ凹五角形に対応できないとか…
それにしても、bとeを対角線にしているってのもわかりにくいね。
  a
 _ f
c|/|>
  ̄ g
  d
こんな感じか。
0511デフォルトの名無しさんNGNG
#include <cassert>
#include <iostream>
using namespace std;
class Set{

public:
Set() : size(0) {} // Default constructor.
Set(int data0[], int size0); // Initializing constructor.

bool has( int ) const; // membership checker
void join( int ); // membership maker -- union with one more int.
void assign( const Set& ); // assignment

friend Set setIntersect(const Set&, const Set&);
friend Set setUnion(const Set&, const Set&);

void get( istream& ); // stream input
void put( ostream& ) const; // stream output

private:
static const int MAX_SIZE = 20;
int data[ MAX_SIZE ];
int size;
};
0512デフォルトの名無しさんNGNG
bool Set::has( int value ) const {
bool answer = false;
for (int i=0; i< size && !answer; ++i)
if (data[i] == value )
answer = true;
return answer;
}

void Set::join( int value ) { // Corrected 10:15am 2/20/03
if ( size < MAX_SIZE ){
if ( !has(value) )
data[size++] = value ;
}
else
cerr << "Error in Set::join(): "
<< "storage size limit exceeded.\n";
}

void Set::assign( const Set& rhs ){ // assignment
size = rhs.size;
for (int i = 0; i < size; ++i)
data[i] = rhs.data[i];
}
0513デフォルトの名無しさんNGNG
void Set::get( istream& is ){
is >> size;
if ( size > 0 && size <= MAX_SIZE ){
for (int i = 0; i < size; ++i)
is >> data[i];
}
else
cerr << "Set::get() input error: set size out of range.\n";
}

void Set::put( ostream& os ) const { // Note: not symmetric w.r.t. get().
for (int i = 0; i < size; ++i)
os << data[i] << " ";
}

Set setIntersect(const Set& A, const Set& B){
// Quadratic-time solution for unsorted sets
Set C;
for (int i = 0; i < A.size; ++i)
if (B.has( A.data[i] ))
C.join( A.data[i] );
return C;
}
0514デフォルトの名無しさんNGNG
void menu(){
cout << "Enter \n"
<< " E to ENTER set A or set B by keyboard input \n"
<< " V to VIEW all sets \n"
<< " R to REPLACE a set \n"
<< " I to find the INTERSECTION of A and B \n"
<< " U to find the UNION of A and B \n"
<< " Q to QUIT \n" << endl;
}
0515デフォルトの名無しさんNGNG
void prompt() { cout << "\nEVRIUQ > "; }

int main(){
Set A,B,C;
menu();
char ch;
do{
prompt();
cin >> ch;
switch (ch){
case 'e': case 'E': {
cout << "A or B? ";
cin >> ch;
if (ch == 'A') A.get(cin);
else if (ch == 'B') B.get(cin);
break;
}
case 'v': case 'V':
cout << " A = "; A.put(cout); cout << endl;
cout << " B = "; B.put(cout); cout << endl;
cout << " C = "; C.put(cout); cout << endl;
case 'i': case 'I':
C.assign( setIntersect(A, B) );
}
} while (ch != 'q' && ch != 'Q' );
return 0;
}
0516デフォルトの名無しさんNGNG
どなたか助けて下さい

問一 (Cで)
キーボードから入力した整数型の配列とその配列の要素数を引数として取り、最大の要素に対応する添え字を
返す関数及びプログラムを作成せよ。ただし、最大の要素が複数ある場合には、一番小さい値の添え字を、
又、この関数の配列としの要素数として1未満の数が渡された場合には、-1を返すようにせよ。

例1         例2
1          4
3          2
5          3
2          4

結果=2        結果=1

問二
問一で作られたプログラムの考え方(アルゴリズム、方針)を説明せよ。

問二は板違いかもしれないので強くは要求しません。
よろしくお願いします。
0517デフォルトの名無しさんNGNG
私達は弱くても要求されません
0518デフォルトの名無しさんNGNG
setUnion(...) functionをthe fixed-length-array versionで作れってことなんだけど、
クラスって難しい。。。
助けてください。
0519デフォルトの名無しさんNGNG
要求されたくありません
0520デフォルトの名無しさんNGNG
>>510
曙が袋叩き
0521デフォルトの名無しさんNGNG
>>285
作りかけですが
http://up.isp.2ch.net/up/26d00e8c732d.zip
0522505NGNG
答えてくださった皆様ありがとうございました!
無事に解決しましたー。

これからはこのスレで答える側になれるようがんばりたいと思います。
本当にありがとうございました。
0523デフォルトの名無しさんNGNG
>>522
当分それは無理そうだから、いらん事は書かなくていいよ。
0524デフォルトの名無しさんNGNG
>>516
# include <limits.h>
# include <stdio.h>
# include <stdlib.h>
int min_index_of_max(int array[], int size) {
    int max = INT_MIN;
    int ret;
    int i;
    if(size < 1) return -1;
    for(i = 0; i < size; i++)
        if(array[i] > max) {
            max = array[i];
            ret = i;
        }
    return ret;
}
int main(void) {
    int size = 0;
    int capacity = 10;
    int *data = (int *)malloc(sizeof(int) * capacity);
    int state;
    for(state = scanf("%d", data); state != -1 && state != 0; state = scanf("%d", data + size)) {
        size++;
        if(size == capacity) {
            capacity *= 2;
            data = (int *)realloc(data, sizeof(int) * capacity);
        }
    }
    printf("\n結果:%d\n", min_index_of_max(data, size));
    free(data);
    return 0;
}
0525デフォルトの名無しさんNGNG
C宿題とJava宿題比べるとC宿題スレはなんでこんなにレベルが低いのですか?
0526デフォルトの名無しさんNGNG
>>516
こんなのでいいのかな。もし間違ってたらゴメン。(例2の結果が正解がよくわからないけど。)

#include <stdio.h>

int func(const int x[], int num){
int i, temp, ans = 0;
temp = x[0];

if (num < 1) return -1;

for (i = 1; i < num - 1; i++){
if (temp < x[i]){
ans = i;
}
}
return ans;
}

int main(){
int i, ans;
int array[4];

for (i = 0; i < 4; i++){
scanf("%d", &array[i]);
}

/* 第2引数(要素数)を0にした場合、-1が返ってくる */
ans = func(array, 4);
printf("結果=%d\n", ans);
return 0;
}
0527526NGNG
被ってしまった
526は無かった事に
0528デフォルトの名無しさんNGNG
>>523
あなたもな。そして俺も。
0529デフォルトの名無しさんNGNG
>>528
さらに俺も。
0530デフォルトの名無しさんNGNG
俺はとてもこのスレで答える実力はないが、無理してデタラメな解答を
書いて、出題者を困らせてみようと思う。皆さんよろしく。
0531デフォルトの名無しさんNGNG
(display "俺はとてもこのスレで答える実力はないが、無理してデタラメな解答を書いて、出題者を困らせてみようと思う。皆さんよろしく。")
0532511-515,518NGNG
今、必死こいてやってんだけど、・・・。
誰か助けてちょ。m(_ _)m
0533デフォルトの名無しさんNGNG
LisperかSchemerか知らんがどっか行け
0534デフォルトの名無しさんNGNG
<algorithm>のstd::set_union()を使うか、そのソースを参考にしなされ。
0535ハッシュ法1NGNG
ハッシュ法を作成しています。
1000から2000個程のデータをハッシュ表に格納して衝突回数を調査するという課題を行っているのですが、
データ総数によってエラーが出てしまい、どうしようもなく困っています。
データが100程度ならなんとか、オペランドエラーが出なくなりますが、
総数を多くすると、エラーが出現します。
下にプログラムを貼り付けますので、良くない所をどんどん指摘、御教授
下さい。宜しくお願い致します。

エラー画面:行番号134:初期値エラー
      行番号136:'!='の演算項が不当
      行番号70:'='の左辺値オペランドが不当
ハッシュ表に格納するデータは[数字 文字列]がランダムに格納されているもので、データ総数は1000程度です。
環境はWindows Me、Ultra-C Pro2を使用しています。
0536ハッシュ法2NGNG
データ例:
978 rejoice
743 duplicate
205 lantern
254 shed
631 chop
93 livestock
918 network
380 milestone
239 advocate
212 visibility
88 label
489 sociobiology
251 cram
932 synchronize
187 interconnect
0537ハッシュ法2NGNG
<pre>/* ハッシュ法 */
/* ハッシュ関数:除算法(division method) */

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define HashSize 150 /*ハッシュ表サイズ*/
#define NameSize 20
#define TableSize 150

/*--ハッシュ表に格納するデータの構造体--*/
typedef struct cell{
int number;
char name[NameSize];
struct cell *next;
} Data;
0538ハッシュ法3NGNG

Data *hashtable[HashSize]; /*ハッシュ表*/
FILE *fp;

void MakeHashTable(void);
void Chaining(Data *, unsigned int);
unsigned int Hash(char *);
void PrintHash(void);
void PrintHashBunsan(void);
void Free(void);
0539ハッシュ法4NGNG
int main(void)
{
MakeHashTable();
PrintHash();
PrintHashBunsan();
Free();
fclose(fp);
return(0);
}
0540ハッシュ法4NGNG
void MakeHashTable()
{
Data *temp;
int i;
for(i=0; i<HashSize; i++)
hashtable[i]=NULL;
if((fp=fopen("word.txt", "r"))==NULL){
printf("エラー\n");
exit(1);
}
for(;;){
temp=(Data *)malloc(sizeof(Data));
if(fscanf(fp, "%d", &temp->number)!=EOF){
fscanf(fp, "%s", temp->name);
temp->next=NULL;
Chaining(temp, Hash(temp->name));
free(temp);
}
else{
free(temp);
break;
}
}
}
0541ハッシュ法5NGNG
void Chaining(Data *temp, unsigned int f)
{
Data *s;
if(hashtable[f]==NULL){
hashtable[f]=(Data *)malloc(sizeof(Data));
*hashtable[f]=*temp;
}
else{
s=hashtable[f];
while(s->next)
s=s->next;
s->next=(Data *)malloc(sizeof(Data));
*s->next=*temp;
s->next->next=NULL;
}
}

/*--ハッシュ関数:除算法(division method)--*/
unsigned int Hash(char *buf)
{
unsigned int value;
for(value=0; *buf!='\0'; buf++)
value=*buf+value*11;
return value%HashSize; /*valueをHashSizeで割った剰余(valueとHashSizeは整数でなければならない)*/
}
0542ハッシュ法4NGNG
void Chaining(Data *temp, unsigned int f)
{
Data *s;
if(hashtable[f]==NULL){
hashtable[f]=(Data *)malloc(sizeof(Data));
*hashtable[f]=*temp;
}
else{
s=hashtable[f];
while(s->next)
s=s->next;
s->next=(Data *)malloc(sizeof(Data));
*s->next=*temp;
s->next->next=NULL;
}
}

/*--ハッシュ関数:除算法(division method)--*/
unsigned int Hash(char *buf)
{
unsigned int value;
for(value=0; *buf!='\0'; buf++)
value=*buf+value*11;
return value%HashSize; /*valueをHashSizeで割った剰余(valueとHashSizeは整数でなければならない)*/
}
0543ハッシュ法4NGNG
/*--ハッシュ表中の全データを表示--*/
void PrintHash(void)
{
Data *s;
int i;
for(i=0; i<HashSize; i++){
printf("[%d]\t", i);
s=hashtable[i];
while(s){
printf("%4d %-16s\t -> ", s->number, s->name);
s=s->next;
}
printf("(NULL)\n");
}
}

/*--ハッシュ表のクリーンアップ--*/
void Free(void)
{
int i;
Data *s, *t;
for(i=0; i<HashSize; i++){
s=hashtable[i];
while(s){
t=s->next;
free(s);
s=t;
}
}
}
0544ハッシュ法4NGNG
/*--ハッシュ表中の全データを表示--*/
void PrintHash(void)
{
Data *s;
int i;
for(i=0; i<HashSize; i++){
printf("[%d]\t", i);
s=hashtable[i];
while(s){
printf("%4d %-16s\t -> ", s->number, s->name);
s=s->next;
}
printf("(NULL)\n");
}
}
0545ハッシュ法5NGNG
void PrintHashBunsan(void)
{
int i, total=0;
int table[TableSize];

for(i=0; i<TableSize; i++)
table[i]=0;
for(i=0; i<HashSize; i++){
Data *ptr=hashtable[i];
int n=0;
if(*ptr!=NULL){
for(; *ptr!=NULL; *ptr=*ptr->next)
n++;
}
total+=n;
if(n<TableSize){
table[n]++;
}
else{
fprintf(stderr, "table size error%d\n", n);
}
}
for(i=0; i<TableSize; i++){
if(!(i%8))
putchar('\n');
printf("%3d:%3d", i, table[i]);
}
printf("\n 合計 %d 個\n", total);
}


</pre>
0546デフォルトの名無しさんNGNG
Cでこの課題のプログラム作ってくださいm(__)m
英語の文章に出現する単語の中で、文字数が最も多い単語を出力して終了するプログラムを作成せよ。
入力データには英文字、スペースのみが含まれているものとし、単語とはスペースで区切られた連続する英文字の列とする。
文章の文字数は80文字以下で、一つの単語の文字数は32文字以下とする。
最長の文字数を持つ単語は文中にただ一つだけ存在するものとする。
0547ハッシュ法5NGNG
以上です。至らないところがあったら、申し訳ありません。
0548デフォルトの名無しさんNGNG
>>547
貼ったのはご苦労だが>>372のアップローダも使え。
すぐ消えちまうが、ファイル全体を貼れるはず。
どれがエラー行かわかんねーよ。




0549516NGNG
>>524
>>526

図々しい問題にも関わらず答えて頂いたおかげで、無事課題を終わらせる事が出来ました。
物凄く助かりました。本当にありがとうございました。
0550ハッシュ法5NGNG
ハッシュ法プログラムをアップロードしました。
改行が出来なくてすいません
0551ハッシュ法5NGNG
ttp://up.isp.2ch.net/upload/c=03okari/index.cgi
です。
0552デフォルトの名無しさんNGNG
>>551
嫌がらせかw
0553ハッシュ法5NGNG
ごめんなさい。
ちゃんと改行できたやつを、アップロードしました。
0554デフォルトの名無しさんNGNG
助けてください。
OSはUNIXでc言語でお願いします。期日は早めでお願いします。
1.c言語を用いてスロットマシーンをつくってください。
2.構造体利用を用いたプログラムをつくって下さい。
以上の二つです。
0555デフォルトの名無しさんNGNG
>>553
CodeGuardかけたら実行時エラー出るぞ。fscanf()の使い方がおかしいらしい。
word.txtは>>536のをそのまま使った。

Error 00001. 0x820000 (スレッド 0x0C50):
Function failure:
関数呼び出し:
fscanf(0x004108EC, 0x004100B7 ["%d"], ...)=0x0 [0]

呼び出し履歴:
0x00401318(=hash1.exe:0x01:000318) hash1.c#51
0x0040123D(=hash1.exe:0x01:00023D) hash1.c#31
0x0040D14A(=hash1.exe:0x01:00C14A)

------------------------------------------
Error 00002. 0x100400 (スレッド 0x0C50):
不正なメモリの アクセス : アドレス 0x00000000 から 128
バイトを参照しました。.
呼び出し履歴:
0x00401719(=hash1.exe:0x01:000719) hash1.c#132
0x00401247(=hash1.exe:0x01:000247) hash1.c#33
0x0040D14A(=hash1.exe:0x01:00C14A)

------------------------------------------
Error 00003. 0x400000 (スレッド 0x0C50):
Exception 0xC0000005: Access violation at 0x0.
呼び出し履歴:
0x0040172F(=hash1.exe:0x01:00072F) hash1.c#132
0x00401247(=hash1.exe:0x01:000247) hash1.c#33
0x0040D14A(=hash1.exe:0x01:00C14A)

------------------------------------------
0556デフォルトの名無しさんNGNG
>>554
>期日は早めでお願いします。
うざwww
0557デフォルトの名無しさんNGNG
いや、fscanf()が失敗しているのは正常なのか。
何だろこの不正なメモリのアクセスってのは。
多分malloc()で確保してないメモリアドレスでもアクセスしてるんじゃない?
0558デフォルトの名無しさんNGNG
>>554
マルチ氏ね
0559デフォルトの名無しさんNGNG
助けてください。
OSはUNIXでc言語でお願いします。期日は早めでお願いします。
1.c言語を用いてスロットマシーンをつくってください。
2.構造体利用を用いたプログラムをつくって下さい。
以上の二つです。
0560デフォルトの名無しさんNGNG
助けてください。
OSはUNIXでc言語でお願いします。期日は早めでお願いします。
1.c言語を用いてスロットマシーンをつくってください。
2.構造体利用を用いたプログラムをつくって下さい。
以上の二つです。

いい加減にお前ら答え書かんかい!ヴォケ。
0561デフォルトの名無しさんNGNG
int main()
{
  struct baka{
    int shit;
  } foolish;
  foolish.shit = 0;

  return foolish.sit;
}
0562560NGNG
>>561
ああ?そんな答えで俺が満足するとでも思ってるんかい?
0563デフォルトの名無しさんNGNG
この季節になると年度末の課題をぎりぎりになって提出しようとする
アフォが増えて困る。
0564デフォルトの名無しさんNGNG
なんか他スレでも同じの見ちゃったよ
0565デフォルトの名無しさんNGNG
課題を作成する途中で詰まったので先達や識者の知恵をお借りしようかと思います。
※ C++ 
※ 構造体使用不可とのこと

学生3人の国語・英語・数学のそれぞれのテストの点数を読み込んで
1:学生個人の平均点
2:科目の平均点
3:評価(平均80以上:A 60以上80未満:B 60未満:C)
を計算する。
そのうえで、以下のように表として表示せよ。

氏名     国語   英語   数学   平均点   評価 
-------------------------------------------------
 

-------------------------------------------------
科目平均

といった問題です。

力技での表示はできたのですが、自分で関数を設定したり多次元配列などを使ったりして
ソースをよりスマートにするにはどうしたらよいでしょうか?
#defineで最初に学生の人数や科目数を設定し、汎用性をもたせるように、とも言われました。

お願いします。
0566デフォルトの名無しさんNGNG
課題を作成する途中で詰まったので先達や識者の知恵をお借りしようかと思います。
※ C++ 
※ 構造体使用不可とのこと

学生3人の国語・英語・数学のそれぞれのテストの点数を読み込んで
1:学生個人の平均点
2:科目の平均点
3:評価(平均80以上:A 60以上80未満:B 60未満:C)
を計算する。
そのうえで、以下のように表として表示せよ。

氏名     国語   英語   数学   平均点   評価 
-------------------------------------------------
 

-------------------------------------------------
科目平均

といった問題です。

力技での表示はできたのですが、自分で関数を設定したり多次元配列などを使ったりして
ソースをよりスマートにするにはどうしたらよいでしょうか?
#defineで最初に学生の人数や科目数を設定し、汎用性をもたせるように、とも言われました。

お願いします。
0567デフォルトの名無しさんNGNG
課題を作成する途中で詰まったので先達や識者の知恵をお借りしようかと思います。
※ C++ 
※ 構造体使用不可とのこと

学生3人の国語・英語・数学のそれぞれのテストの点数を読み込んで
1:学生個人の平均点
2:科目の平均点
3:評価(平均80以上:A 60以上80未満:B 60未満:C)
を計算する。
そのうえで、以下のように表として表示せよ。

氏名     国語   英語   数学   平均点   評価 
-------------------------------------------------
 

-------------------------------------------------
科目平均

といった問題です。

力技での表示はできたのですが、自分で関数を設定したり多次元配列などを使ったりして
ソースをよりスマートにするにはどうしたらよいでしょうか?
#defineで最初に学生の人数や科目数を設定し、汎用性をもたせるように、とも言われました。

お願いします。
0568デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct UNCO{
int money;
int wwwww;
}kuso;

void xxx(void){
puts("キタ━━━━(゚∀゚)━━━━!!"); getchar();
puts("     ∧_∧ ミ ギャーッハッハッハッ!");
puts(" o/⌒(. ;´∀`)つ");
puts("  と_)__つノ  ☆ バンバン "); getchar();
}
0569デフォルトの名無しさんNGNG
助けてください。
OSはUNIXでc言語でお願いします。期日は早めでお願いします。
1.c言語を用いてスロットマシーンをつくってください。
2.構造体利用を用いたプログラムをつくって下さい。
以上の二つです。
0570デフォルトの名無しさんNGNG
main(){
int a,b,c;
kuso.money = 100; kuso.wwwww = 0;
srand(time(0));
while(kuso.money > 0){
kuso.money -= 10;
printf("money:%d (・∀・):%d\n", kuso.money, kuso.wwwww);
if (rand() % 10 == 0){
a = 7; b = 7; c = 7;
} else {
a = rand()%9+1; b = rand()%9+1; c = rand()%9+1;
}
getchar(); printf("1つ目は〜?www→ %d ",a);
getchar(); printf("2つ目は〜?www→ %d ",b);
if (a == b){
printf("あたるかもよ〜すごいねえwwww");
}
getchar(); printf("3つ目は〜?www→ %d\n",c);
if (a == b && b == c){
xxx();
kuso.money += 100; kuso.wwwww++;
} else {
puts("うんこ!!!!!\n\n");
}
}
puts("へたくそやめれ");
return 0;
}
0571デフォルトの名無しさんNGNG
課題を作成する途中で詰まったので先達や識者の知恵をお借りしようかと思います。
※ C++ 
※ 構造体使用不可とのこと

学生3人の国語・英語・数学のそれぞれのテストの点数を読み込んで
1:学生個人の平均点
2:科目の平均点
3:評価(平均80以上:A 60以上80未満:B 60未満:C)
を計算する。
そのうえで、以下のように表として表示せよ。

氏名     国語   英語   数学   平均点   評価 
-------------------------------------------------
 

-------------------------------------------------
科目平均

といった問題です。

力技での表示はできたのですが、自分で関数を設定したり多次元配列などを使ったりして
ソースをよりスマートにするにはどうしたらよいでしょうか?
#defineで最初に学生の人数や科目数を設定し、汎用性をもたせるように、とも言われました。

お願いします。
0572デフォルトの名無しさんNGNG
多重してしまいました。申し訳ない
0573デフォルトの名無しさんNGNG
課題を作成する途中で詰まったので先達や識者の知恵をお借りしようかと思います。
※ C++ 
※ 構造体使用不可とのこと

学生3人の国語・英語・数学のそれぞれのテストの点数を読み込んで
1:学生個人の平均点
2:科目の平均点
3:評価(平均80以上:A 60以上80未満:B 60未満:C)
を計算する。
そのうえで、以下のように表として表示せよ。

氏名     国語   英語   数学   平均点   評価 
-------------------------------------------------
 

-------------------------------------------------
科目平均

といった問題です。

力技での表示はできたのですが、自分で関数を設定したり多次元配列などを使ったりして
ソースをよりスマートにするにはどうしたらよいでしょうか?
#defineで最初に学生の人数や科目数を設定し、汎用性をもたせるように、とも言われました。

お願いします。
0574デフォルトの名無しさんNGNG
>>573
うざいよ。何回もポストするな。
0575デフォルトの名無しさんNGNG
オシエテクン養成してるあんたらの方がよっぽど鬱陶しいんだよ
0576デフォルトの名無しさんNGNG
>>575
そう思うならこのスレ読まなきゃいいのに( ´゚д゚`)
0577デフォルトの名無しさんNGNG
頭文字を読み込み、与えられた名前の中からその頭文字を含む名前を表示せよ。
なければそのむね表示せよ。


という問題で、下記のようにプログラムを書いたところ、Eを入力すると、
Eluza Eandy Emy Enn
と表示されてしまいました・・・
考えても解りませんでした、教えてくださいm(- -)m




#include <stdio.h>
int main(void)
{
static char *name[]={"Eluza","Candy","Emy","Ann"};
int i,j;

printf("input initial\n");

j=getchar();

for (i=0;i<4;i++)
if(name[i][0]=j)
printf("%s\n",name[i]);
else
printf("no name\n");

}
0578デフォルトの名無しさんNGNG
>>577
if(name[i][0]==j)
0579577NGNG
>>578
凡ミスでした…THX
しかしこんどは

Eluza
no name
Emy
no name

と表示されてしまいました
分岐の仕方がわかりません・・・
0580367NGNG
>>370氏
ハイパーデンジャラス・レインボー亀レスですが、助かりました…
お礼を言うのが遅くなって申し訳ありませんでした。
0581デフォルトの名無しさんNGNG
>>579

#include <stdio.h>

int main(void)
{
static char *name[]={"Eluza", "Candy", "Emy", "Ann"};
int i, j, flag = 0;

printf("input initial\n");

j = getchar();

for (i = 0; i < 4; i++)
if (name[i][0] == j) {
printf("%s\n", name[i]);
flag = 1;
}

if (flag == 0)
printf("no name\n");
return 0;
}
0582デフォルトの名無しさんNGNG
{
sw=0;
if(name[i][0]==j)
{
printf("%s\n",name[i]);
sw=1;
}
}
if(sw==0)
...
0583デフォルトの名無しさんNGNG
2分半も遅かった
0584デフォルトの名無しさんNGNG
>自分で関数を設定したり多次元配列などを使ったりしてソースをよりスマートにするにはどうしたらよいでしょうか?
一般的には「リファクタリング」
0585デフォルトの名無しさんNGNG
>#defineで最初に学生の人数や科目数を設定し、汎用性をもたせる

汎用性、か?(保守性でねーの?)
0586デフォルトの名無しさんNGNG
istream& getline(istream& ins, string& strVar);
っていう関数が、いまいち良くわかんないんですけど、
istreamをデータタイプみたいに、書いて、このinsって何?
0587ポインタ初心者NGNG
#include <stdio.h>
void main(void)
{
int a[10]={38, 52, 16, 45, 73,
97, 63, 25, 81, 68};/* 配列変数a の型宣言*/
void disp_data(int, int*); /*関数disp_data()の型宣言*/
disp_data(10, a);
}
/* 配列データを画面に表示する関数*/
void disp_data(int len,int *c)
{
int i;
for(i=0; i<len; i++)
printf("c+%d=%d *(c+%d)=%d c[%d]=%d\n",i,c+i,i,*(c+i),i,c[i]);
}
このプログラムを実行し,どんな形で呼び出し側と関数側の間で配列データを
やり取りしているのかを説明してください!
呼び出し側      関数側
  10      -->   len(配列データの数)
  a(先頭番地) -->   c (ポインタ型変数)
となっているのでしょうか?説明して下さい!
0588デフォルトの名無しさんNGNG
>>586
insは仮引数名。
getline自体はこんな感じで使う。
#include <iostream>
#include <string>
using namespace std;
int main()
{
  string str;
  getline(cin, str);
  cout << str << endl;
}
0589デフォルトの名無しさんNGNG
getline は分かるんだけど、このistreamをデータタイプのように使ってるのってどういうわけかなってわかんなくて。
0590デフォルトの名無しさんNGNG
ウィンドウを作成して、リサイズできるようにするには
どうしたらいいでしょうか?
0591デフォルトの名無しさんNGNG
マルチでアウト!
0592デフォルトの名無しさんNGNG
>>589
istreamはデータ型だ。insはistreamへの参照型となる。
0593デフォルトの名無しさんNGNG
>>589
もしかしたらstd::istreamではなくてstd::ifstreamかもしれんし、std::istringstream
かもしれん。
0594デフォルトの名無しさんNGNG
C言語で、ファイルから英文を読み込み単語とその数を表示するプログラムを作ります。

出力例

Output:Word [frequency]
in [1]
a [3]
program [1]
of [1]
.
.
.
.
End

お願いします。
0595594NGNG
>>594
cygwinを使います。
0596デフォルトの名無しさんNGNG
>>594-595
そうなんですか。
0597从*・ 。.・) ◆SayuminPM. NGNG
>>594 かってに cygwin つかっててね
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct Word { char* word; int count; struct Word* left, * right; };
struct Word* push_word(char* str, struct Word* node) {
int cond;
if (node == NULL) {
node = (struct Word*) malloc(sizeof(struct Word));
node->word = strdup(str); node->count = 1;
node->left = node->right = NULL;
}
else if ((cond = strcmp(str, node->word)) == 0) { (node->count)++; }
else if (cond < 0) { node->left = push_word(str, node->left); }
else { node->right = push_word(str, node->right); }
return node;
}
void print_all(struct Word* node) {
if (node) {
print_all(node->left);
printf("%s [%d]\n", node->word, node->count);
print_all(node->right);
}
}
int main(void) {
char buf[20]; struct Word* t = NULL; FILE* fp = fopen("hoge.txt", "r");
while (fscanf(fp, "%20s", buf) > 0) { t = push_word(buf, t); }
printf("Output:Word [frequency]\n"); print_all(t); printf("End\n");
return 0;
}
0598デフォルトの名無しさんNGNG
ひたすら1行で済ませようとする香具師だな
単なる嫌がらせか、これが>>597のコーディングスタイルなのか…
0599597NGNG
>>598
(´・ω・`)ショボーン
改行大杉で投稿できなかったから...
そんなこと言わなくてもぉ
0600594NGNG
>>597
ひでえな。これを俺にコンパイルしろと?
0601デフォルトの名無しさんNGNG
>>600
> ひでえな。これを俺にコンパイルしろと?

コンパイラがコンパイルするんじゃ?
0602デフォルトの名無しさんNGNG
>>601
言葉の綾は正直ツマラン
0603デフォルトの名無しさんNGNG
5個の数字を入力して平均値・最大値・最小値をそれぞれ表示するプログラムを作れ
0604デフォルトの名無しさんNGNG
>>603
#include <stdio.h>
#define SIZE 5
int
main(void)
{
double A[SIZE], min, max, sum = 0;
int i;
for (i = 0; i < SIZE; i++) { scanf("%lf", A + i); }
for (min = max = A[0], i = 0; i < SIZE; i++) {
sum += A[i];
if (min > A[i]) { min = A[i]; }
if (max < A[i]) { max = A[i]; }
}
printf("%lf\n%lf\n%lf\n", sum / SIZE, max, min);
return 0;
}
0605デフォルトの名無しさんNGNG
>>604
min,maxが間違っていると思うのは俺だけか?
0606605NGNG
早とちりスマソ
0607デフォルトの名無しさんNGNG
UNIX上で、”ディレクトリを再帰的に調べ、引数と同名のファイルを探し、
発見したファイルの以下の情報を表示
・絶対パス
・getcnd
・realpath
・iノード番号
・アクセス許可情報
・割り当てられたブロック数
・最終ファイル更新時刻

コマンド引数は、1:ファイル名、2:ディレクトリ名、
無指定の場合はカレントディレクトリ”

という、課題が与えられました、情報を表示するのはできたのですが、ファイル等を
調べるのがわかりません。
また、それをつかって情報を表示する方法にもいきづまってしましました。
どなたか、アドバイスをください。お願いします。
0608名無し募集中。。。NGNG
>>607
#include <stdio.h>
#include <stdlib.h>

int
main(void)
{
if (system("echo マルチしね") < 0) { fprintf(stderr, "マルチしね\n"); }
return 0;
}
0609デフォルトの名無しさんNGNG
すみません。誠に失礼でしたが、1つ情報を付け忘れました。
言語はC言語です。
0610デフォルトの名無しさんNGNG
>>605
thx
0611デフォルトの名無しさんNGNG
3インデントがはやってるの?
0612デフォルトの名無しさんNGNG
>19
遅くなってすみま。
数理計画法のシンプレックス法を使うんじゃない?
0613デフォルトの名無しさんNGNG
お願いします。
・c++
・文字配列
・forではなくwhileを使用
・cout,cinを使用
の条件で
1、キーボードからアルファベットの文字列を入力し、
それが何文字か字数をカウントするプログラム。
例:キーボードからbookと入力したら4と表示させる。
2、キーボードから文字列を入力し、次に1字入力し、
その時が文字列の中にいくつあるかを求めるプログラム。
例:はじめにキーボードからbookと入力し、次にoと入力した場合、
oは2つなので2と表示させる。

お願いします。
0614デフォルトの名無しさんNGNG
>>604
8行目の
>{ scanf("%lf", A + i); }
は何を表しているのでしょうか?
0615デフォルトの名無しさんNGNG
>>613
1と2は別?
STL は使って良いの?
1はアルファベット以外の入力はあるの?ないの?考えなくて良いの?
0616デフォルトの名無しさんNGNG
>>614
A[i] と *(A + i)
は同じ
&A[i] と A + i
は同じ
0617デフォルトの名無しさんNGNG
>613
1.
string str;
cin >> str;
cout << str.length() << endl;
2.
string str;
char c;
cin >> str >> c;
cout << str.find(c)+1 << endl;

こんなんでいいか?
0618デフォルトの名無しさんNGNG
あっ


whileつかってねえ・・
0619デフォルトの名無しさんNGNG
> cout << str.find(c)+1 << endl;
( ゚д゚)ポカーン
0620デフォルトの名無しさんNGNG
string::size_typeはsize_tだから問題ないかと
0621デフォルトの名無しさんNGNG
y= 1(x>1) x(|x|≦1) -1(x<-1) 
の値を-5≦x≦5の範囲で0.1刻みで計算し、結果をファイルに出力する
プログラムを書け。

Cでお願いします。
for文3つ使ってfopen fcloseをつかうってのは分かるのですが・・・
0622デフォルトの名無しさんNGNG
>>621
#include <stdio.h>

double
f(double x)
{
return ((x > 1) ? 1 : ((x < -1) ? -1 : x));
}

int
main(void)
{
double x;
FILE* fp = fopen("out.txt", "w");
for (x = -5.0; x <= 5.0; x += 0.1) { fprintf(fp, "%.1lf %.1lf\n", x, f(x)); }
fclose(fp);
return 0;
}
0623デフォルトの名無しさんNGNG
>>613
その1。cout,cinはちゃんと使用しているからな。
#include <iostream>
#include <cstddef>
using std::cout;
using std::cin;
int main()
{
  char Buf[1024];
  cin >> Buf;
  std::size_t i = 0;
  while (Buf[i])
    i++;
  cout << i << std::endl;
  return 0;
}
0624デフォルトの名無しさんNGNG
>>623
YOU
using namespace std;
しちゃいなYO!
0625デフォルトの名無しさんNGNG
>>613
その2。条件は満たしているはずだ。
#include <iostream>
#include <cstddef>
using std::cout;
using std::cin;
int main()
{
  char Buf[1024];
  char ch;
  cin >> Buf >> ch;
  std::size_t i = 0, n = 0;
  while (Buf[i])
    if (Buf[i++] == ch)
      n++
  cout << n << std::endl;
  return 0;
}
0626デフォルトの名無しさんNGNG
>>624
だって「cin, coutを使用」ってはっきり書いてあるじゃん。
0627デフォルトの名無しさんNGNG
-5.0 から 0.1 きざみで足してるのに 0.0 を通過してくれません
0628デフォルトの名無しさんNGNG
>>627
あたりまえ
0629デフォルトの名無しさんNGNG
ヒロシです・・・
-5.0 から 0.1 きざみで足してるのに 0.0 を通過してくれません!
0630デフォルトの名無しさんNGNG
const int getHoge()

の
constって何の意味があるのでしょうか?
戻り値をconstにするよ、ってことなの?
0631デフォルトの名無しさんNGNG
>>630

getHoge() = 10;
↑こういうのを防止するため
0632デフォルトの名無しさんNGNG
実際のところ意味がない。int getHoge()に対してgetHoge() = 5;などと
しても意味がない。意味がないから出来なくしてしまおうと思えばconstを
付ければいい。だから「意味がない」と言う意味があるとも言えるかもしれない。
0633デフォルトの名無しさんNGNG
>>631
>>632
早速の解決方法ありがとうございます。

getHoge=10;

なんて、よっぽどのバカじゃないとやらないと思うなぁ・・・。
0634デフォルトの名無しさんNGNG
Meyers氏は「使えるところではconstを使え」と書いております
0635デフォルトの名無しさんNGNG
C言語です。

#define DADR0    (*((unsigned char*)0xfffff8))
#define DACR     (*((unsigned char*)0xfffffa))
#define MSTPCRH  (*((unsigned char*)0xffff86))

main()
{
     MSTPCRH&=0x3b;
     DACR=0xc0;
     DADR0=0xff;
}


D/A変換器によるアナログ出力電圧を以下の画像のような周期波形を発生させるには、
上のソースをどのように変更すればいいのでしょうか?

http://up.isp.2ch.net/up/3e4ded303767.jpg
0636デフォルトの名無しさんNGNG
2chのあぷろだはいつも繋がらないからやめて
0637613NGNG
>>615
1と2は別?
STL は使って良いの?
1はアルファベット以外の入力はあるの?ないの?考えなくて良いの?

えっと1、2は別物で、STLは聞いたことないんで使えません。
あと入力はアルファベットのみです。

説明足らずですみません。

作ってくれた方々ありがとうございます。
これからコンパイル&実行してみます。
0638635NGNG
すみません上げなおしました
ttp://49uper.com:8080/html/img-s/27242.jpg
0639デフォルトの名無しさんNGNG
>>635
http://pc5.2ch.net/test/read.cgi/tech/1099574832/
などでやったほうがいいぞ
あとCPUやボードの明細も書くように。
0640635NGNG
>>639
移動します。ありがとうございます
0641デフォルトの名無しさんNGNG
http://www.uploda.org/かhttp://www.fileup.org/にtxtでうpはどう?
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.htmlは
復活しなさそうだし。
0642デフォルトの名無しさんNGNG
どなたか>>587をどうかお願いします!
0643デフォルトの名無しさんNGNG
>>642
ま、大体君の書いた通り
0644デフォルトの名無しさんNGNG
>>273
法○大学の計算機プログの問題だな
以前作った素数プログをFor文で繰り返させればOKだぜ
ただし、1以下の条件を忘れるなよ

下4桁ってとこまで乗せんなよw
0645デフォルトの名無しさんNGNG
こんばんは
どこで聞いてもswapっての入れられちゃうんです。
一度配列を使ってしまい込んだ数(マクロ使えると(・∀・)イイ!!)の大小を比較して
大きい順に並べたいです。そのときC言語でFor文とIF文のみを用いて何とかならないですか?

for(i=0;i<n;i++) {
printf(“x[%d]?:”i);
scanf(“%d”,&x[i]);
}
これ以下がわかりません
IF文のみでは数が大きくなるととても大変です。
何とか助けてください。よろしくお願いします
0646645NGNG
x[i]=y[i]
とか置き換えて
for(j=i;j>0;j--){
  if(y[j]<y[j-1]){

とか考えてみたんですが、どういう関係になるのかわからず、
ソースを完成すらできませんでした。よろしくお願いします
0647デフォルトの名無しさんNGNG
swapのどこが悪い
0648645NGNG
授業で学習した範囲内でプログラムを書くということになっているので
まったく使用したことが無いswapを使うと便利かもしれないですがまずいんです
申し訳ありません
0649デフォルトの名無しさんNGNG
swapって文字を使わなければいいじゃん。
機能としては凄く単純で簡単な物なんだから。
0650645NGNG
#include <stdio.h>

int main(void){
int i, j, dat[5], tmp;

for (i = 0; i < 5; i++){
printf("整数を5つ入力してください。(%d つ目) : ", i+1);
scanf("%d", &dat[i]);
}

printf("入力された5つの数字は : ");
for (i = 0; i < 5; i++){
printf("%d ", dat[i]);
}
printf("\n ");

/* dat[0]〜dat[4] の内容を小さい順に並べ替える部分 */

printf("小さい順に並べ替えると : ");
for (i = 0; i < 5; i++){
printf("%d ", dat[i]);
}
printf("\n ");

  return 0;
}

では・・・
こういう問題だったら・・・
どう答えますか?
0651デフォルトの名無しさんNGNG
swap に swap 以外の名前を付けて欲しくないな
0652デフォルトの名無しさんNGNG
>>650
別に問題変わって無いじゃん?
swapの本質ってのは単なるデータの交換だよ?

交換無しにソートするのは非効率になると思うよ。
0653デフォルトの名無しさんNGNG
>>651
使えないって言ってるんだからしょうがないんじゃん?
名前変えるか、関数化しないで書くかの2択でしょ。
0654デフォルトの名無しさんNGNG
swap関数をmainに展開すれば終わりの話じゃないか…
0655645NGNG
>>654
どのようにすれば・・・
0656デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
static int sortNumsCB(const int* lhs, const int* rhs)
{
if (*lhs < *rhs) return -1;
if (*lhs > *rhs) return +1;
return 0;
}
int main(void)
{
int i, j, dat[5], tmp;
for (i = 0; i < 5; i++){
printf("整数を5つ入力してください。(%d つ目) : ", i+1);
scanf("%d", &dat[i]);
}
printf("入力された5つの数字は : ");
for (i = 0; i < 5; i++){
printf("%d ", dat[i]);
}
printf("\n ");

/* dat[0]〜dat[4] の内容を小さい順に並べ替える部分 */
qsort(dat, sizeof(dat) / sizeof(int), sizeof(int), sortNumsCB);

printf("小さい順に並べ替えると : ");
for (i = 0; i < 5; i++){
printf("%d ", dat[i]);
}
printf("\n ");

return 0;
}
0657645NGNG
_| ̄|○

説明まずいですかね・・・

0658デフォルトの名無しさんNGNG
ここに書いて、スレ更新して、読んで、また書いて・・・

こんな事してる時間があるならCの教科書でも読んで
自分で書いた方が自分のためにもなると思うんだがなぁ。
0659デフォルトの名無しさんNGNG
>>658
だからさーここはCやC++のスレを宿題で汚されないようにするための
スレであって、質問者のレベル向上のためじゃないんだってば
0660645NGNG
#include <stdio.h>

int main()
{
int i, j, tmp, buf[3];

for(i=0;i<3;i++){
for(j=i+1;j<3;j++){
if(buf[i] < buf[j]){
tmp = buf[i];
buf[i] = buf[j];
buf[j] = tmp;
}
}
}

for(i=0;i<3;i++)
printf("%d\n", buf[i]);

return 0;
}


tmp = buf[i];
buf[i] = buf[j];
buf[j] = tmp;
ここのところ解説してください・・・
0661デフォルトの名無しさんNGNG
実際には、ここの生徒が他のスレで暴れまわってるとしか思えない
機能してない隔離センターなんて、隔離対象を引き寄せてるだけ
0662デフォルトの名無しさんNGNG
>>660
buf[i]とbuf[j]の値を交換する
0663デフォルトの名無しさんNGNG
>>661
ならばどうしろと?
0664デフォルトの名無しさんNGNG
>>663
何もする必要無い。放置すればいい話。
0665デフォルトの名無しさんNGNG
その通り。教えるから次々を虫が湧く
0666デフォルトの名無しさんNGNG
もしあれならワシのロダ使ってくださいな
臨時でもいいので
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/l/imgboard.cgi
0667デフォルトの名無しさんNGNG
>>664
で?教えてクンが減るの?それで。
0668デフォルトの名無しさんNGNG
教えたら減るとでも言いたいのか?
0669デフォルトの名無しさんNGNG
>>667
一時的に増える時期ってのはありそうだよね。
授業単元でプログラミングが出た時とか。

でもそれを乗り切れば、また減ると思う。
sin関数みたいな感じになるんじゃないかな。
0670デフォルトの名無しさんNGNG
教えがり君の出方次第だな
必ず、我慢できずに教えまくる奴いるから
0671デフォルトの名無しさんNGNG
このスレの何が不満なんだ
0672デフォルトの名無しさんNGNG
てか素直に言うと、今までプログラム言語なんて全部自学でなんにも
困ったことないんで、このスレ自体が教えたがり君
0673660NGNG
どうもありがとうございました
交換ってところが少しの見込めませんが眺めてみて理解してみます
0674デフォルトの名無しさんNGNG
>>672
このスレ自体が教えたがり君なのが何?どうしたいんだ?
お前は何が言いたい?
0675デフォルトの名無しさんNGNG
>>674
オマエが馴れ合いあたりで宿題スレを運用しろよ
0676デフォルトの名無しさんNGNG
このスレ自体が教えたがり君
ってのが言いたいだけだろ?
日本語読めてんのか?
0677デフォルトの名無しさんNGNG
>>675
ではあんたがここの削除依頼を出し、通った後にそちらに立ててくれ
0678デフォルトの名無しさんNGNG
>>674
お前は何が言いたいんだよ?
0679デフォルトの名無しさんNGNG
>>676
だから何だと聞いている
0680デフォルトの名無しさんNGNG
一から十まで全部言わなきゃわかんねーの?

このスレ自体が教えたがり君
↓
スレにむらがる虫常時湧く
↓
他のスレにも沸きまくり
↓
結局>>659は達成されていない

主観もはいってるだろうけどな
とりあえず一から五ぐらいまで説明したぞ
0681デフォルトの名無しさんNGNG
>>679
>>676
お前知障か?
0682デフォルトの名無しさんNGNG
>>680
その根拠は?
0683デフォルトの名無しさんNGNG
どういうスレにしたいのさ?
0684デフォルトの名無しさんNGNG
そろそろム板にもIDが欲しいと思わん?
0685デフォルトの名無しさんNGNG
ム板といわず全板に付ければいいとは思うが板違いだな
0686デフォルトの名無しさんNGNG
データ点の個数が2の べき乗 の場合に FFT を行うプログラムの作成。
C言語。入出力配列以外に用いる配列の記憶容量が最小になるようにすること。
だそうです。あまり期待してませんがよろしくお願いします。
0687デフォルトの名無しさんNGNG
>>686
放置します。
0688デフォルトの名無しさんNGNG
2時間かんがえた末の煽りか
0689デフォルトの名無しさんNGNG
興味アル方メールください

業務内容
サーバ・アプリケーションの設計・開発・運用・保守管理などの業務に取り組んでいただきます。
資 格
学歴不問25〜40歳位迄、下記項目中2項目以上の経験者が望ましい。


Java開発経験者(Tomcat等のJakarta Projectを利用した開発)
DB開発運用経験者(Oracle,PL/SQL,Pro*C,MySQL,PostgreSQLを利用した大規模DBの運用・開発経験者)
Linuxサーバの構築・運用経験者(bind,sendmail,qmail,ネットワーク一般、セキュリティ設定等)
システム開発プロジェクトマネージャー経験者


勤務地
東京都渋谷区
0690デフォルトの名無しさんNGNG
#typedef multimap<int ,string , less<int> > MMAP;
typedef MMAP::value_type Mvalue;
ostream& operator<<(ostream& os, const Mvalue& p){
os << p.second ;
return os;
}

main() {

MMAP m;
string a;
while(getline(cin,a)){

if( a.size()!=1)
m.insert(Mvalue(a.size(),a));

}
for(MMAP::iterator i=m.begin(),end=m.end(); i!=end; i++){
cout << *i << endl;

}
}

このプログラムの 入出力のしかた
            データ構造について
            整列の方法について
よろしくお願いします。
0691デフォルトの名無しさんNGNG
入出力の仕方:getline()で1行ずつ読む
データ構造:マルチマップ
整列の方法:挿入法
0692690NGNG
>>691
どうもありがとうございました。
0693デフォルトの名無しさんNGNG
Dateっていうクラスがあって、

ostream& operator << (ostream& os, const Date& d){
os << d.month << d.day << d.year;
return 0;
}

この関数もあるわけなんだけど、このostreamをintとかvoidみたいに使っているのが
いまいち、よくわからないんです。
osっていうのが、ファイルだから、それを受け渡しするときに使うってこと?
でも、なんでosをreturnする必要あるんですか?
ファイルは、存在するわけだから、またメインなり、どこかで、開けばいいんじゃないんですか?
0694デフォルトの名無しさんNGNG
>>693
マルチウザイ
0695デフォルトの名無しさんNGNG
>なんでosをreturnする必要あるんですか?

return 0;
0696デフォルトの名無しさんNGNG
>>659
>だからさーここはCやC++のスレを宿題で汚されないようにするための
>スレであって、質問者のレベル向上のためじゃないんだってば

CやC++のスレがとてもまともとは思えんが
0697デフォルトの名無しさんNGNG
>>661
>機能してない隔離センターなんて、隔離対象を引き寄せてるだけ

それは機能しているって言わないか?
0698デフォルトの名無しさんNGNG
>>693
os << yesterday << today << tomorrow << ...
0699デフォルトの名無しさんNGNG
Visual C++

#include <stdio.h>/* 入出力を使うためのおまじない */
#include <string.h>/* 文字列を操作する関数を使うためのおまじない */
#include <stdlib.h>/* 乱数を使うためのおまじない */
#include <time.h>/* 時刻を使うためのおまじない */
void main()
{
char alphabets[100];/* アルファベット全体を入れる配列 */
char challenge[100];/* 打ち込む文字列 */
char input[100];/* 打ち込んだ文字列 */
int i;

/* 配列alphabetsにアルファベットを詰める */
strcpy(alphabets, "abcdefghijklmnopqrstuvwxyz\n");

/* 時刻を使って乱数作成 */
srand(time(NULL));

/* alphabetsからランダムに1文字ずつ取って、challengeに代入 */
for(i=0 ; i<5 ; i++){
challenge[i]=alphabets[rand()%strlen(alphabets)];
}
challenge[5]='\0';
printf("以下の文字列を入力して、リターンキーを押してください\n");
printf("%s\n", challenge);
scanf("%s", input);

0700デフォルトの名無しさんNGNG
/* challengeとinputがあっているか判定し、結果を表示 */
if(strcmp(challenge , input) == 0){
printf("2つの文字列は等しい\n");
}
else{
printf("2つの文字列はちがう\n");
}
}

上のタイピングのプログラムで
/* challengeとinputがあっているか判定し、結果を表示 */
の部分をポインタを用いた表現に書き直す
という宿題なんですがさっぱりわかりません。

お願いします。
0701デフォルトの名無しさんNGNG
[1] 授業単元:卒業研究の一部
[2] 問題文(含コード&リンク):
信号(P)、ノイズ(N)の値(1000個)を全部二乗→足し合わせ、その値を
SN比の式10log10(P/N)に代入。
信号の値を出すプログラム、ノイズの値を出すプログラムからそれぞれ
数値のファイルを作り、その二つのファイルを使ってSN比を出すプログラムは
何とか作れたのですが、次の段階としてノイズの値を1/10000〜1まで
変えながら(ノイズの式の末尾に*0.0001〜1を挿入)SN比を算出して
ファイルに結果を出すプログラムがうまくいきません。
信号のプログラム
→http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/l/img-box/img20041208164950.txt
ノイズのプログラム
→http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/l/img-box/img20041208165024.txt
信号・ノイズのファイルからSN比を算出するプログラム
→http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/l/img-box/img20041208165043.txt
(>>666さんありがとうございます)
この三つを一つにまとめる形でノイズの値のみを変えたプログラムを
作りたいのですがどうすればいいでしょうか?

[3] 環境
 [3.1] OS:winxp
 [3.2] コンパイラ(バージョン):よくわからないのですがASTEC-Xで書いています
 [3.3] 言語:C
[4] 期限:できれば今週末までに・・・

よろしくお願いします。
0702名無し募集中。。。NGNG
>>699 こういうことなのかな?
#include <stdio.h>/* 入出力を使うためのおまじない */
#include <string.h>/* 文字列を操作する関数を使うためのおまじない */
#include <stdlib.h>/* 乱数を使うためのおまじない */
#include <time.h>/* 時刻を使うためのおまじない */
int sayu(char* sayumin, char* eririn)
{
for (; *sayumin == *eririn; sayumin++, eririn++) { if (*sayumin == '\0') { return 0; } }
return *sayumin - *eririn;
}
int main(void)
{
char alphabets[100];/* アルファベット全体を入れる配列 */
char challenge[100];/* 打ち込む文字列 */
char input[100];/* 打ち込んだ文字列 */
int i;
strcpy(alphabets, "abcdefghijklmnopqrstuvwxyz\n");
srand(time(NULL));
for (i = 0; i < 5; i++) { challenge[i]=alphabets[rand()%strlen(alphabets)]; }
challenge[5] = '\0';
printf("以下の文字列を入力して、リターンキーを押してください\n");
printf("%s\n", challenge);
scanf("%s", input);
if (sayu(challenge , input) == 0) { printf("2つの文字列は等しい\n"); }
else { printf("2つの文字列はちがう\n"); }
return 0;
}
0703デフォルトの名無しさんNGNG
>>666
おっちゃん前のソースUPローだみたいに、
レス形式のみやすーいCGIつかってくだちゃい
そんでもっておっちゃんとこをこのスレのソースうpろーだにしよーよー
0704デフォルトの名無しさんNGNG
質問ですunsorted list(ソートされないリスト)で
┏━┳━┳━┳━┳━┳━┓
┃10┃53┃24┃35┃  ┃  ┃
┗━┻━┻━┻━┻━┻━┛
と配列が渡されたとき、「75」を挿入すると

┏━┳━┳━┳━┳━┳━┓
┃10┃53┃24┃35┃75┃  ┃
┗━┻━┻━┻━┻━┻━┛
となるので正しいですか??

また、
┏━┳━┳━┳━┳━┳━┓
┃10┃53┃24┃35┃  ┃  ┃
┗━┻━┻━┻━┻━┻━┛
から53を削除した場合、リストはどの様に並びますか?
よろしくおねがいしますm(_ _"m)
0705デフォルトの名無しさんNGNG
>>704
「挿入」「削除」の定義による
0706デフォルトの名無しさんNGNG
>>704
マルチうぜーーーー
0707699NGNG
>>702
ポインタの導入に対する考え方
・challengeとinputはどちらも文字列の名前、すなわち、文字列の先頭のアドレスである。
-ただし、別のポインタにコピ−しておく。
・先頭から順'\0'(文字列の終端)に到達するまで、ポインタを一文字ずつ増やして比較する。

繰り返しの構造は
・「・・にと歌うするまで・・・する」の部分は、while文による繰り返し
・正しくなかったかをあらわす変数としてjudgeを宣言しておく。整数でよい
・while文の直前では
-それぞれ(challengeとinput)のポインタを先頭に合わせる
-judgeを「正しいのほうに初期化
・while文の本体は
-challengeの方のポインタがさす文字が'\0'になるまでの間に・・・
-1文字でも違いが現れたら、judgeを「正しくない」にセット
-それぞれのポインタを1ずつ進める

・challengeよりinputが長いとき
・while文を抜けたところで、もう1回だけ文字を比較すれば
challengeとinputが違うことがわかる

のヒントが出ていました。すみません。
あとreturnが入っていますが今まで習ったことないです。
0708デフォルトの名無しさんNGNG
> ・後になって問題につけたしをするのはやめましょう。
>  解いてもらっている方に失礼になってしまいます。
0709デフォルトの名無しさんNGNG
>>707
という事でこのスレでの追加分の解答は諦めて他に逝って下さい。
0710デフォルトの名無しさんNGNG
>>709
> >>707
> という事でこのスレでの追加分の解答は諦めて他に逝って下さい。

>>659
>だからさーここはCやC++のスレを宿題で汚されないようにするための
>スレであって、質問者のレベル向上のためじゃないんだってば
0711デフォルトの名無しさんNGNG
/* >>707 */
/* challengeとinputがあっているか判定し、結果を表示 */
{
#define Tadashii 1
#define Tadashikunai 0
int judge = Tadashii;
char * hintDashita = challenge;
char * yashiHaKuso = input;
while (*hintDashita != '\0' && *yashiHaKuso != '\0') {
if (*hintDashita != *yashiHaKuso) {
judge = Tadashikunai;
break;
}
++hintDashita;
++yashiHaKuso;
}
if (*hintDashita != *yashiHaKuso) {
judge = Tadashikunai;
}
printf("2つの文字列は%s\n", judge ? "等しい" : "ちがう");
#undef Tadashii
#undef Tadashikunai
}
0712デフォルトの名無しさんNGNG
同じことやるんだったら、これだけで良くない? judgeは0で初期化。

while (*str1 == *str2 && *str1 != '\0') {*str1++; *str2++;}
if (*str1 == *str2) judge = 1;

そんなことより、この後printf("%s", str1) とすると、ポインタが動いてしまってるから
文字列が表示できないが、このポインタを元の位置に戻す方法は無いの?
どこか適当な変数にアドレス保持させておくか、*(str1 + i)みたいにするしか無い?
ポインタのインクリメントは使うメリットが良く解らない…
0713デフォルトの名無しさんNGNG
ミスった
*str1++ → str1++ , *str2++ → str2++
0714デフォルトの名無しさんNGNG
void swap(int *x, int *y)
{
*x^=*y^=*x^=*y;
}
0715デフォルトの名無しさんNGNG
>>714
それはデータ壊れないか?
0716デフォルトの名無しさんNGNG
>>714
なんで?
0717デフォルトの名無しさんNGNG
>>715
なんで?
0718デフォルトの名無しさんNGNG
>>716
>>717
ttp://www.eskimo.com/~scs/C-faq/q10.3.html
0719デフォルトの名無しさんNGNG
>>717
int main()
{
int a[10] = {1};
printf("%d\n",a[0]);
swap(&a[0],&a[0]);
printf("%d\n",a[0]);
return 0;
}
0720デフォルトの名無しさんNGNG
質問です

「整数の配列とその要素数を引数として受け取り、添え字の1と2、3と4、…、nとn+1の要素を
それぞれ入れ替える関数を作成せよ。ただし、配列の要素数が奇数個である場合、最後の要素は入れ替えの
対象とならない。main関数では整数を入力として受け付けて、その数分の整数を配列に格納し、この配列の操作の対象とする」

って問題が出たので、とりあえずプログラムを作ってみたのですが、出力結果が正しく出ません。
下に作ったプログラムを貼ってみますので、誰か凄い方、添削お願い致します。
0721720NGNG
#include <stdio.h>
int irekae(int x, int data[]){
int i, tmp;
if(x % 2 == 1){
for(i = 0; i < x - 1; i = i + 2){
tmp = data[i];
data[i] = data[i + 1];
data[i + 1] = tmp;
}
}
else{
for(i = 0; i < x; i = i + 2){
tmp = data[i];
data[i] = data[i + 1];
data[i + 1] = tmp;
}
}
return(data[i]);
}
0722721NGNG
int main(void) {
int i, x, m, ans;
int data[256];
scanf("%d", &x);
for(i = 0; i < x; i ++){
scanf("%d", &m);
data[i] = m;
}
for(i = 0; i < x; i++){
ans = irekae(i, data);
printf("%d", ans);
}
printf("\n");
return(0);
}

以上です。お願いします。
0723デフォルトの名無しさんNGNG
>>722
直接scanf("%d", &data[i]);としてもコンパイルできるよ。
でも俺とscanfの相性は悪いんで使っていない。
#include <stdio.h>
#include <stdlib.h>
void irekae(int data[], int x) {
  int i;
  x &= ~1;
  for (i = 0; i < x - 1; i += 2) {
    int tmp = data[i];
    data[i] = data[i + 1];
    data[i + 1] = tmp;
  }
}
int main(void) {
  int i, num;
  int data[256];
  char buf[256];
  fgets(buf, sizeof buf, stdin);
  num = atoi(buf);
  for (i = 0; i < num; i ++) {
    fgets(buf, sizeof buf, stdin);
    data[i] = atoi(buf);
  }
  irekae(data, num);
  for (i = 0; i < num; i++) {
    printf("%d ", data[i]);
  }
  putchar('\n');
  return 0;
}
0724デフォルトの名無しさんNGNG
>>703
レス形式のロダを用意してみました。
見やすいかどうかわからないけど、必要なときがあったら使ってみてください。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
0725デフォルトの名無しさんNGNG
>>712
普通にstr1[i]のようにすればいいと思われ。
ポインタを理解させるのが目的だろうけど、
教える側が苦労したと言う自覚があればあるほど
判りにくい教え方になる罠。
0726722NGNG
>>723
あ、即レスありがとうございます!
そこで、あの、折角やって頂いたのに大変申し上げ難いのですが、
#include <stdlib.h>というのをまだ習っておりませんので、
これを除いてプログラムを作って頂けると嬉しさ倍増なのですが・・・
いかがでしょうか?
0727デフォルトの名無しさんNGNG
>>726
stdlib.hは必要ないよ。
0728≠723NGNG
>>726
fgets()+atoi()をsscanf()に入れ替え、stdlib.hのインクルードを止める。
0729デフォルトの名無しさんNGNG
なにー、atoi()なんか使ってたのか。>>723のボケが。
0730726NGNG
>>727
>>728

ありがとうございました!!
まだ実行してませんがそれでやってみます!
0731デフォルトの名無しさんNGNG
>>728
fgets+atoiをsscanfに変えたら意味変わらない?


揚げ足取りすまそ
0732デフォルトの名無しさんNGNG
2が1番小さい素数、3が2番目に小さい素数・・・・・、
i番目に小さい素数を返す関数nthprime(i)をつくり、500番目に
小さい素数を求めよ。
ただし関数nthprimeは再帰呼び出しを用いて作成すること。
#include<stdio.h>

int primep(int) ;
int nthprime(int) ;

int main()
{
int i = 500 ;
printf("%d",nthprime(i));
}
int primep(int i)
{
int k ;
for(k = 2 ;k < i ;k++){
if(i % k == 0){
return 0 ;return 1 ;
}
}
}
int nthprime(int i)
{
/*ここがわからないです・・・*/
}

誰かお願いします。
0733名無し募集中。。。NGNG
>>732 あってる気がするけど自信がない. 確認してね
#include<stdio.h>
int primep(int) ;
int nthprime(int) ;
int
main(void)
{
int i = 500;
printf("%d\n", nthprime(i));
return 0;
}
int
primep(int i)
{
int k ;
for (k = 2 ;k < i ;k++) { if (i % k == 0) { return 0; } }
return 1 ;
}
int
nthprime(int i)
{
int j;
if (i == 1) { return 2; }
else {
j = nthprime(i - 1) + 1;
while (!primep(j)) { j++; }
return j;
}
}
0734デフォルトの名無しさんNGNG
>>733
確認できました。動作しました。
ありがとうございました!!
0735デフォルトの名無しさんNGNG
問題の意図考えると
int nthprime(int i){
 static int j = 1;
 if(i == 0)
  return j;
 ++j;
 if(primep(j))
  return nthprime(i - 1);
 else
  return nthprime(i);
}
とかのが良くね?
0736デフォルトの名無しさんNGNG
>>735
それは再帰呼び出しだからですか?
0737デフォルトの名無しさんNGNG
>>736
但し書きまであるわけだから、ループは再帰で書けって意図なんじゃないかなあと思っただけだけどね
別にループ使うなとも書いてないからどっちでも良いと思うけど。
0738デフォルトの名無しさんNGNG
>>737
ちなみに735の簡単な説明お願いしてもいいですか?
0739デフォルトの名無しさんNGNG
nthprime(i) は nthprime(i - 1) 次に大きい素数 (i >= 2 の時)
nthprime(i) は 2 (i == 1 の時)

の表現が意図なのでは?
0740デフォルトの名無しさんNGNG
s/nthprime(i) は nthprime(i - 1) 次に大きい素数 (i >= 2 の時)/nthprime(i) は nthprime(i - 1) の次に大きい素数 (i >= 2 の時)/
0741デフォルトの名無しさんNGNG
ありがとうございます!!
0742デフォルトの名無しさんNGNG
すいません。教えてもらってもいいでしょうか?
宿題がわからず困っています。

使用する言語はC言語です。

「英語、数学、国語の点数を入力してその平均点に
よって合否を表示するプログラムを作れ。

入力:英数国の各点数
処理:次の関数を使用する↓
60点以上を「合格」、未満を「不合格」
という成績の文字列を返す関数(grade)
出力:main関数にて成績を表示

点数を比較するときは同じ型同士で比較する。」
0743デフォルトの名無しさんNGNG
>同じ型同士で比較

意図がわからん
...英語型、数学型、国語型をつくり、基準点型にキャストする?
0744デフォルトの名無しさんNGNG
>>743
すいません。それは無視してもらっても結構らしいです。
0745デフォルトの名無しさんNGNG
/*
60点以上を「合格」、未満を「不合格」
という成績の文字列を返す関数(grade)
*/
char *grade(double p){ return (p<60.0)?"不合格":"合格"; }
0746デフォルトの名無しさんNGNG
>>745
入力が仕様にあってねえじゃん
0747デフォルトの名無しさんNGNG
C言語超初心者の俺ががんばって考えた

#include <stdio.h>
#include <string.h>

void grade(int a, int b, int c, char x[]){
double temp;
temp = (double)(a + b + c)/3;

if (temp >= 60.0){
strcpy(x, "合格");
} else {
strcpy(x, "不合格");
}
}

int main(){
int eigo, sugaku, kokugo;
char hantei[40];

printf("英語:"); scanf("%d", &eigo);
printf("数学:"); scanf("%d", &sugaku);
printf("国語:"); scanf("%d", &kokugo);

grade(eigo, sugaku, kokugo, hantei);
printf("%s\n", hantei);
return 0;
}
0748デフォルトの名無しさんNGNG
>>747
ありがとうございます。
自分でも今の時間考えてみましたが、
やはり出来なかったので参考にさせて
いただきます。
0749デフォルトの名無しさんNGNG
>746

問題をよく読め
>入力:英数国の各点数
>処理:次の関数を使用する↓
>60点以上を「合格」、未満を「不合格」
>という成績の文字列を返す関数(grade)
>出力:main関数にて成績を表示

gradeの入力が英数国の各点数ぢゃねーぞ
0750デフォルトの名無しさんNGNG
読解力の低下は文章題が解けないものどもの増加に影響を与えている
0751デフォルトの名無しさんNGNG
いいなぁ このスレ。
始めから読んでみると目頭が熱くなってくるよ。

いや、懐かしくて(藁
自分にもこんな時代もあったなぁと。
0752デフォルトの名無しさんNGNG
理解できるのは747のソースくらいだよ・・・
情報系の学科行っても全然プログラムやらんし
0753デフォルトの名無しさんNGNG
これじゃダメかな。

#include <stdio.h>
#include <string.h>

char *grade(int a, int b, int c){
double temp;
temp = (double)(a + b + c)/3;

if (temp >= 60.0){
return "合格";
} else {
return "不合格";
}
}

int main(){
int eigo, sugaku, kokugo;
char *hantei;

printf("英語:"); scanf("%d", &eigo);
printf("数学:"); scanf("%d", &sugaku);
printf("国語:"); scanf("%d", &kokugo);


printf("%s\n", grade(eigo, sugaku, kokugo));
return 0;
}
0754753NGNG
すまん、間違った。
#include <stdio.h>
#include <string.h>

char *grade(int a, int b, int c){

if (((double)(a + b + c)/3) >= 60.0){
return "合格";
} else {
return "不合格";
}
}

int main(){
int eigo, sugaku, kokugo;

printf("英語:"); scanf("%d", &eigo);
printf("数学:"); scanf("%d", &sugaku);
printf("国語:"); scanf("%d", &kokugo);


printf("%s\n", grade(eigo, sugaku, kokugo));
return 0;
}
0755デフォルトの名無しさんNGNG
倍精度浮動小数点型が出てくる意義が分らん
0756707NGNG
>>708-709
ごめんなさい。以後気をつけます。
>>711
遅くなってすみません。
今コンパイルしてうまく実行できました。ありがとうございます。
0757デフォルトの名無しさんNGNG
[1] 授業単元:計算機概論
[2] 問題文(含コード&リンク):整数nを入力して、nが素数か、合成数であるかを
  判定するプログラムを作る。1を入力すると判定終了となります。(while文は
  必ず使う)
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ(バージョン):Microsoft Visual C++6.0
 [3.3] 言語:C++
[4] 期限:2004年12月14日まで
[5] その他の制限:
0758757NGNG
お願いします!
0759デフォルトの名無しさんNGNG
[6] 2chで同様の解答を見つけた場合はその解答を無効とします。
0760デフォルトの名無しさんNGNG
>711をそのまま提出したらすげぇな。
0761デフォルトの名無しさんNGNG
>>757
まだ五日もあるじゃん
0762デフォルトの名無しさんNGNG
コンパイラがVC++なのに言語がC++とは一体何事か
0763デフォルトの名無しさんNGNG
>>762
意味がわからないのだが、何かおかしいのか?
0764デフォルトの名無しさんNGNG
>>757
素数判定アルゴリズムの指定は無し?
0765デフォルトの名無しさんNGNG
>>757
ねえねえ、入力する整数nに上限があるのならすぐ作れるんだけど。
問題を読む限り上限はないよね?そういうのは俺には無理です。
0766デフォルトの名無しさんNGNG
上限ありやけど

#include<bitset>
#include<iostream>

void main(){
 const int max = 1000;
 std::bitset<max+1> prime_table;

 prime_table.set();
 prime_table[0] = prime_table[1] = false;
 for(int i = 2; i * i <= max; ++i)
  for(int j = 2; i * j <= max && prime_table[i] != 0; ++j)
   prime_table[i * j] = false;

 int input;
 std::cin >> input;
 std::cout << (prime_table[input] ? "素数だ" : "素数じゃない") << std::endl;
}
0767766NGNG
しまった
void main -> int main
0768766NGNG
最近C#ばっかやってたから癖が
0769766NGNG
しかももんだいよんでなかったorz
if(input == 1) return 0;
と
while(false);
でも入れといてくれ
0770デフォルトの名無しさんNGNG
>>765
へたれ
0771デフォルトの名無しさんNGNG
>>767
intにしたらreturnしないと。
0772デフォルトの名無しさんNGNG
>>770
そう言うならお前が作ってみろ。
>>771
標準C++はmain()に限り最後のreturn 0;は省略可能です。
0773デフォルトの名無しさんNGNG
C++だったかC99だったか忘れたが、intでreturn省略できなかったかな
0774デフォルトの名無しさんNGNG
C99, C++ も省略可能でなかったか?

>>772
ヘタレ
0775デフォルトの名無しさんNGNG
>>774
ヘタレはお前。自分が作れないくせに。
0776デフォルトの名無しさんNGNG
ダメだこいつ。
自分が問題を勝手に曲解しといて、
今度は自分が作れるかのようなこと言い出した
0777デフォルトの名無しさんNGNG
曲解じゃないだろ。例えば>>766で1000以上のnが入力されたらどうなる。
問題の意図を満たさないだろ。
0778デフォルトの名無しさんNGNG
そういう場合必ずnの条件が付いてるはずなんだ。
0779デフォルトの名無しさんNGNG
両方ヘタレでFA
以下何事もなかったかのように再開
0780デフォルトの名無しさんNGNG
>>775
素数判定アルゴリズムを理解するために、以前ちょっとしたコードを書いたけれど
理解したから興味を失っただけだ!!!!!!?#
巨大な数の扱い方も知っているし、君とは殻が違うのだよ。殻が。解かる?殻。
ところで、DQNって何ですか?
0781デフォルトの名無しさんNGNG
>>780
殻?格の間違いじゃないの?(ワラ
多倍長計算のライブラリはいくつも持ってるし、Mathematicaもあるよ。
お前と一緒にすんなヴォケ。
0782デフォルトの名無しさんNGNG
>>757の自演と推理してみるテスト
0783デフォルトの名無しさんNGNG
どうでもいいけど、
>多倍長計算のライブラリはいくつも持ってるし、Mathematicaもあるよ
ワロタ
0784デフォルトの名無しさんNGNG
>>783
だから多倍長計算ライブラリを使えばそのまま>>766のプログラムが移植
できるだろ。

Mathematicaは余計だったが、そのまま簡単なプログラムで多倍長計算が
できる罠。それだけの話。
0785デフォルトの名無しさんNGNG
しかしね。どんな多倍長計算クラスにも上限はあるし、素数を求める
アルゴリズムにも楕円曲線法とかいろいろある。あまり難しい話を
ここでしても意味がない。
0786デフォルトの名無しさんNGNG
やめいやめい。
↓以降何もなかったかのように質問受け付けます。
0787デフォルトの名無しさんNGNG
宿題スレで>>757を見て多倍長計算ライブラリとかMathematicaとか言い出すアホが居るスレはここですか?
0788デフォルトの名無しさんNGNG
>>781
バカめ!!!!!!!?#
格とひきこもりが閉じこもる心の殻を掛けたのを見抜けないのか!!!!!?#
0789デフォルトの名無しさんNGNG
mathematicaを出してくる意図が理解できん。
こいつぼけ
0790デフォルトの名無しさんNGNG
>>788
そうか。>>780はヒッキーでしかもニート君だったか。これは失礼。
君のプライドを傷つけるつもりは毛頭なかったので、許してくれたまえ。
0791デフォルトの名無しさんNGNG
なんかまた曲解している模様
ひょっとしてリアルで低脳だったのか?
0792デフォルトの名無しさんNGNG
誰かsakuraにかわる宿題スレ用のソースアップローダつくらないのぉ?
0793デフォルトの名無しさんNGNG
>>792
おまいに任せた!!
0794デフォルトの名無しさんNGNG
昼間いろんな板を回ると、人が少ないせいか、「あれ、こいつ
さっきあの板にいた香具師じゃね?」と思う場面に出くわす事が
多いね。ニートの生活ってこんな感じなのかな?
0795デフォルトの名無しさんNGNG
>>794=ニートってことでいいのかな…?
0796デフォルトの名無しさんNGNG
>>795
今日だけな。
0797757NGNG
すいません。学校行ってて返事遅れました。上限はないです!
私が作ったのが(全く初心者なので間違いだらけです・・)

int n,i;
printf("整数nを入力して下さい \n");
scanf("%d",&n);
i=2
while (i<=(n-1)){
i=i+1;
}
if ((n%i)=0)
printf ("\n nは合成数です。\n",n);
else
printf ("\n nは素数です。\n",n);
}
0798757NGNG
超間違いだらけで・・。基本はこんな形で提出しなきゃならないので、
誰か心優しい方、手直ししてもらえませんか?申し訳ないです・・
0799デフォルトの名無しさんNGNG
・後になって問題につけたしをするのはやめましょう。
 解いてもらっている方に失礼になってしまいます。

なのでスルーされること請け合いでしょうね
0800デフォルトの名無しさんNGNG
#include <stdio.h>

main(){

printf("おちんちんを高速でしごくんだ。\n");

}
0801デフォルトの名無しさんNGNG
>>797
#include <stdio.h>
int main()
{
int n,i;
bool isPrime=true;
printf("整数nを入力して下さい \n");
scanf("%d", &n);
for (i=2; i*i <= n; i++) {
if ((n%i)==0) {
isPrime = false;
break;
}
}
printf("%d は %s です。\n", n, isPrime?"素数":"合成数");
return 0;
}
0802デフォルトの名無しさんNGNG
#include <stdio.h>

main(){

printf("もっと早くッッ!!\n");

}
0803デフォルトの名無しさんNGNG
>>797
int n,i;
printf("整数nを入力して下さい \n");
scanf("%d",&n);
i=2;
while (i<=(n-1)){
    if ((n%i)==0)
    {
        printf ("\n %dは合成数です。\n",n);
        return 0;
    }
    i=i+1;
}
printf ("\n %dは素数です。\n",n);
>>801
Cでbool使うときは何かincludeしないといけないんじゃなかったっけ?
0804デフォルトの名無しさんNGNG
(('))
0805デフォルトの名無しさんNGNG
携帯(iMona)で見てるせいか、めちゃくちゃなソースに見える。
0806757NGNG
みなさん、ありがとうございます。
#include<stdio.h>
void main()
{
int n,i;
printf("整数nを入力して下さい \n");
scanf("%d",&n);
i=2;
while (i<=(n-1)){
if ((n%i)==0)
{
printf ("\n %dは合成数です。\n",n);
}
i=i+1;
}
printf ("\n %dは素数です。\n",n);
}
エラーはなかったんですが、整数を入力すると、「整数です 合成数です」
と二つとも出てきてしまうんです。あと、1を入力して判定終了するのって
どうすれば良いのでしょうか・・ほんと迷惑かけて申し訳ないです

0807デフォルトの名無しさんNGNG
>>806
ちゃんとreturn 0;も書け。

>あと、1を入力して判定終了するのって
>どうすれば良いのでしょうか
#include <stdio.h>

int main(void)
{
    int n,i;
    while(1)
    {
        printf("整数nを入力して下さい \n");
        scanf("%d",&n);
        if(n == 1)
            break;
        i=2;
        while (i<=(n-1)){
            if ((n%i)==0)
            {
                printf ("\n %dは合成数です。\n",n);
                goto next;
            }
            i=i+1;
        }
        printf ("\n %dは素数です。\n",n);
next:;
    }
    return 0;
}
0808757NGNG
>>806
本当にありがとうございます!助かりました v(^^)
0809(・∀・)イイ!! ◆LC7P44pfbg NGNG
こういう日があっても(・∀・)イイ!!
0810デフォルトの名無しさんNGNG
(・∀・)イイ!!さんはいつもpositiveですね。
0811331NGNG
イニシャルの名前を表示する関数を作りなさい。
データの終わりはNULLとする。

#include <stdio.h>

void disp(char *p[],char key)
{
int i=0;
while (p[i]!=NULL){
if (p[i][0]==key)
printf("%s\n",p[i]);
i++;
}
}

void main(void)
{
static char *nam[]={"Candy","Nancy","Eluza",
"Ann","Rolla","Emy",NULL};
disp(nam,'E');
}

上のプログラムを関数プロトタイプ宣言してscanfでイニシャルを打ち込み、
そのイニシャルの名前がある場合はその名前を、ない場合はその旨を表示する
プログラムに書き換えたいんですが、どうしたらいいでしょうか?
言語はCです。
0812デフォルトの名無しさんNGNG
みんなスペース入れて読みやすいようにしようよ…
0813デフォルトの名無しさんNGNG
消すのめんどいから、短いのはいい。
0814 ◆zKht1y/vIY NGNG
#include <stdio.h>

int disp(char *p[],char key){
 int i = 0;
 int existed = 0;
  while(p[i] != NULL){
   if(p[i][0] == key){
    printf("%s\n",p[i]);
    existed = 1;
   }
   i++;
  }
 return existed;
}

int main(void){
 static char *nam[]={ "Candy", "Nancy", "Eluza", "Ann", "Rolla", "Emy", NULL };
 char initial;
 scanf("%c", &initial);
 if(disp(nam, initial) == 0)
  printf("なかった\n");
 return 0;
}
0815 ◆zKht1y/vIY NGNG
>>811ね
0816デフォルトの名無しさんNGNG
[1] 授業単元:プログラミング基礎
[2] 問題文 :
○○○○年、○○月、○曜日(その月の1日の曜日。数化したもの)を入力し、
2次元配列を利用してカレンダーを作成し6行7列の配列で出力せよ。
計算が複雑になるのでうるう年は28日とする。


[3.1] OS:XP
[3.2] コンパイラ(バージョン): Borland C++ Compiler
[3.3] 言語:C
[4] 期限:2004年12月10日
[5] その他の制限: 前提として、自分が習った範囲(if do switch、while for 配列)を使って作成しないといけません。


ヒントだけでもお願いします…。
0817デフォルトの名無しさんNGNG
その月の1日の曜日入力するのか・・・
0818デフォルトの名無しさんNGNG
[1] 授業単元:プログラミング言語
[2] 問題文(含コード&リンク):
hドライブの○○フォルダ配下の××.datからデータを入力し、そのデータを金額とした時の金額の一覧を表示するプログラムを作成せよ。
但し、××.datファイルはint型の複数データが格納されたバイナリファイルとする。
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ(バージョン):.NET2002
 [3.3] 言語:C++
[4] 期限:2004年12月13日20:00まで
[5] その他の制限:無し

どうかよろしくお願いします。
0819デフォルトの名無しさんNGNG
>>816
system("cal");
0820811NGNG
>>814
ありがとうございます!
本当に助かりました。
0821デフォルトの名無しさんNGNG
>>819
ありがとうございます!とてもヒントになります!
0822デフォルトの名無しさんNGNG
そんなんでよかったのか?
0823(・∀・)イイ!! ◆LC7P44pfbg NGNG
>>821
たまには嘘をつくのも(・∀・)イイ!!
0824デフォルトの名無しさんNGNG
C++言語で
[初期化]文字列をポインタで、整数値:n、文字
[処理]文字列のn番目の文字を、初期化した文字で置換して
mainで置換された文字列を出力するプログラムを誰かお願いします
関数はパラメータ3個使って作成する問題です
たとえばlendという文字列の2番目(n)のeを文字aに置換して
landと出力するようなプログラムです
0825デフォルトの名無しさんNGNG
昨日
2が1番小さい素数、3が2番目に小さい素数・・・・・、
i番目に小さい素数を返す関数nthprime(i)をつくり、500番目に
小さい素数を求めよ。
ただし関数nthprimeは再帰呼び出しを用いて作成すること。
を作っていただいたのですが誰か下のプログラムを見て
アルゴリズム書けるひといませんか?
よろしくお願いします。
0826デフォルトの名無しさんNGNG
>>825の続き
int primep(int) ;
int nthprime(int) ;
void main()
{
int i = 500;
printf("%d",nthprime(i));
}
int primep(int i)
{
int k;
for(k = 2 ;k < i ;k++){
if(i % k == 0){
return 0;
}
}
return 1;
}
int j=1;
int nthprime(int i)
{
if(i == 0)
return j;
j++;
if(primep(j))
return nthprime(i - 1);
else
return nthprime(i);
}

お願いします。
0827816NGNG
821は自分の発言ではありません。
system("cal"); でくぐって調べてみましたが自分に扱えそうにないですね。
もう少し分かり易いのをお願いします…。
0828デフォルトの名無しさんNGNG
あっ、#include<stdio.h>がぬけちゃいました。
それとアルゴリズムは解説みたいな感じでお願いしますm(__)m
0829 ◆zKht1y/vIY NGNG
>>816
#include <stdio.h>

int main(void){
 int months[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
 int i, j;
 int year, month, dayOfTheWeek;
 int table[6][7] = {0};

 printf("年:");
 scanf("%d", &year);
 printf("月:");
 scanf("%d", &month);
 printf("曜日(日曜:0...土曜:6):");
 scanf("%d", &dayOfTheWeek);

 printf("%d年%d月\n", year, month);
 printf("日 月 火 水 木 金 土\n");

 for(j = dayOfTheWeek; j < dayOfTheWeek + months[month - 1]; ++j)
  table[j/7][j%7] = j - dayOfTheWeek + 1;
 for(i = 0; i < 6; ++i){
  for(j = 0; j < 7; ++j){
   if(table[i][j] != 0)
    printf("%2d ", table[i][j]);
   else
    printf(" ", table[i][j]);
  }
  printf("\n");
 }
 return 0;
}
0830デフォルトの名無しさんNGNG
すいません、あぷろだしんでるみたいなので、3つに分けます。

#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

#define WORDLEN 50
#define SIZE 32/*素数であること*/

/*単語と出現回数をまとめて1つの構造体で表す。*/
struct wd {
struct wd *next;/*次の単語へのポインタ*/
char *str;/*文字列の先頭へのポインタ*/
int count;/*単語の出現回数*/
};
typedef struct wd WORD;/*WORD型とする*/

WORD *word[SIZE];/*WORDへのポインタを要素とする配列。SIZE個のリストを表す。*/
/*関数の宣言*/
void init_word();
WORD *add_word(char *);
char *getword(char *, int);
int hash(char *);

0831デフォルトの名無しさんNGNG

int main()
{
char w[WORDLEN];/*単語を読み込むための文字配列*/
WORD *p;/*リストの先頭を指す*/
int i;

init_word();/*単語の出現表を初期化*/
while (getword(w, WORDLEN) != NULL) {
p = add_word(w);/*同じ単語の探索・新しい単語の追加*/
if (p == NULL) {
fprintf(stderr, "Too many words\n");
exit(1);/*単語が多過ぎる時*/
}
p->count++;/*出現回数を1増加*/
}
for (i = 0; i < SIZE; i++) {
for (p = word[i]; p != NULL; p = p->next) {
printf("%d %s\n", p->count, p->str);
}/*全単語とその出現回数を表示*/
}
return 0;
}
0832デフォルトの名無しさんNGNG
int hash(char *w)
{
int i;
unsigned int h = 0;

for (i = 0; w[i] != '\0'; i++)
h = 65599 * h + w[i];
return h % SIZE;
}


void init_word()/*単語の出現表を初期化する関数*/
{
int i;

for (i = 0; i < SIZE; i++)
word[i] = NULL;
}


WORD *add_word(char *w)
/*文字列wと一致する単語がリスト内にあればその要素へのポインタを返す。
なければ、リストに追加し、その要素へのポインタを返す。
その際countは0にする。*/
{
char *s;
WORD *p;
int i;
0833デフォルトの名無しさんNGNG
i=hash(w);
for (p = word[i]; p != NULL; p = p->next) {
if (strcmp(w, p->str) == 0)
return p;
}/*リスト内を探索し一致する単語があればそのポインタを返してある。*/
s = (char *)malloc(strlen(w) + 1);/*新しい単語を保存する領域を指すポインタ。*/
if (s == NULL)
return NULL;
strcpy(s, w);/*wをsにコピー。*/
p = (WORD *)malloc(sizeof(WORD));/*新しい単語を保存する領域を確保*/
if (p == NULL)
return NULL;
p->str = s;
p->count = 0;/*新しい単語を追加した時、countを0に*/
p->next = word[i];
word[i] = p;/*リストへの追加*/
return p;
}

0834デフォルトの名無しさんNGNG
char *getword(char *w, int n)/*単語を文字配列に読み込む関数*/
{
int c;
int i = 0;

if (n <= 0 || feof(stdin))
return NULL;/*入力の終端かどうかをチェック
また単語の最大長が負かどうかもチェック*/
c = getchar();
while (c != EOF && ! isalpha(c)) {
c = getchar();
}/*英文字でない文字をとばす*/
if (c == EOF)
return NULL;/*EOFならNULLを返す*/
while (isalpha(c)) {
if (i < n - 1)
w[i++] = toupper(c);
c = getchar();
}/*英文字の間は大文字に変換しつつ文字配列wに代入*/
if (i < n)
w[i++] = '\0';/*単語の最大長を超えたら最後にNULLを代入*/
return w;/*代入された文字配列を返す*/
}

上は標準入力中に現れる英単語(英文字の列)の回数を数え、
大文字になおして標準出力に出力するコードです。
さらに、出現回数の多いものから順に表示できるようにするのが課題なのですが、
ソートがわからなくて困っています。
言語はCです。
また、入力されるのはハムレットや海底2万里などの全文です。
どうかよろしくお願いします。
0835デフォルトの名無しさんNGNG
5つになりました。申し訳ありません
0836816NGNG
>>829
ヒントどころか解答までして貰ってホントにありがとうございます。
自分は見当違いの事やってたし…。
このままじゃ試験危ないから勉強しないとなぁ。
0837デフォルトの名無しさんNGNG
>>830-835
>>問題文と提出期限を添えて>>724のロダを借りてみれ(彼に礼を述べよ)。
今ならきっと1番乗りw

>724 デフォルトの名無しさん sage 04/12/08 22:06:06
>
>  レス形式のロダを用意してみました。
>  見やすいかどうかわからないけど、必要なときがあったら使ってみてください。
>  http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
0838デフォルトの名無しさんNGNG
誰か826の説明お願いします・・・。
0839デフォルトの名無しさんNGNG
い・や・♪
0840デフォルトの名無しさんNGNG
テンプレにこれ追加しろよ
・自分の宿題に解答がつかない時はあきらめて下さい
0841デフォルトの名無しさんNGNG
昨日
2が1番小さい素数、3が2番目に小さい素数・・・・・、
i番目に小さい素数を返す関数nthprime(i)をつくり、500番目に
小さい素数を求めよ。
ただし関数nthprimeは再帰呼び出しを用いて作成すること。
を作っていただいたのですが誰か下のプログラムを見て
アルゴリズム書けるひといませんか?
よろしくお願いします
0842デフォルトの名無しさんNGNG
こうしてテンプレはどんどん肥大化していくのであった。
0843デフォルトの名無しさんNGNG
int primep(int) ;
int nthprime(int) ;
void main()
{
int i = 500;
printf("%d",nthprime(i));
}
int primep(int i)
{
int k;
for(k = 2 ;k < i ;k++){
if(i % k == 0){
return 0;
}
}
return 1;
}
int j=1;
int nthprime(int i)
{
if(i == 0)
return j;
j++;
if(primep(j))
return nthprime(i - 1);
else
return nthprime(i);
}

お願いします。
0844 ◆zKht1y/vIY NGNG
>>824
>[初期化]文字列をポインタで、整数値:n、文字
日本語意味不明。意図に合うように適当に直してくれ。

#include <string>
#include <iostream>

void replace(std::string& str, int n, char ch);

void replace(std::string& str, int n, char ch){
 str.replace(n, 1, 1, ch);
}

int main(){
 std::string str;
 int n;
 char ch;

 std::cin >> str;
 std::cin >> n;
 std::cin >> ch;

 replace(str, n, ch);

 std::cout << str;
}
0845デフォルトの名無しさんNGNG
I2luY2x1ZGUgPHN0ZGlvLmg+DQoNCnN0YXRpYyBpbnQgaiA9IDE7DQoNCmludCBwcmltZXAoaW50
IGkpDQp7DQoJaW50IGs7DQoJZm9yKGsgPSAyOyBrICogayA8PSBpOyBrKyspDQoJCWlmKCEoaSAl
IGspKSByZXR1cm4gMDsNCglyZXR1cm4gMTsNCn0NCg0KaW50IG50aHByaW1lKGludCBpKQ0Kew0K
CWlmKCFpKSByZXR1cm4gajsNCglqKys7DQoJaWYocHJpbWVwKGopKSByZXR1cm4gbnRocHJpbWUo
aSAtIDEpOw0KCWVsc2UgcmV0dXJuIG50aHByaW1lKGkpOw0KfQ0KDQppbnQgbWFpbih2b2lkKQ0K
ew0KCXByaW50ZigiNTAwdGggcHJpbWUgPSAlZFxuIiwgbnRocHJpbWUoNTAwKSk7DQoJcmV0dXJu
IDA7DQp9DQo=
0846デフォルトの名無しさんNGNG
uue?
0847デフォルトの名無しさんNGNG
課題それであってんのか?
最低search_nで探して置換って話じゃないのか?
>>824だとreplaceどころか検索するまでもなく配列の書き換えで終わるし、
いくらなんでもそんな課題ないっしょ
0848デフォルトの名無しさんNGNG
このスレのレベルから言って妥当な課題と思うけど
0849デフォルトの名無しさんNGNG
嬲ったね!?
親父にも嬲られたことないのに!!
0850 ◆zKht1y/vIY NGNG
>>847
オレもそう思ったけど
>文字列のn番目の文字を、初期化した文字で置換して
>mainで置換された文字列を出力するプログラムを誰かお願いします
>関数はパラメータ3個使って作成する問題です
なるべくこれに沿ってみた
0851830NGNG
>>724のロダお借りしました。
ありがとうございました。
うpしました。お願いします。
0852デフォルトの名無しさんNGNG
>>851
> #define SIZE 32/*素数であること*/
激しくワロタ
0853デフォルトの名無しさんNGNG
双方向リストに対して、次の3つのソート方法を用いた辞書順ソートプログラムを作れ。
1.バブルソート
2.クイックソート
3.マージソート
本当によろしくお願いします
0854デフォルトの名無しさんNGNG
>>853
やめいっちゅうに
0855824NGNG
すいません、課題の問題が自分がかいたやつとほとんど同じで
文字列を入力してその文字のn番目の文字を、1文字置換するって問題です
日本語変ですいません・・
0856デフォルトの名無しさんNGNG
#include <stdio.h>

#define n 10

int main(void)
{
char mojiretsu[n];

mojiretsu[n] = mojiretsu[n];
printf(mojiretsu);

return 0;
}
0857818NGNG
[4] 期限:2004年12月13日20:00まで
と書きましたができれば明日の12時までにお願いします!
0858デフォルトの名無しさんNGNG
test
0859デフォルトの名無しさんNGNG
>>818
system("type hドライブの○○フォルダ配下の××.dat");
0860デフォルトの名無しさん NGNG
三つほどお願いします!問題自体はつながっていますので

(-1)^nを計算する関数を作ってください.入力は整数n


{(-1)^(n-1)・x^(2n-1)}/(2n-1)!を計算する関数を
作ってください. 入力は整数nと実数xとします


sinのテイラー展開は •Sin x=x- x^3/3! +x^5/5!+ …+ {(-1)^(n-1)・x^(2n-1)}/(2n-1)!+…ですが、
sin xを計算する関数をお願いします.


0861デフォルトの名無しさんNGNG
お願いします


関数int rand()を用いて0から9までの間でランダムな
整数を返す関数randm10をつくってください.10回繰り返して結果を出力してください.


また、繰り返し実行して、各値になる頻度をしらべてください.100回後と
10000回後の結果を画面に出力してください.




0862860.861NGNG
すみませんテンプレの下のほう読んでいませんでした・・・

[1] 授業単元:プログラミング言語
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:xp
 [3.2] コンパイラ(バージョン):NET2002

 [3.3] 言語:C
[4] 期限:なるべく早めにお願いします。午後から講義なので・・・
     間に合わなければ来週の月曜でも大丈夫ですのでどうかよろしくお願いします
[5] その他の制限:なし
0863デフォルトの名無しさんNGNG
>>859
int型のバイナリって書いてあるから
system("od -l hドライブの○○フォルダ配下の××.dat");
0864デフォルトの名無しさんNGNG
>>860

>(-1)^nを計算する関数を作ってください.入力は整数n

printf("%d", n & 1 ? -1 : 1);
0865デフォルトの名無しさんNGNG
>>860
>{(-1)^(n-1)・x^(2n-1)}/(2n-1)!を計算する関数を
>作ってください. 入力は整数nと実数xとします
>sinのテイラー展開は •Sin x=x- x^3/3! +x^5/5!+ …+ {(-1)^(n-1)・x^(2n-1)}/(2n-1)!+…ですが、
>sin xを計算する関数をお願いします.

精度(有効桁数)は?
sin(x) を計算するときの n は?
0866デフォルトの名無しさんNGNG
>>865
それは定数にして置いてその変更で変えられるように作るべきでは
0867デフォルトの名無しさんNGNG
まじめに毎回 {(-1)^(n-1)・x^(2n-1)}/(2n-1)! を計算するんじゃなくて、

x^3/3! = (x)*x*x/2/3
x^5/5! = (x^3/3!)*x*x/4/5
x^7/7! = (x^5/5!)*x*x/6/7
・・・

を逐次足す方が良いです。
0868860.861.862NGNG
>>864
早速ありがとうございます!

>>865
問題文に与えられているのはそれだけでしたので
>>866、867さんの仰られる通りでおねがいします
0869デフォルトの名無しさんNGNG
1 2
3 4
5 6
という中身のファイルがあったとして
一列目をa[]、二列目をb[]というようにするにはどうすればいいのでしょうか?
0870869NGNG
すいません、書いている途中に書き込んでしまいました。
ファイルを開くのはできるのですが、それをどのように利用すればいいのかわかりません。
言語はCでお願いします。
0871デフォルトの名無しさんNGNG
>>861
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int randm10(void)
{
    return (int)(rand()/(RAND_MAX+1.0) * 10.0);
}
void f(int ntimes)
{
    int i;
    int a[10] = {0};

    for (i = 0; i < ntimes; i++)
        a[randm10()]++;

    for (i = 0; i < 10; i++)
        printf("%d: %d\n", i, a[i]);
}
int main(void)
{
    int i;
    srand(time(NULL));
    for (i = 0; i < 10; i++)
        printf("%d: %d\n", i+1, randm10());
    f(100);
    f(10000);
    return 0;
}
0872デフォルトの名無しさんNGNG
0から100未満のランダムな数を10000個生成して、それぞれの数の出現回数を求めよ。
ただし、0から100までの乱数は以下の様にして求める。

(int)((double)100 * rand() / (RAND_MAX + 1.0))


C言語で宜しくお願い申し上げ候。
0873デフォルトの名無しさんNGNG
>>872
( ゚д゚)

(つд⊂)ゴシゴシ

(;゚д゚)

(つд⊂)ゴシゴシ
  _, ._
(;゚ Д゚)
0874デフォルトの名無しさんNGNG
>>872
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10000
int main()
{
  int i, ntable[100]={0};
  srand((unsigned int)time(0));

  for (i=0; i<N; i++) {
    ntable[(int)((double)100 * rand() / (RAND_MAX + 1.0))]++;
  }
  for (i=0; i<100; i++) {
    printf("[%2d] : %d\n", i, ntable[i]);
  }
  return 0;
}

( ゚д゚)

(つд⊂)ゴシゴシ

(;゚д゚)

(つд⊂)ゴシゴシ
  _, ._
(;゚ Д゚)
0875 ◆zKht1y/vIY NGNG
>>872
>(int)((double)100 * rand() / (RAND_MAX + 1.0))
rand() % 100でいいぞ

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void){
 int i;
 int randNums[100] = {0};

 srand((unsigned int)time(0));

 for(i = 0; i < 10000; ++i)
  ++randNums[rand() % 100];

 for(i = 0; i < 100; ++i)
  printf("%d ", randNums[i]);

 return 0;
}
0876 ◆zKht1y/vIY NGNG
>>874
スペースとか修正してる間にorz
0877デフォルトの名無しさんNGNG
rand() % 100は精度が悪いからじゃないの?
0878 ◆zKht1y/vIY NGNG
>>877
ああ、なるほろ。
0879デフォルトの名無しさんNGNG
>>874では
ntable[(int)((double)100 * rand() / (RAND_MAX + 1.0))]++;
>>875では
++randNums[rand() % 100];

演算子(++)の位置が違いますけど
このプログラムの場合どっちでもOKですか?
0880デフォルトの名無しさんNGNG
>>879
この場合はどっちでもOK
0881 ◆zKht1y/vIY NGNG
>>879
式の値を何にも使ってないし、後置き/前置きの++よりも[]の方が優先順位高いから大丈夫
0882デフォルトの名無しさんNGNG
>>880
>>881
どもありがとうございます
0883デフォルトの名無しさんNGNG
[1] 授業単元:計算機
[2] 問題文(含コード&リンク):
>>869
[3] 環境
 [3.1] OS:xp
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:一週間以内くらいなら
[5] その他の制限:なし
0884デフォルトの名無しさんNGNG
>>883
答えられるが、お前の態度が気に入らない。
0885デフォルトの名無しさんNGNG
>>884
ごめんなさい…
0886デフォルトの名無しさんNGNG
>>869
開くところまでできているなら、
unsigned ic = 0;
while (fgets(buf, sizeof(buf), fp)) {
char buf[100];
sscanf(buf, "%d%d", a[ic], b[ic]);
++ic;
}
のような感じ。
課題の説明が中途半端なので回答も中途半端にならざるを得ない。
0887872NGNG
>>874
>>875

おぉ!既に解答が!
早レス恩に着ます!
0888デフォルトの名無しさんNGNG
>>885
#include <stdio.h>
#include <stdlib.h>
#define MAXN 10

int main(void)
{
int a[MAXN], b[MAXN], i, count;
char buf[128];
FILE *fi;

if ((fi = fopen("data.txt", "r")) == NULL)
exit(1);

for (i = 0; i < MAXN; i++)
if (fgets(buf, 128, fi) == NULL)
break;
else {
sscanf(buf, "%d %d", &a[i], &b[i]);
}
fclose(fi);
count = i;

for (i = 0; i < count; i++)
printf("%d %d\n", a[i], b[i]);

return 0;
}
0889デフォルトの名無しさんNGNG
>>886
>sscanf(buf, "%d%d", a[ic], b[ic]);
これ間違ってるぞ。a[]やb[]がポインタ配列ならまだしも。
0890デフォルトの名無しさんNGNG
>>886
中途半端な課題に答えてくれてありがとうございます。
その回答で充分です。
sscanfを使えば良かったんですね。
0891デフォルトの名無しさんNGNG
[1] 授業単元:プログラミング�T
[2] 問題文(含コード&リンク):
-----------------------------------
//file1.txt

12 123 1234
23 234 2345
34 345 3456
-------------------
のようなファイルの中身を、
-------------------
123 1234
234 2345
345 3456
-------------------
のように、左端の要素だけを取り除いて表示するようなプログラムを作りたいです。

[3] 環境
 [3.1] OS:xp
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:1〜2日でお願いします!すんません。
[5] その他の制限:UNIXで動作できるようにしてください
0892デフォルトの名無しさんNGNG
>>891
スペースは全角ですか
0893デフォルトの名無しさんNGNG
間違えてC言語板に書き込んでしまいました。
改めてポインタについて教えてください。

struct test{
string aaa;
};


test *pstr[10];
pstr[10]->aaa = "ABC";

ポインタ配列pstrのメンバaaaに"ABC"を代入するには
どう書けばいいですか?
0894デフォルトの名無しさんNGNG
>>893
・ポインタは何か指す物が無いとと使えない。pstrを宣言しただけでは
 testのインスタンスは生成されない。
・配列の添え字は0から(要素数-1)まで。

test *pstr[10];
for(int i = 0; i < 10; i++) pstr[i] = new test;
pstr[8]->aaa = "ABC";
pstr[7]->aaa = "CDE";
0895デフォルトの名無しさんNGNG
>>893
ここは宿題スレだ。よって残念ながらここもスレ違い。
0896デフォルトの名無しさんNGNG
>>891のプログラムを知りたいのでできたらそのスレを教えてください。
0897デフォルトの名無しさんNGNG
>>895 非常に申し訳ないっす

文法的には下のような感じでいいのでしょうか?
スレ違いっぽくて申し訳ないですが添削よろしくお願いします。

#include <iostream.h>

struct test{
  char *aaa;
};

int main(){
  int i;
  struct test *test_ptr[10];

  for (i = 0; i < 10; i++){
    test_ptr[i] = new test;
  }

  test_ptr[0]->aaa = "ABC";
  test_ptr[9]->aaa = "DEF";

  printf("%s\n", test_ptr[0]->aaa);
  printf("%s\n", test_ptr[9]->aaa);

  for (i = 0; i < 10; i++){
    delete test_ptr[i];
  }
  return 0;
}
0898デフォルトの名無しさんNGNG
>>897はできる!!!
0899デフォルトの名無しさんNGNG
>>898
問題ないということしょうか
ありがとうございました
0900893NGNG
うーん・・なんと言ったらいいのでしょうか。

まずは>>894さんありがとうございました。
教えて頂いたとおりに書いたらできました。

>>897さんは私ではないですね・・・
でも分かりやすい見本でした。
delete()もすべきなんですね。勉強になりました。

あと、質問して教えて頂いた後には
出来上がったソースをそえてお礼した方がマナーがいいんですね。

いろいろありがとうございます。頑張ります。
0901デフォルトの名無しさんNGNG
場合によりけりだけどこうで十分な気がする。
test *pstr;
pstr = new pstr[10];
pstr[0] = "ABC";
delete[] pstr; // delete pstr;だと駄目
0902デフォルトの名無しさんNGNG
>>889
うい、typo。ヒントにはなるだろうから訂正しなかった。

>>901
newしてるものが……
0903デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1090227743/
0904デフォルトの名無しさんNGNG
>>851
差分だけ置いてきた。
0905デフォルトの名無しさんNGNG
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
hドライブの○○フォルダのint型の複数データが格納されたバイナリファイルを使って

 |給 与|一万円|五千円|千 円|五百円|百 円|五十円|十 円|五 円|一 円|
--+------+------+------+------+------+------+------+------+------+------|
1|423251| 42| | 3| | 2| 1| | | 1|
2|498225| 49| 1| 3| | 2| | 2| 1| |
3|316482| 31| 1| 1| 1| 4| 1| 3| | 2|
--+------+------+------+------+------+------+------+------+------+------|
 合 計 | 122| 2| 7| 1| 8| 2| 5| 1| 3|

という表を作らなければならないみたいです。
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ(バージョン):.NET2002
 [3.3] 言語:C++
[4] 期限:2004年12月11日12:30まで
[5] その他の制限:無し

どなたかよろしくお願いします!!
0906デフォルトの名無しさんNGNG
>>905
明日の朝の900頃でもよければupするわ。
0907デフォルトの名無しさんNGNG
>>906
お願いしますm(__)m
0908デフォルトの名無しさんNGNG
[1] 授業単元:C言語演習

[2] 問題文(含コード&リンク):

以下の式において、項数nを入力して、
tの範囲を0〜1とし、それを100等分して
f(t)の値を計算し列挙せよ。

n
f(t)=(4/π)* Σ{(1/(2k+1))*sin(2k+1)t}
n=0

フーリエの問題だと思うのですが、
プログラムが作れません><

よろしくお願いします。

[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ(バージョン):VC++ 6.0
 [3.3] 言語:C言語

[4] 期限:2004年12月11日17:30まで

[5] その他の制限:特になし
0909デフォルトの名無しさんNGNG
>>908
#include <stdio.h>
#include <math.h>

#define Pi 3.141592653589793

double f(double t, unsigned int n) {
unsigned int k;
double ret = 0.0;

for (k = 0; k < n; ++k) {
ret += 1.0 / (2.0*k + 1) * sin(2.0*k + 1.0) * t;
}

return ret;
}

int main() {
unsigned int i;

for(i = 0; i < 100; ++i) {
printf("%lf\n",f((double)i / 100.0, 20));
}

return 0;
}
0910デフォルトの名無しさんNGNG
>>909
早速の回答ありがとうございます。


         n
f(t)=(4/π)* Σ{(1/(2k+1))*sin(2k+1)t}
         n=0

この式でΣのn=0からnまでの
nの値はscanf使って任意に入力したい
場合はどうしたらいいんでしょうか。。。
0911デフォルトの名無しさんNGNG
>>891

データの区切りは 1バイト スペースとみなした
int ch,flg=0;
while((ch=getchar())!=EOF){
if(flg) putchar(ch);
if(ch=='\n') flg=0;
if(ch==' ') flg=1;
}
0912デフォルトの名無しさんNGNG
>>910
意図から判断すると
n
Σ
k=0
だろ。
scanfで入力するにはmain関数を
int main() {
unsigned int i;
unsigned int n;
scanf("%d", &n);
for(i = 0; i < 100; ++i) {
printf("%lf\n",f((double)i / 100.0, n));
}
とする。
ところで、scanfはテストにしか使ってはいけないよ。
学校の課題くらいなら使っても大丈夫だろうけれど。
0913デフォルトの名無しさんNGNG
1 鈴木 16 49
2 渡辺 4 68
3 斉藤 51 49
4 安藤 85 46
5 亘理 25 15

上のデータをファイルから読み込み、下のような構造体に格納し
3番と4番の間に 佐藤 67 34 を追加しファイルに書き出しなさい。

struct seiseki{
int no;
char name[10];
int tensuu[2];
}

こんな問題出されたんですがサッパリわかりません・・・(´Д⊂
一つ次のデータのアドレスを使うやつ(線形リスト構造?)を使わずに作りたいのですが
どなたか回答いただけないでしょうか
0914デフォルトの名無しさんNGNG
>>912
たびたびありがとうございます。

ところでscanfは何故テストにしか使ってはいけないんでしょーか?
問題があるんですか??初心者ですいません><
0915デフォルトの名無しさんNGNG
913補足です
[1] 授業単元:情報処理実習
[2] 上記のとおり
[3] 環境
 [3.1] OS:winxp
 [3.2] コンパイラ(バージョン):VC++6.0
 [3.3] 言語:C
[4] 期限:月曜テストなんで日曜の夜くらいまでにいただけると助かります。


0916デフォルトの名無しさんNGNG
>>914
http://www1.cts.ne.jp/~clab/hsample/IO/IO12.html
0917デフォルトの名無しさんNGNG
>>916
なるほど、配列を超えた入力の抑制が出来ないのですね、、、
ありがとうございます
0918デフォルトの名無しさんNGNG
OpenGLはスレ違いですかね?
0919デフォルトの名無しさんNGNG
>>918
OpenGLのスレがあるのにわざわざここで?
0920デフォルトの名無しさんNGNG
言ったら雑談スレだった('A`)
0921デフォルトの名無しさんNGNG
>>916
おいおい、そのリンク見てみたけど、
fflush(stdin);
って平気で書いてるぞ。VCだけが処理系だと思っている痛い香具師が
書いたな。
0922デフォルトの名無しさんNGNG
>>921
scanf問題の説明が載っていればどこでもよかった。
今では後悔している。
0923デフォルトの名無しさんNGNG
パーティクルを飛ばすためのソースが浮かばない
誰か教えてください
0924デフォルトの名無しさんNGNG
>>923
パーティクルって何?飛ばすって?まずそれがわからないことには。
0925デフォルトの名無しさんNGNG
>>923
氏ねよマルチ野郎
0926デフォルトの名無しさんNGNG
うまく行くときと行かないときがあります。
どこを直せばいいしょうか?


/*単語を数え、各単語の先頭だけを大文字にする。*/

#include <stdio.h>
#define N 100

int word (char *, int);

int main (void)
{
char str[N], *error="ERROR!!";
int ret;

printf("文字列を入力して最後にReturnキーを押して下さい.\n");
gets(str);

ret = word(str, N);
if (ret == -1) printf(error);
else
{
printf("%s\n", str);
printf("%d語\n", ret);
}
return 0 ;
}
0927デフォルトの名無しさんNGNG



//単語の先頭だけを大文字にし、単語数を返す関数
int word (char *p, int n)
{
int word = 0;
char *p_0 = p;

while (*p)
{
//アルファベットが見つかったら
if ((0x41 <= *p && *p <= 0x5a) || (0x61 <= *p && *p <= 0x7a))
{
word++;

//先頭の1文字
if (0x61 <= *p && *p <= 0x7a) //小文字なら大文字に
*p-=32;
p++;
if ((int)(p-p_0) > n) return -1;

//その単語の残りの文字
while ((0x41 <= *p && *p <= 0x5a) || (0x61 <= *p && *p <= 0x7a))
{
if (0x41 <= *p && *p <= 0x5a) //大文字なら小文字に
*p+=32;
p++;
if ((int)(p-p_0) > n) return -1;
}//アルファベットの間ループ
}
0928デフォルトの名無しさんNGNG


p++;
if ((int)(p-p_0) > n) //型キャストはなくてもいいんですか?
return -1; //もしかしてnじゃなくてn-1!?
}
return word;
}
0929デフォルトの名無しさんNGNG
>>928
「うまくいかない」とはどう「うまくいかない」のか書け。
0930デフォルトの名無しさんNGNG
なんか文字列長がN以上のときに悩んでるみたいだが、
自作関数のほうでなんぼチェックしても、getsの地点ですでに壊れてるから意味ないわな

fgets使っとき
0931デフォルトの名無しさんNGNG
もしかしたら単語と単語の間にスペースを2個以上入れるとそれが単語の数
としてカウントされてしまうという不具合か?それはアルゴリズムが間違って
いるから。
0932デフォルトの名無しさんNGNG
あと、0x41とか32とか、ASCII文字体系でしか動かないハードコーディングを
していて好ましくないから、isalphaとかtoupper、tolowerを使うべき。

文字列の終端はポインタの減算でチェックするより、'\0'が現れる事によって
判断した方が楽。
0933926-928NGNG
>>929
>>930
N以下の文字列でもERRORになることがある・・・

>>931
えっ!そうなんすか?
どこがまずいんですか?

>>932
ヌル文字でってどうやってやるんですか?
str[N]以降にアクセスしたくないんですけど、
例えばヌル文字が出るまでk++するとかだと
str[N]より前に'\0'がなかったら
str[N]を超えて調べちゃいますよね?
オレにはそんなやり方しか思いつかない、、、
0934デフォルトの名無しさんNGNG
あそっか、kがN以上になったらそこで止めればいいだけか…
オレはバカ……
0935デフォルトの名無しさんNGNG
>>933
Cの文字列は'\0'で終わるもんだ。
p[n]より手前までに'\0'がないときは、そんな引数を渡す奴が悪い。
0936デフォルトの名無しさんNGNG
/*単語を数え、各単語の先頭だけを大文字にする。*/

#include <stdio.h>
#include <ctype.h>
#define N 100

int word(char *p);

int main(void)
{
char str[N], *error = "ERROR!!";
int ret;

printf("文字列を入力して最後にReturnキーを押して下さい.\n");
gets(str);

ret = word(str);
if (ret == -1)
puts(error);
else {
printf("%s\n", str);
printf("%d語\n", ret);
}
return 0 ;
}
0937デフォルトの名無しさんNGNG
//単語の先頭だけを大文字にし、単語数を返す関数
int word(char *p)
{
int word = 0;

while (*p) {
//アルファベットが見つかったら
if (isalpha(*p)) {
word++;
//先頭の1文字は大文字に
*p = (char)toupper(*p);
p++;
while (*p && isalpha(*p)) { // 残りの文字は小文字に
*p = (char)tolower(*p);
p++;
}
}
while (*p && !isalpha(*p)) // アルファベットまたはターミネート文字が出るまで p を進める
p++;
}
return word;
}
0938デフォルトの名無しさんNGNG
gets()をfgets()に直すのは宿題として取っておく。
0939デフォルトの名無しさんNGNG
誰か>>905をお願いします。
0940デフォルトの名無しさんNGNG
>>939
そのファイルにはどのようにデータが入っているんだ?
0941939NGNG
>>940
なんかfopen("h:\\○○\\kyuu-yo.dat")みたいなのを使うみたいです。
0942デフォルトの名無しさんNGNG
>>941
そのバイナリ・ファイルがない事にはプログラムが作れません。
どこかにうpして下さい。
0943939NGNG
>>942
ファイル学校行かないとないんです…。形だけでもどうにかなりませんか?
0944デフォルトの名無しさんNGNG
>>943
いつまでもフザケた事言ってんじゃねえよ
0945デフォルトの名無しさんNGNG
ファイル学校ってどんな学校や
…とか一瞬考えたのは秘密
0946906NGNG
あわれ905楽しようとしたばっかりに
寝坊した漏れに笑いのネタを提供してくれた。

いや、7時には起きたんだけどね。
>>905のレスを見ても仕様がよく分からんから
二度寝したんだよね。

別に学校の宿題くらい納期過ぎたって問題ないっしょ
自分でガン( ゚д゚)ガレ
0947デフォルトの名無しさんNGNG
#include <stdio.h>
int main(void)
{
int n,i;
int flag;

printf("n=");
scanf("%d",&n);
flag=0;
for(i=2;i<=n-1;i++){
if(N%i==0){
flag=1;
break;
}
}
if(flag==1){
printf("Sosuu de nai|n");
}
else{
printf("Sosuu de aru\n");
}
}
これを関数を使用したプログラムに直してくれませんか。
判定対象の整数を引数とし、判定結果(素数である場合を0,素数でない場合を1)
を辺値とする。
また数値の入力と結果の表示はmainで行う
0948926-928NGNG
>>936-938
ありがとうございます。かなり参考になるっす。
0949 ◆zKht1y/vIY NGNG
>>947
#include <stdio.h>

int isPrime(int num){
 int i;
 for(i = 2; i <= num - 1; ++i)
  if(num % i == 0)
   return 1;
 return 0;
}

int main(void){
 int n;

 printf("n=");
 scanf("%d",&n);

 if(isPrime(n))
  printf("Sosuu de nai|n");
 else
  printf("Sosuu de aru\n");
}
0950 ◆zKht1y/vIY NGNG
>判定結果(素数である場合を0,素数でない場合を1)
!!
isPrimeの戻り値と結果表示逆にしてくれ
0951デフォルトの名無しさんNGNG
>>950
結果表示はそのままでよかったんじゃないんですか?
0952 ◆zKht1y/vIY NGNG
>>950
ホントだ。俺の最初のが間違ってた。
0953 ◆zKht1y/vIY NGNG
>>951
だ。自分のそそっかしさが嫌になってきたorz
0954デフォルトの名無しさんNGNG
>辺値
0955デフォルトの名無しさんNGNG
どうもありがとうございました
0956デフォルトの名無しさんNGNG
>>944
なんだ、できないのか。糞の役にもたたねえな。
0957デフォルトの名無しさんNGNG
>>954
じゃあまちがってる?
0958(・∀・)イイ!! ◆LC7P44pfbg NGNG
週末に2ちゃんで人の宿題するのも(・∀・)イイ!!
どうしようもない質問者に翻弄されるのも(・∀・)イイ!!
0959デフォルトの名無しさんNGNG
>>956
お前が糞。
0960デフォルトの名無しさんNGNG
次スレ立てちゃっていい?
0961デフォルトの名無しさんNGNG
次スレ
http://pc5.2ch.net/test/read.cgi/tech/1102753497/
0962デフォルトの名無しさんNGNG
ところでターミネート文字って'\0'のことで、ヌル文字とおなじことだよねえ?
0963デフォルトの名無しさんNGNG
1000ゲットニダ ━━<ヽ`∀´>@∀@)`ハ´)´Д`>━━!!!!
0964デフォルトの名無しさんNGNG
>>937
最後のほうの

while (*p && !isalpha(*p)) // アルファベットまたはターミネート文字が出るまで p を進める
p++;

って、単にp++;だけでもたぶんできますよね?
こうしたのは何か意図があるんですか?
こっちのほうが速いとか?
0965デフォルトの名無しさんNGNG
>>959
m9(^Д^)プギャー
小学生みたいな返しだな。そんな低脳じゃできるわけないなwww
0966デフォルトの名無しさんNGNG
>>965
自分が低脳である事を棚にあげて、よくそこまで開き直れるもんだ。
でも開き直ってもプログラムはできないぞ。低脳。
0967デフォルトの名無しさんNGNG
>>966
それがどうした無能野郎
低脳でも無能よりマシだクソッタレ
0968デフォルトの名無しさんNGNG
喧嘩はイイクナイ
0969デフォルトの名無しさんNGNG
どうせ一人でやってるんだろ。
0970デフォルトの名無しさんNGNG
>>964
レス遅くなってスマソ。
単にp++;だけだと、文字列の最後を越えていつまででもpをインクリメントし続け、
そのうちアクセス違反を出すと思います。
0971デフォルトの名無しさんNGNG
>>967
氏ね。答えを書いてもらえなかったのは、お前の質問の仕方が糞だったからだ。
まず日本語勉強ちまちょーね。あ?日本人じゃねーのか?祖国に帰った方が
ええんとちゃうか?
0972デフォルトの名無しさんNGNG
>>967,971
梅ご苦労様です
0973デフォルトの名無しさんNGNG
>>970
でも一番外側のwhile(*p)があるからだいじょぶなんじゃないんですか?
0974デフォルトの名無しさんNGNG
>>973
だめです。最後にホワイトスペース文字が入っている場合を
考えてみて下さい。
0975デフォルトの名無しさんNGNG
>>974
すみません、よくわかんないです。
最後にスペースがあってもできました。
0976デフォルトの名無しさんNGNG
>>975
"aa 11aa"
って入れてごらん。p++だけだと3語になっちゃうでしょ。
正解は2語。
0977デフォルトの名無しさんNGNG
>>976
↓ので"aa 11aa"と入れてもちゃんと2語になりました。


//単語の先頭だけを大文字にし、単語数を返す関数
int word (char *p)
{
int word = 0;

while (*p)
{
//アルファベットが見つかったら
if (isalpha(*p))
{
word++;

//先頭の文字を大文字に
*p++ = toupper(*p);

//その単語の残りの文字は小文字に
while (isalpha(*p))
*p++ = tolower(*p);
}
p++;
}
return word;
}
0978デフォルトの名無しさんNGNG
>>977
頭が海栗になってないか?
>977のword()では単語数が滅茶苦茶だぞ。
0979デフォルトの名無しさんNGNG
1000までに解決するんだろうか・・・
0980デフォルトの名無しさんNGNG
>>977
最後のp++;の前にelseが必要。
でないと、"aa 11aa" のとき最後のNUL文字を飛ばして読んでしまう。
0981デフォルトの名無しさんNGNG
[2] 問題文: 簡単なバイオリズムのプログラムを作る(出来れば縦の波)
[3] 環境
 [3.1] OS:windows xp
 [3.2] コンパイラ(バージョン):Cygwin
 [3.3] 言語:C
[4] 期限:2004年12月23日

参考サイトもイマイチないようなんで誰か面倒かけますが分かる方お願いします。。
0982デフォルトの名無しさんNGNG
↓まかせた
0983980NGNG
↓
↓ >>977
↓ コンソールから入力すると必ず最後に改行文字が付くから
↓ >977 でうまくいってしまうのかも。
↓ リダイレクトとかでやってみな。
↓
0984デフォルトの名無しさんNGNG
↓
↓>>981
↓表示形態は?グラフィック?文字?
↓
0985デフォルトの名無しさんNGNG
↓まだ一週間以上もあるんだが。
↓ふざけてんのか?
0986デフォルトの名無しさんNGNG
次の方どうぞ
0987デフォルトの名無しさんNGNG
どっちみち、>977は単語の終端を「非英字」で探しているから数字が混ざると単語数がおかしくなる。
根本から見直したほうがよさそうだ。
0988デフォルトの名無しさんNGNG
[2]
問題文:文字列を2つ引数として受け取り、第2引数が第1引数の部分文字列に
なっていれば1を、なっていなければ0を返す関数を作成せよ。
s1がs2の部分文字列であるとはs2のどこかにs1が含まれている事を言う。
(例:bcdはabcdeの部分文字列。abdはabcdeの部分文字列ではない。)
この関数を使って、指定した回数分だけ入力した文字列のうち、
あらかじめ定められた文字列を含むものだけを配列に格納する
プログラムを作成せよ。main関数での入力は、入力する文字列の
個数とその数分の文字列である。

[3]環境
[3.1]OS : XP
[3.2]コンパイラ : VC++.NET 2003
[3.3]言語 : C言語
[4]期限 : 本日21時

かなり切羽詰まっているのでどなたかお願いします。

ここでこう言っては何ですが、この問題が1000いくまでに解決しなければ
次スレに問題文コピペして良いですか?
0989デフォルトの名無しさんNGNG
[2]
問題文:文字列を2つ引数として受け取り、第2引数が第1引数の部分文字列に
なっていれば1を、なっていなければ0を返す関数を作成せよ。
s1がs2の部分文字列であるとはs2のどこかにs1が含まれている事を言う。
(例:bcdはabcdeの部分文字列。abdはabcdeの部分文字列ではない。)
この関数を使って、指定した回数分だけ入力した文字列のうち、
あらかじめ定められた文字列を含むものだけを配列に格納する
プログラムを作成せよ。main関数での入力は、入力する文字列の
個数とその数分の文字列である。

[3]環境
[3.1]OS : XP
[3.2]コンパイラ : VC++.NET 2003
[3.3]言語 : C言語
[4]期限 : 本日21時

今から遊びに行きますので、帰ってくるまでに作っておいて下さい。
帰宅は夕方6時の予定です。
0990860.861.862NGNG
>。871
お礼送れてすみません。。。本当に助かりました。

お手数ですが>>860の方もよろしくお願いします
0991デフォルトの名無しさんNGNG
>>988-989
strstr()を使ってもいいのか?
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/strstr.3.html
これ使うと簡単に出来てしまう。
たぶんstrstr()そのものを自分で実装しろという宿題ではないかと思われるのだが、
念のため問題の条件を再度確認しておきたい。

夕方6時までに返事がなければ誰も作らないからそのつもりで。
0992デフォルトの名無しさんNGNG
>>990
ここまでヒント出てるんだから自分で出来ないか?

>まじめに毎回 {(-1)^(n-1)・x^(2n-1)}/(2n-1)! を計算するんじゃなくて、
>
>x^3/3! = (x)*x*x/2/3
>x^5/5! = (x^3/3!)*x*x/4/5
>x^7/7! = (x^5/5!)*x*x/6/7
>・・・
>
>を逐次足す方が良いです。
0993デフォルトの名無しさんNGNG
>>990
#include <stdio.h>
#include <math.h>
int func1(int n) // (-1)^nを計算する
{
 return (int)pow(-1, n);
}
double func2(int n, double x) // {(-1)^(n-1)・x^(2n-1)}/(2n-1)!を計算する
{
 double r = func1(n-1)*pow(x, (2*n-1));
 int i;
 for (i=2*n-1; i>1; i--) r /= i;
 return r;
}
double func3(double x, int max) // sin xを計算する
{
 double r=x;
 int i;
 for (i=2; i<max; i++) r += func2(i, x);
 return r;
}
int main()
{
 double x;
 printf("x=");
 scanf("%lf", &x);
 printf("sin(%g) = %g", x, func3(x, 100));
 return 0;
}
オーバーフローはシラネ('A`)
0994デフォルトの名無しさんNGNG
>>993
オーバーフローが気になるなら >>992 の方がまし
しかしどっちみち桁落ちの問題が出てくる
0995デフォルトの名無しさんNGNG
積み残しが問題なら、小さい方から足すと少しでも問題を避けられる。
項の後ろの方ほど小さいという保証があればね。
0996デフォルトの名無しさんNGNG
松竹梅
0997988NGNG
>>991
使ってはならないとは言われてないので大丈夫だと思います。
それではお願いします。
0998デフォルトの名無しさんNGNG
>>993
一番収束の遅い sin(π) でも double なら n = 16 くらいで
収束してしまうので、 100 まで計算する必要なし。
さらに、sin(π/3) と sin(2π/3) の値が同じにならない。
0999デフォルトの名無しさんNGNG
I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8bWF0aC5oPg0KDQojZGVmaW5lIFBJIDMuMTQx
NTkyNjUzNTg5NzkzMjM4NDYNCg0Kc3RydWN0IHBpdGFibGUgew0KCWRvdWJsZSB4Ow0KCWNoYXIg
KnM7DQp9Ow0KDQppbnQgZnVuYzEoaW50IG4pDQp7DQoJcmV0dXJuIChpbnQpcG93KC0xLCBuKTsN
Cn0NCg0KZG91YmxlIGZ1bmMyKGludCBuLCBkb3VibGUgeCkNCnsNCglpbnQgaTsNCglkb3VibGUg
ciA9IGZ1bmMxKG4tMSkgKiBwb3coeCwgKDIgKiBuIC0gMSkpOw0KCWZvcihpID0gMiAqIG4gLSAx
OyBpID4gMTsgaS0tKSByIC89IGk7DQoJcmV0dXJuIHI7DQp9DQoNCmRvdWJsZSBmdW5jMyhkb3Vi
bGUgeCwgaW50IG1heCkNCnsNCglpbnQgaTsNCglkb3VibGUgciA9IHg7DQoJZm9yKGkgPSAyOyBp
IDw9IG1heDsgaSsrKSByICs9IGZ1bmMyKGksIHgpOw0KCXJldHVybiByOw0KfQ0KDQpkb3VibGUg
ZnVuYzQoZG91YmxlIHgsIGludCBtYXgpDQp7DQoJaW50IGk7DQoJZG91YmxlIHIgPSB4Ow0KCWRv
dWJsZSB5ID0geDsNCglmb3IoaSA9IDE7IGkgPCBtYXg7IGkrKyl7DQoJCXkgKj0geCAqIHggLyAo
MiAqIGkpIC8gKDIgKiBpICsgMSk7DQoJCXIgKz0gKGkgJiAxID8gLTEgOiAxKSAqIHk7DQoJCS8v
IHByaW50ZigiJTAzZCwgJTIwLjE4ZiwgJTIwLjE4ZlxuIiwgaSArIDEsIHksIHIpOw0KCX0NCgly
ZXR1cm4gcjsNCn0NCg0KaW50IG1haW4oKQ0Kew0KCWludCBpLCBqOw0KCXN0cnVjdCBwaXRhYmxl
IHB0W10gPSB7DQoJCVBJIC8gNiwgIhskQiZQGyhCLzYiLA0KCQlQSSAvIDQsICIbJEImUBsoQi80
IiwNCgkJUEkgLyAzLCAiGyRCJlAbKEIvMyIsDQoJCVBJIC8gMiwgIhskQiZQGyhCLzIiLA0KCQlQ
SSAqIDIgLyAzLCAiMhskQiZQGyhCLzMiLA0KCQlQSSwgIhskQiZQGyhCIg0KCX07DQoJZm9yKGkg
PSAxOyBpIDw9IDIwOyBpKyspew0KCQlwcmludGYoIiUwM2RcbiIsIGkpOw0KCQlmb3IoaiA9IDA7
IGogPCA2OyBqKyspew0KCQkJcHJpbnRmKCJzaW4oJXMgPSAlMjAuMThmKSA9ICUyMC4xOGYsICUy
MC4xOGZcbiIsDQoJCQkJcHRbal0ucywgcHRbal0ueCwgZnVuYzMocHRbal0ueCwgaSksIGZ1bmM0
KHB0W2pdLngsIGkpKTsNCgkJfQ0KCX0NCglyZXR1cm4gMDsNCn0NCg==
1000デフォルトの名無しさんNGNG
↑ base64 ね
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。