ぼるじょあがC/C++の宿題を片づけますYO! 68代目at TECH
ぼるじょあがC/C++の宿題を片づけますYO! 68代目 - 暇つぶし2ch712:名無し
08/01/09 22:05:32
[1] 授業単元: プログラム
[2] 問題文:複数の数値に対する最大公約数を求める関数を作成し、それを利用するプログラムを作成せよ
関数は下記の通り
int gcm(int*in,int num)
in  入力値が格納された配列のポインタ
num  入力値の数
戻り値 入力値の最大公約数

入力に関して、キーボードから、入力値をスペース1つ開けて1行で入力する
この時、入力を促す文字等は表示しないこと

出力に関して、結果+改行のみ出力。指定した数値・改行以外の文字等出力は行わない
[3] 環境
 [1] OS:XP
 [2] コンパイラ名とバージョン:わかりません
 [3] 言語: C
[4] 期限: 2008年1月10日10:00まで
[5] その他の制限: 特になし
またまたおねがいします。


713:デフォルトの名無しさん
08/01/09 22:30:25
>>711
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double Average(int count,int data[])
{
double sum=0;int i;
for(i=0;i<count;i++)sum+=data[i];
return sum/count;
}

double StandardDeviation(int count,int data[])
{
double av,variance;
int i;
variance=0;
av=Average(count,data);
for(i=0;i<count;i++)variance+=((data[i]-av)*(data[i]-av));
variance/=count;
return sqrt(variance);
}


714:デフォルトの名無しさん
08/01/09 22:31:13
int main(void)
{
char buf[1024],*szStrPtr;
int i,count,data[100];
gets(buf);
count=atoi(buf);
if(count>100){printf("最大で100までゆうただろうが!\n");return 1;}
szStrPtr=buf;
gets(buf);
for(i=0;i<count;i++)
{
char *endptr;
data[i]=strtol(szStrPtr,&endptr,10);
if((*endptr)=='\0' && i!=(count-1)){printf("きちんと入力できてないでー\n");return 1;}
szStrPtr=endptr+1;
}
printf("%.2f\n%.2f\n",floor(Average(count,data)*100)/100,floor(StandardDeviation(count,data)*100)/100);
return 0;
}

715:ぼるじょあ ◆yBEncckFOU
08/01/09 22:37:37
>>711
(・3・) エェー やっとでけたYO!
#include<stdio.h>
#include<math.h>

int main(void)
{
int i, value_num, value;
double total=0.0, total_2=0.0, ave, dev;

scanf("%d", &value_num);
if(value_num<=0) return 1;

for(i=0;i<value_num;i++)
{
scanf("%d", &value);
total+=value;
total_2+=value*value;
}
ave=total/value_num;
dev=(total_2-total*ave)/value_num;
printf("%.2f\n", floor(ave*100)/100);
printf("%.2f\n", floor(dev*100)/100);

return 0;
}

716:名無し
08/01/09 22:37:52
>713、714さん
ありがとうございます。助かりました。

717:名無し
08/01/09 22:44:39
>715さん
ありがとうございます

718:ぼるじょあ ◆yBEncckFOU
08/01/09 23:06:48
>>712
#include<stdio.h>
#include<stdlib.h>

int gcd(int *in, int num){
int a, b, c, i;

if(num<=0) return -1;
b=in[0];
for(i=1;i<num;i++){
a=in[i];
if(b<=0) return -1;
while((c=a%b)) a=b,b=c;
}
return b;
}

int main(void){
int *data=NULL, datanum=0;
char buf[20+1];

for(;;){
fscanf(stdin, "%*[ ]");
if(fscanf(stdin, "%1[\n]", buf)==1) break;
if(fscanf(stdin, "%20[0-9]", buf)!=1) return 1;
data=realloc(data, sizeof(*data)*(datanum+1));
data[datanum++]=atoi(buf);
}
printf("%d\n", gcd(data, datanum));
free(data);
return 0;
}

719:デフォルトの名無しさん
08/01/10 22:33:56
[1] 授業単元: プログラミング入門
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:明日まで
[5] その他の制限:特になし
よろしくお願いします。


720:デフォルトの名無しさん
08/01/10 23:09:50
>>719
ソートが気に食わなかったら書き換えて
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main(int argc,char *argv[])
{
char buf[1024];char *ptr;
if(argc<=1){puts("コマンドライン例\n% printchar u\n% printchar l\n% printchar r\n% printchar s");return 0;}
gets(buf);
switch(tolower(*(argv[1])))
{
case 'u':
for(ptr=buf;*ptr;ptr++)*ptr=toupper(*ptr);
break;
case 'l':
for(ptr=buf;*ptr;ptr++)*ptr=tolower(*ptr);
break;
case 'r':
for(ptr=buf;*ptr;ptr++)*ptr=(islower(*ptr)?toupper(*ptr):tolower(*ptr));
break;
case 's':
qsort(buf,strlen(buf),1,(int(*)(const void *,const void *))strcmp);
break;
default:puts("コマンドライン例\n% printchar u\n% printchar l\n% printchar r\n% printchar s");return 0;
}
puts(buf);
return 0;
}

721:デフォルトの名無しさん
08/01/12 14:08:37
ごみじょあ

722:デフォルトの名無しさん
08/01/12 15:28:07
[1] 授業単元:C言語
[2] 問題文:構造体としてT1時T1分T1秒とT2時T2分T2秒をキーボードから入力し、
経過時間を求め、表示するプログラムを作成しなさい。但し、秒は実数型とする
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:fujitsu workbench
 [3.3] 言語:C
[4] 期限:1月16日16:00
[5] その他の制限:T1=7時25分12.33秒 T2=12時3分27.55秒.時間は24時間60分60秒で
それ以上はNGで安全装置を働かせる


723:デフォルトの名無しさん
08/01/12 16:05:17
マルチすんなボケ

724:デフォルトの名無しさん
08/01/17 21:49:34
[1] 授業単元:CプログラミングⅠ
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語:C++
[4] 期限:1月18日 00:00
[5] その他の制限:特にありません.
よろしくお願いいたします.

725:デフォルトの名無しさん
08/01/17 22:52:44
くそじょあ

726:デフォルトの名無しさん
08/01/17 23:16:12
>>724
こんなあんばいでどう?
テストしてないけど。

//穴1
typedef struct _Animal
{
int id;
char name[23];
int show[5];
int show_sum;
int show_prev;
int show_disp_total;
}Animal;

//穴2
for(i=0;i<n;i++)
{
s[i].show_sum=0;
for(j=0;j<5;j++)s[i].show_sum+=s[i].show[j];
s[i].show_disp_total=s[i].show_sum+s[i].show_prev;
tmp_total+=s[i].show_disp_total;
}

727:デフォルトの名無しさん
08/01/17 23:38:51
>>726
おかげさまでエラーもなく実行することができました!
本当に感謝します,ありがとうございました!

728:デフォルトの名無しさん
08/01/18 22:05:06
[1] 授業単元:CプログラミングⅠ
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語:C++
[4] 期限:2008年1月19日 09:00
[5] その他の制限:特にありません
よろしくお願いします!


729:デフォルトの名無しさん
08/01/18 23:07:26
マルチばっかりじゃないか・・・

730:デフォルトの名無しさん
08/01/19 04:31:01
>>728
URLリンク(kansai2channeler.hp.infoseek.co.jp)

731:デフォルトの名無しさん
08/01/19 08:09:40
>>730
ありがとうございました!

732:デフォルトの名無しさん
08/01/20 14:08:43
学校の課題でC++のクラスについての問題が出たのですが、まず以下のような
データファイルを用意した上で、そこからデータを読み出して、別ファイルに
標準体重の人の血液型と名前を出力するというものなんです。ファイルの読み出しまでは分かるのです
がその後が分かりません。アドバイスお願いします。

*標準体重・・・指数k(平均体重÷(平均身長ー100)を設定し、各々(身長ー100)*kの理想体重に対して97~103%の間に入っていること。


<データファイル>
一行目   人数
二行目以降 名前 血液型 身長 体重



733:デフォルトの名無しさん
08/01/20 16:46:50
テンプレ嫁

734:デフォルトの名無しさん
08/01/20 23:00:29
1] 授業単元: プログラミング
[2] 問題文: URLリンク(sasa.cis.ibaraki.ac.jp) の必須課題1と2
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2008/01/21まで
[5] その他の制限 二重ポインタを使わないで
         非再帰でお願いします

735:デフォルトの名無しさん
08/01/20 23:14:23
>>734
PDFはやめて。

736:デフォルトの名無しさん
08/01/21 00:43:00
Cプログラマ必須テキスト!

URLリンク(mori.eco.to)

737:デフォルトの名無しさん
08/01/21 01:26:20
 何度目だ?Cプログラマ必須テキスト!

738:デフォルトの名無しさん
08/01/21 16:00:55
v

問7
キーボードから実数を一つ入力
させ、それを x に代入する。

x ≦ 100 のとき「A」、
100 < x ≦ 350 のとき「B」、
350 < x ≦ 600 のとき「C」、
600 < x     のとき「D」

と表示するプログラム
@
わかんないです。
C言語プログラミング
、C-pad?? lcpad使ってます。


739:デフォルトの名無しさん
08/01/21 16:05:03
[1] C言語
[3] [3.1] OS: Windows XP
  [3.2] コンパイラ名とバージョン: わかりません
  [3.3] 言語: C言語
[4] 期限: 1月24日木曜日
[2] 問題文(含コード&リンク):
問2
4個の変数
  a 整数
  b 実数
  c 精度の高い実数
  d 文字
を宣言し、それぞれに適当なデータを代入する。
そして次のように画面表示するプログラム
a の値は ... です
b の値は ... です
c の値は ... です
d の値は ... です

問3
37から229までの整数を加算しその結果を表示するプログラム

お願いします!!

740:デフォルトの名無しさん
08/01/21 16:06:14
続きです。
問4
x = 0 から出発し、x の値を0.001 づつ増加させることを繰り返し、 
x^2 + 7x - 1 の値が初めて正となった時点で繰り返しを終了し、
そのときのx の値を表示するプログラム

問5
キーボードから整数を入力させその数を x に代入する。
x が 100 より大きいとき、
「入力した数は 100 より大きい」と表示し、x が 100 以下のとき、
「入力した数は 100 以下です」と表示するプログラム

問6
キーボードからアルファベット
を1文字入力させ、それが
「a」のとき、「a です」
「b」のとき、「b です」
「c」のとき、「c です」
「d」のとき、「d です」
「e」のとき、「e です」
と表示し、それ以外のとき「a,b,c,d,e 以外の文字」と表示するプログラム


741:デフォルトの名無しさん
08/01/21 16:06:45
問7
キーボードから実数を一つ入力させ、それを x に代入する。
x ≦ 100 のとき「A」、
100 < x ≦ 350 のとき「B」、
350 < x ≦ 600 のとき「C」、
600 < x     のとき「D」と表示するプログラム

問8
1 + 4 + 9 + 16 + ・・・と加えて行き、
和が初めて 10000を超えたとき、
その和の値、および最後に加えた数を求めて表示するプログラム

問9
次に書かれた数の総和を求め、結果を表示するプログラム:
1
1+2
1+2+3
1+2+3+4
 ・
 ・
 ・
1+2+3+4+5+・・・+ 10

問10
縦 100m、横 120mのグランドがある。
縦横それぞれ同じ長さ x だけ長くして面積が 13000㎡ となるようにしたい。
x を少数点以下1桁までの精度で求めるプログラム。

こんな感じです。お願いします!!




742:デフォルトの名無しさん
08/01/21 16:13:20
一問くらいやれよ

743:デフォルトの名無しさん
08/01/21 18:23:25
問10だけ
なぜこれで答えがでるかは自分で考えてくれ。

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

int main(void)
{
double x,temp;
temp=-110+10*sqrt(131.0);//二次方程式:x~2+220x-1000=0…(x>0)の解を代入
x=floor(temp*10+0.5)/10;//解の少数第2位で四捨五入
printf("約%.1f[m]伸ばせばよいぞ、雑種。\n",x);
return 0;
}

744:デフォルトの名無しさん
08/01/21 20:27:07
>>739
問2
#include<stdio.h>
int main(void)
{
    int a; /* 整数 */
    float b; /* 実数 */
    double c; /* 精度の高い実数 */
    char d; /* 文字 */
    a = 2008;
    b = 3.14159;
    c = 1.60217733E-19;
    d = 'A';
    printf("a の値は %d です\n", a);
    printf("a の値は %f です\n", b);
    printf("a の値は %G です\n", c);
    printf("a の値は %c です\n", d);
    return 0;
}

745:デフォルトの名無しさん
08/01/21 20:36:30
>>739
問3
#include<stdio.h>
int main(void)
{
    int i, sum = 0;
    for(i = 37; i<=229; i++){
        sum+=i;
    }
    printf("37から229までの整数の合計は%d\n",sum);
    return 0;
}

問4
#include<stdio.h>
int main(void)
{
    double x = 0;
    while( x*x + 7*x - 1 < 0){
        x+=0.001;
    }
    printf("x = %g\n",x);
    return 0;
}

746:デフォルトの名無しさん
08/01/21 20:51:37
>>740
問5
#include<stdio.h>
int main(void)
{
    int x;
    printf("整数を入力して下さい:");
    scanf("%d", &x);
    if(x > 100){
        printf("入力した数は 100 より大きい\n");
    }else{
        printf("入力した数は 100 以下です\n");
    }
    return 0;
}

747:デフォルトの名無しさん
08/01/21 20:52:30
>>740
問6
#include<stdio.h>
int main(void){
    char x;
    printf("1文字入力して下さい : ");
    scanf("%c", &x);
    if(x == 'a'){
        printf("a です\n");
    }else if(x == 'b'){
        printf("b です\n");
    }else if(x == 'c'){
        printf("c です\n");
    }else if(x == 'd'){
        printf("d です\n");
    }else if(x == 'e'){
        printf("e です\n");
    }else{
        printf("a,b,c,d,e 以外の文字\n");
    }
    return 0;
}

748:デフォルトの名無しさん
08/01/21 20:54:33
>>741
問7
#include<stdio.h>
int main(void){
    double x;
    printf("実数を入力して下さい。: ");
    scanf("%lf", &x);
    if(x <= 100){
        printf("A\n");
    }else if(x <= 350){
        printf("B\n");
    }else if(x <= 600){
        printf("C\n");
    }else{
        printf("D\n");
    }
    return 0;
}

749:名無し
08/01/21 21:10:09
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク): 円周率を求めるプログラムを作成せよ。
1.rand()関数を用いて0~1のx座標、y座標を生成する。
2.原点との距離を求め、座標が半径1の円内かどうか調べ、円内である場合、円外である場合をそれぞれカウントする。
3.以上を指定回数分繰り返し、半径1の円内である確率がπ/4であることからπを求める。

・入力に関して、キーボードから繰り返し回数を入力する。(上限はint型の最大値(実際には最大値を入れると膨大な時間がかかるので
テストは1分程度で終了する値でよい)
・出力に関して、結果(求めた円周率)のみを浮動小数点(double型を%1f)で出力(+改行)

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:わからないです
 [3.3] 言語: C
[4] 期限: 2008年1月23日12:00まで
[5] その他の制限:StudyCを使ってます。よろしくお願いします

750:デフォルトの名無しさん
08/01/21 21:16:05
>>741
問8
#include<stdio.h>
int main(void){
    int i=1,sum=0,x;
    while(sum < 10000){
        x = i*i;
        sum+=x;
        i++;
    }
    printf("和 = %d、最後に加えた数 = %d\n",sum,x);
    return 0;
}

751:デフォルトの名無しさん
08/01/21 21:26:39
>>741
問9
#include<stdio.h>
int main(void){
    int i,j,sum;
    for(i = 1;i <=10; i++){
        sum =0;
        for(j=1; j<= i;j++){
            if(j>1){
                    printf("+");
            }
            printf("%d", j);
            sum+=j;
        }
        printf("=%d\n",sum);
    }
    return 0;
}

752:デフォルトの名無しさん
08/01/21 21:51:55
>>749
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>

int main(void)
{
    int i,n,f;
    double x,y,r,pi;
    srand(time(NULL));
    
    printf("繰り返し回数を入力:");
    scanf("%d",&n);
    f=0;
    for(i=0;i<n;i++){
        x=(double)rand()/RAND_MAX;
        y=(double)rand()/RAND_MAX;
        r=sqrt(x*x+y*y);
        if(r<=1){ f++; }
    }
    pi = (double)f/n*4;
    printf("%1f\n",pi);
    return 0;
}

753:名無し
08/01/21 23:24:04
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク): 英文の文字列を入力した場合、文字数・単語数・文章数を求めるプログラムを作成せよ。
英文中の特殊文字は(, . ! ?)のみとする。単語の間には1つ以上(2つ以上でも可)のスペースが入るものとする。
文章の最後には必ず. ! ?のどれかが単独で使われる。
,や. ! ?の後に入る可能性があるが前にはスペースは入らないものとする。省略につかう.は今回ないものとする。

入力に関して:キーボードから、文字列を1行で入力する
出力に関して:文字数・単語数・文章数をそれぞれスペース1つあけて1行で出力(+改行)

[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:わからないです
 [3.3] 言語: C++
[4] 期限: 2008年1月23日12:00まで
[5] その他の制限:StudyCを使ってます。よろしくお願いします。


754:名無し
08/01/21 23:30:50
>>752さん

749の問題を書き込んだものですがRAND_MAXのところがエラー表示されます。
申し訳ありませんがもう一度確認してもらってよろしいでしょうか。

755:デフォルトの名無しさん
08/01/21 23:56:35
>>754
URLリンク(www.orchid.co.jp)

756:デフォルトの名無しさん
08/01/22 00:24:46
2つの整数を入力して、その2つの整数の最大公約数と、
最小公倍数を求めるプログラムを作りなさい。

このプログラムをお願いします。


757:デフォルトの名無しさん
08/01/22 00:47:11
>>756
マルチは死ね

758:デフォルトの名無しさん
08/01/22 01:07:51
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):

1からNまでの和を求めよ。
1からNの総和を求める関数をint wa(int N)として定義せよ。
(注)WIN32コンソールアプリケーションで、Nの値をキーボードより入力。

#include <stdio.h>

int wa(N);
{
int i, sum = 0;
for(int i=1, i<=N, i++) Sum+=i;
}

int main(void)
{

}

※ これを参考に作成するのですが、イマイチ分かりません
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (".NET 2003")
 [3.3] 言語: (C++)
期限は特にありませんので、宜しくお願いします。

759:デフォルトの名無しさん
08/01/22 01:19:25
#include <stdio.h>

int wa(int N);
{
int i, sum = 0;
for(int i=1, i<=N, i++) Sum+=i;
}

int main(void)
{
int n;
scanf("%d",&n);
printf("%d\n",wa(n));
return 0;
}


760:デフォルトの名無しさん
08/01/22 01:50:09
>>759
ありがとうございます。
しかし、.NET 2003環境で

#include <stdafx.h>
#include <stdio.h>

int wa(int N);
{
int i, sum = 0;
for(int i=1, i<=N, i++) Sum+=i;
}

int main(void)
{
int n;
scanf("%d",&n);
printf("%d\n",wa(n));
return 0;
}
このようなエラーが出てしまします。
error C2447: '{' : 対応する関数ヘッダーがありません。旧形式の仮引数リストの可能性があります。

{の対応は間違っているようには見えないのですがうまくいきません。

761:デフォルトの名無しさん
08/01/22 01:56:32
for文は for(int i=1, i<=N, i++) じゃなくて
for(int i=1; i<=N; i++) こうだろう

Sumもなんでか大文字になってるし、
wa関数に return sum; もない

762:デフォルトの名無しさん
08/01/22 02:12:15
>>761
ありがとうございます。
for文ご指摘のとうりでした
直して見たのですが、やはり

error C2447: '{' : 対応する関数ヘッダーがありません。旧形式の仮引数リストの可能性があります。

とでてしまいます。>< お時間ありましたらもう少しおつきあい下さいませ。

#include <stdafx.h>
#include <stdio.h>

int wa(int N);
{
int i, sum = 0;
for(int i=1; i<=N; i++) sum+=i;
return sum;
}


int main(void)
{
int n;
scanf("%d",&n);
printf("%d\n",wa(n));
return 0;
}


763:デフォルトの名無しさん
08/01/22 03:47:25
int wa(int N);  ←なにこのセミコロンw

764:ラッセン沖縄
08/01/22 09:42:41
[1]授業単元 プログラミングB
[2]問題文 次の仕様を満たし、入力例の通りにして実行でき、更に、出力例の通りに出力されるようなCプログラムを作成せよ。(出力の空白や桁数にも留意せよ。)


 仕様 三角形の底辺と高さ入力し、その面積を求める。

 入力例    Z:\>(kadai)
 (カッコ内を 底辺=(3.0)
   入力する)高さ=(4.5)


出力例* ----+----|----+----|----+----|----+----|----+----|
底辺=3.000, 高さ=4.500
面積=6.7500

(*目盛りは桁を示すためのもの。プログラムで出力するのではない。)


よろしくお願いします。

765:デフォルトの名無しさん
08/01/22 10:06:11
>>763
あ、ほんとだ!
ありがとうございます。コンパイル成功しました。
でも、動かない。。
プロンプト起動後に数値入力→Enter
すると終了してしまいます><

#include <stdafx.h>
#include <stdio.h>


int wa(int N)
{
int i, sum = 0;
for(int i=1; i<=N; i++) sum+=i;
return sum;
}


int main(void)
{
int n;
scanf("%d",&n);
printf("%d\n",wa(n));
return 0;
}


766:デフォルトの名無しさん
08/01/22 13:47:11
>>756
#include<stdio.h>
main(){
int a,b,x,y,gcd,lcm;
printf("1つ目の整数を入力して下さい:"); scanf("%d", &x);
printf("2つ目の整数を入力して下さい:"); scanf("%d", &y);
if(x>y){a = x; b = y;}
else{a = y; b = x;}
while(b > 0){gcd = a%b; a = b; b = gcd;}
gcd = a; lcm = x*y/gcd;
printf("%dと%dの最大公約数は%d、最小公倍数は%d\n", x, y, gcd, lcm);
}

767:デフォルトの名無しさん
08/01/22 15:09:47
>743,744,745,746,747,748,750,751
ありがとうございます。
あの、問6の問題なんですが、
switchの構文で作ってもらうことできますか?

768:デフォルトの名無しさん
08/01/22 15:14:28
問6
#include<stdio.h>
int main(void){
    char x;
    printf("1文字入力して下さい : ");
    scanf("%c", &x);
    switch(x){
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
        printf("%c です\n", x);
        break;
    default:
        printf("a,b,c,d,e 以外の文字\n");
    }
    return 0;
}

769:デフォルトの名無しさん
08/01/22 15:17:11
>>768
ありがとうございます。
すごく助かりました。

770:デフォルトの名無しさん
08/01/23 00:37:23
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/24
[5] その他の制限:

771:デフォルトの名無しさん
08/01/23 00:53:51
>>765
それは正常に動いてる。 処理が終わったから窓を閉じただけ。
実行後も見たいなら、ファイル名を指定して実行から cmd と打てば
コマンドラインが出るから、そこに実行ファイルドラッグするなりして
再度実行してみればいいと思うよ

772:名無し
08/01/23 01:17:06
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):
(1)複数の整数を降順(大きい順)にソートするプログラムを作成せよ


入力に関して:キーボードから、入力する整数の個数を入力(最大で10とする)し、次に指定した数の整数をスペース1つ開けて1行で入力するものとする。
このとき、入力を促す文字は表示しないこと。

出力に関して:ソートした整数をスペース1つのみあけて1行で出力する(+改行)。
指定した数値・改行以外の出力は一切行わない事。
久々のROに戸惑い中@緋月とーま の発言:
(2)数値を表示して最大値の回答をチェックするプログラムを作成せよ

 入力1に関して:キーボードからまず、表示する整数の個数を入力(最大で10とする)する。
この時、入力を促す文字は表示しないこと。
 出力1に関して:rand()関数を用いて0~100までのランダムな整数を、入力1の数だけ生成して表示する。
指定した数値・改行以外の出力は一切行わない事。

 入力2に関して:続いてキーボードから、表示された数値のうち最大のものを選び(間違えても構わない)その数値を入力する
このとき、入力を促す文字は表示しないこと。
 出力2に関して:入力2の値が正解なら1を、間違っていれば0を出力する(+改行)。
指定した数値・改行以外の出力は一切行わない事。
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:わからないです
 [3.3] 言語: C
[4] 期限: 2008年1月24日10:30まで
[5] その他の制限:StudyCを使ってます。2問あるんですが、よろしくお願いいたします。


773:デフォルトの名無しさん
08/01/23 11:40:10
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 2次方程式 ax^2 + bx + c = 0について、a,b,cをキーボードから入力して解を求めるプログラムを作成せよ。
a=0を入力を入力するまでは繰り返し計算を行うようにする
平方根の計算も必要です

[3] 環境
 [3.1] OS: windowsXP [3.2] コンパイラ名とバージョン:VC2005
 [3.3] 言語: C++
[4] 期限: 今週中におねがいします。できれば早く。

初歩的ですいません。

774:デフォルトの名無しさん
08/01/23 12:48:38
>>773
そんなの機械系学科の俺でも習ったぞ?

775:デフォルトの名無しさん
08/01/23 12:48:44
>久々のROに戸惑い中@緋月とーま の発言:
うーむ……

776:デフォルトの名無しさん
08/01/23 16:52:17
>>772
>久々のROに戸惑い中@緋月とーま の発言

ここがよくわからん。もう少しくやしく。

777:名無し
08/01/23 18:31:07
776さん>>久々のROに戸惑い中@緋月とーま の発言
これはもうムシしてください。へんな文章入れて申し訳ないです。

778:デフォルトの名無しさん
08/01/23 18:58:15
>>773
#include <iostream>
#include <math.h>
using namespace std;
int main(void)
{
double a,b,c,d;
cout << "a=";cin >> a;
cout << "b=";cin >> b;
cout << "c=";cin >> c;
d=b*b-4*a*c;
if(d==0)
{
double x;
x=-b/(2*a);
cout << "x=" << x << endl;
}
else if(d>0)
{
double x1,x2;
x1=(-b+sqrt(d))/(2*a);x2=(-d-sqrt(d))/(2*a);
cout << "x1=" << x1 << "\nx2=" << x2 << endl;
}
else
{
double xa,xb;
xa=-d/(2*a);xb=sqrt(-d)/(2*a);
cout << "x1=" << xa << "+" << xb << "i\nx2=" << xa << "-" << xb << "i" << endl;
}
}

779:デフォルトの名無しさん
08/01/23 19:18:59
久々のROに戸惑い中@緋月とーま の発言:

780:デフォルトの名無しさん
08/01/23 21:40:24
タコじょあ

781:ぼるじょあ ◆yBEncckFOU
08/01/23 21:59:54
>>770

#include<stdio.h>
#define num 10/* (・3・)エェー 等号とセミコロンはいらないYO */
int i;
double data[num]={ 173.8,168.2,180.3,166.0,189.7,167.4,159.8,170.5,167.5,167.4};/* (・3・)エェー セミコロン付いてないYO */

int main(void)
{
for(i=1;i<=num;i++){
int max=i,j;/* (・3・)エェー 変数maxとjが宣言されて無いYO */
for(j=i+1;j<=num;j++)/*最大の要素の場所を捜す*/
if (data[max]<data[j])max=j;
data[i]=data[max];data[max]=data[i];/*入れ換え*/
}
for(i=1;i<=num;i++)printf("%7.1f ",data[i]);
return 0;
}

782:ひかり ◆d0B/bjbQYo
08/01/23 22:25:04
#include<stdio.h>
#define num (10)//セミコロンとかいらん
double data[num]={ 173.8,168.2,180.3,166.0,189.7,167.4,159.8,170.5,167.5,167.4};/*セミコロン付けな*/
int main(void)
{
int i,j,max;/*変数宣言しとけ*/
double temp;/*入れ替え時に使用*/
for(i=0;i<=num-1;i++)/*配列の添え字は[0]から[num-1]まで*/
{
max=i;
for(j=i;j<=num-1;j++)/*[i]から[num-1]まで*/
if (data[max]<data[j])max=j;
temp=data[i];/*tempを利用する*/
data[i]=data[max];
data[max]=temp;/*tempから書き込む*/
}
for(i=0;i<=num-1;i++)printf("%7.1f ",data[i]);/*配列の添え字は[0]から[num-1]まで*/
puts("");/*最後、改行するためになんとなく*/
return 0;
}

783:デフォルトの名無しさん
08/01/23 23:09:48
[1] 授業単元: programming1
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Unix
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2008年1月24日21:00まで
[5] その他の制限: 特にありません

よろしくお願いします。




784:デフォルトの名無しさん
08/01/23 23:23:25
>>781>>782
ありがとうございます!

785:デフォルトの名無しさん
08/01/23 23:48:46
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/26
[5] その他の制限:なし

どなたかよろしくお願いします

786:homoじょあ ◆5OLf4yFnuM
08/01/24 00:42:23
>>772
#include <stdio.h>

int main(void){
int n, num[10], i, k;
scanf("%d", &n);
if(n > 10)return 0;
for(i=0; i<n; i++)scanf("%d", &num[i]);)
for(i=0; i<n-1; i++){
for(k=i+1; k<n; k++){
if(num[i] < num[k]){
int swap = num[i];
num[i] = num[k];
num[k] = swap;
}
}
}
for(i=0; i<n; i++)printf("%d ", num[i]);
printf("\n");
return 0;
}


787:homoじょあ ◆5OLf4yFnuM
08/01/24 00:43:29
>>772
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void){
int n, in, max = -1, i;
scanf("%d", &n);
if(n > 10)return 0;
srand((unsigned)time(NULL));
for(i=0; i<n; i++){
int tmp = rand()%101;
if(max < tmp)max = tmp;
printf("%d ", tmp);
}
printf("\n");
scanf("%d", &in);
printf("%d\n", (in == max));

return 0;
}


788:デフォルトの名無しさん
08/01/24 21:30:25
[1] 授業単元: C言語
[2] 問題文
間違った日付が入力された場合、再入力させる仕様にする
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: VC2005
[3.3] 言語: C
[4] 期限:1月27日まで
[5] その他の制限: ここに書いてあるのはプログラムの一部です
#include<stdio.h>

int main() {

int year,months,day;
int sum,i;
int m_array[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
char*week[7] = {"日","月","火","水","木","金","土"};

sum =0;
printf ("input (e.g. ****/**/**)\n>>");
scanf ("%d/%d/%d",&year,&months,&day

if ((imonths >2) && ((iyear % 4 == 0) && ((iyear % 100 !=0) || (iyear % 400 == 0)))) {
sum++;
}

for (i =0; i < imonths-1; i++) {
sum += m_array[i];
}
おそらくprintf scanf あたりを変えてwhile文とかbreakを使うと思うのですが・・
ヨロシクお願いします。

789:デフォルトの名無しさん
08/01/24 21:41:19
そんなのも分からないのに良くポインタ扱えるな

790:デフォルトの名無しさん
08/01/24 21:58:12
自分で作ったわけではありませんから

791:791
08/01/24 22:13:51
>>788
そんな変な手の加え方してコンパイル通せるのか?

#include<stdio.h>

int main() {

int year,months,day;
int sum,i;
int m_array[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
char*week[7] = {"日","月","火","水","木","金","土"};

sum =0;
do{
printf ("input (e.g. ****/**/**)\n>>");
scanf ("%d/%d/%d",&year,&months,&day);
if(year%4==0 && year%100!=0 || year%400==0)
m_array[1]=29;
else
m_array[1]=28;
}while(months<1 || months>12 || day<1 || day>m_array[months-1]);

for (i =0; i < imonths-1; i++) {
sum += m_array[i];
}

792:デフォルトの名無しさん
08/01/25 02:48:04
>>785
~ ヘッダのinclude 省略 ~
int main(void){
 char line[18+1]={0}, buf[16+1]={0}, *p;
 int i, num, tmp;
 printf("Input Number (ex. B0000000001111011 or D123 ) ===>");
 fgets(line, 18+1, stdin);
 p = strchr(line, '\n');
 if(p != NULL) *p = '\0';
 switch(line[0]){
  case 'B':
   if(strlen(line) != 17) return 1;
   for(i=16, tmp=1, num=0; i > 0; i--, tmp*=2) if(line[i] == '1') num += tmp;
   if(line[1] == '1') num -= 65536;
   printf("%s ===> D%6d\n", line, num);
   break;
  case 'D':
   num = atoi(&line[1]);
   if(num < -32768 || num > 32767) return 1;
   if(num < 0) num += 65536;
   for(i=15; i >= 0 && num != 0; i--, num/=2){
    if( num%2 == 0) buf[i] = '0';
    else buf[i] = '1';
   }
   for(; i >= 0; i--) buf[i] = '0';
   printf("D%6s ===> B%s\n", &(line[1]), buf);
   break;
 }
 return 0;
}

793:デフォルトの名無しさん
08/01/25 21:40:23
蛆じょあ

794: ◆t0OD42fqHw
08/01/26 16:55:04
[1] 授業単元: C++
[2] 問題文(: vectorクラスを利用して、int型を格納する動的配列を生成せよ
まず1~20までの間の奇数を格納せよ。
それから、追加で 21~40までの間の奇数を格納せよ
そして、11~30までの間の奇数を格納している要素を削除せよ
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限: [無期限]
[5] その他の制限: なし

795:デフォルトの名無しさん
08/01/26 17:13:05
#include <vector>
#include <algorithm>
#include <cstdio>

static void bar(int val) {printf("%d\n", val);}

int main()
{
std::vector<int> foo;
for (int ic = 1; ic <= 20; ic += 2) {
foo.push_back(ic);
}
for (int ic = 21; ic <= 40; ic += 2) {
foo.push_back(ic);
}
for (int ic = 11; ic <= 30; ic += 2) {
foo.erase(remove(foo.begin(), foo.end(), ic), foo.end());
}
std::for_each(foo.begin(), foo.end(), bar);
return 0;
}

796:デフォルトの名無しさん
08/01/27 14:43:59
[1] 授業単元:プログラミングⅡ
[2] 問題文(含コード&リンク):与えられたデータ(data1.txt
)に対して季節調整を行うプログラムを作成しなさい。
<調整法>
i年目、j月のデータを aij とする。
月平均 Mj
月平均の平均 M
調整のための指数 Sj = Mj / M
調整結果 aij / Sj
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:2月3日
[5] その他の制限: 特にありません。

よろしくお願いします。

797:デフォルトの名無しさん
08/01/27 16:27:32
>>796
data1.txtがどんな物か分からないとやりようが無いYO
data1.txtをうpしてクレYO
調整結果は画面に表示すれば良いのかな?

798: ◆DSpH.2sBBQ
08/01/27 19:43:32
[1] 授業単元: C++
[2] 問題文
格子状(一辺20mのブロック×縦横10ブロック)の道を、人が4m/sで移動し
任意の座標(通路上に自由に指定可)にある複数の障害物とのそれぞれの距離を、各分岐点で表示しなさい。
スタートは左下の点、ゴールは一番右上の点とする。人が通る道順も自由に指定可。
障害物の上を通る場合は人の速度を1m/sとし、ゴールに到着するまでにかかった総時間も表示しなさい。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限: とても急いでます(>_<)
[5] その他の制限: なし


本当に切羽詰ってます!ぼるじょあさん、宜しくお願い致します!!

799:#
08/01/27 20:31:30
>>797
すいません。貼り付け忘れてました。

データ(12カ月×5年)
40.0 37.7 51.8 45.9 45.2 45.4 62.0 40.8 42.1 49.1 51.5 93.4
42.6 39.5 53.4 47.6 47.0 47.5 63.5 42.2 42.9 51.1 51.8 94.7
43.3 39.8 53.6 48.5 48.3 47.5 65.9 42.8 43.7 53.2 52.9 97.0
44.9 42.3 55.0 50.7 48.6 48.9 68.8 43.3 46.2 54.2 54.6 100.5
47.5 42.8 57.7 52.6 51.0 50.9 71.4 45.0 47.3 56.8 56.7 102.7

調整結果は、画面に表示させてください。よろしくお願いします。


800:デフォルトの名無しさん
08/01/27 21:59:00
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
 2つの正の整数値a,bの最大公約数を出力するプログラムを
 ユークリッドの互除法というアルゴリズムを用いて作成したい。
 以下のプログラムの****部分に適切な処理をいれて,プログラムを完成させなさい。

#include <stdio.h>
int main( void )
{
 int a, b;    /* 変数の宣言 */
 int m, n;
 scanf( "%d,%d", &a, &b );/* 2つの正の整数値を入力する */
 m=  a ;
 n=  b ;
 while(m **** n){   /* ユークリッドの互除法を適用 */
  if( m > n )
   m =  *****    ;
  else
   n =  ****     ;

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C言語
[4] 期限: [2008年1月28日12:00まで]
[5] その他の制限: 特になし

よろしくお願いします。

801:デフォルトの名無しさん
08/01/28 03:38:20
全部あれかよwなさけねえ

802:デフォルトの名無しさん
08/01/28 20:27:53
>>796
こんなので良いかな?
URLリンク(kansai2channeler.hp.infoseek.co.jp)

803:デフォルトの名無しさん
08/01/31 16:31:13
[1]授業単元:C言語
[2]問題文:単純なソートアルゴリズム(バブル・選択・挿入)のどれか1つと、クイックソートアルゴリズムを計算量を比較するプログラムを作る。
 *自分はバブルソートを選択しました。
[3]環境
 [3.1]OS:(Windows XP)
[3.2]Ultara-C pro version 2.1
[3.3]言語:c言語
[4]期限:2008年2月1日 AM2:00まで
[5]その他制限:特になし

プログラムが長かったのでろだにアップしています。URLは下記に貼り付けています。
2008/01/30(Wed) 17:02 No.5941 が自分の書き込みです。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

よろしくお願いします。

804:デフォルトの名無しさん
08/01/31 18:39:47
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):フロッピードライブのディスクイメージを作成せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Borland C++
 [3.3] 言語:C
[4] 期限: 2008/02/05に提出
[5] その他の制限:
基本的なことはできます。RAW Readをやらせたいんだと思うので、標準ライブラリ以外はダメです。
ioctrlを使うんだと思うんですが・・・。
すみません。資料へのリンクだけでもいいのでお願いします。

805:デフォルトの名無しさん
08/01/31 19:16:23
>>804
・ディスクイメージを作成せよ
・RAW Readをやらせたい
・ioctrlを使う
相互に矛盾しているとは思わんかね。

806:804
08/01/31 19:43:51
>>805
そうなんですか・・・?
FDイメージを作成するためにFDをFATでのReadではなく、RAW Readをしなければならない。
RAW Readをするためには・・・と思って調べていくとioctrlがそれっぽいかなぁというところまでは行ったつもりだったんですけど、違うんですか?


807:デフォルトの名無しさん
08/01/31 21:40:57
>>802
はい、ありがとうございます。使わせていただきます。

808:デフォルトの名無しさん
08/01/31 22:35:54
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 線形探索/二分探索 の2つの方法での計算時間の違いをC言語実装によって
定量的に示す。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Microsoft Visual C++ 2005 Express Edition もしくはUltara-C pro version 2.1
 [3.3] 言語: Cのみ
[4] 期限: ([2008年2月1日AM:6:00まで
[5] その他の制限: 特に無いです。

よろしくお願いします

809:デフォルトの名無しさん
08/02/01 02:28:34
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):手の平の2値画像(URLリンク(www2.uploda.org)):手領域は255、背景は0 を使って
・手領域の面積 SS
・手領域の重心位置 (Mg,Ng)
・手領域の外接長方形 (RI,RJ) (RM,RN)
を計算して表示するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語: Cのみ
[4] 期限: 2008年2月4日まで
[5] その他の制限:なし

よろしくお願いします。

810:デフォルトの名無しさん
08/02/01 19:08:22
>>804
Windows環境でBorlandC++を使っていいならAPIでいいやん。

CreateFile
 引数:\\.\C:\


で検索してみ。

811:モダン
08/02/01 19:14:16
[1] 授業単元:C言語
[2] 問題文 優先順位つき四則演算(小数点付き)
例 261.5*(2.3+7.9)+6.3/3.0=
を計算して表示するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語: C++のみ
[4] 期限: 2008年2月5日まで
[5] その他の制限:特にありません

812:デフォルトの名無しさん
08/02/01 19:36:28
マルチ死ね

813:デフォルトの名無しさん
08/02/05 15:20:05
セリオも死ね

814:デフォルトの名無しさん
08/02/14 07:59:39
>>811
URLリンク(kansai2channeler.hp.infoseek.co.jp)

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

よろしくお願いします。

816:デフォルトの名無しさん
08/02/15 10:56:45
>>815
URLリンク(kansai2channeler.hp.infoseek.co.jp)

817:デフォルトの名無しさん
08/02/16 16:21:16
>>816
ありがとうございます。

818:デフォルトの名無しさん
08/03/03 13:16:38
[1] 授業単元:プログラミング
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC2005
 [3.3] 言語:C
[4] 期限:3月3日 15:00(15:15分学校へ)
[5] その他の制限:特にありません。


819:ぼるじょあ ◆yBEncckFOU
08/03/05 00:52:34
>>818
(・3・) エェー (いろんな意味で)ねーYO!

820:ぼるじょあ ◆yBEncckFOU
08/03/17 15:14:40
(・3・) エェー Fizz-Buzz 問題解いてみるYO!

問題:
1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、
3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

#include <stdio.h>

int main(void){
int i;

for(i=1;i<=100;i++){
if(i%3==0 && i%5==0) printf("FizzBuzz\n");
else if(i%3==0) printf("Fizz\n");
else if(i%5==0) printf("Buzz\n");
else printf("%d\n", i);
}

return 0;
}

821:ぼるじょあ ◆yBEncckFOU
08/03/17 15:20:09
>>820 の別解
#include <stdio.h>

int main(void){
int i;
char *print_format[]={"%d\n", "Fizz\n", "Buzz\n", "FizzBuzz\n"};

for(i=1;i<=100;i++){
printf(print_format[!(i%3)+(!(i%5))*2], i);
}

return 0;
}

822:デフォルトの名無しさん
08/03/17 22:27:32
>>820-821
ナベアツオツ

823:デフォルトの名無しさん
08/03/18 09:24:13
本家が荒れているのでこちらをage!
宿題をやってもらいたい人かもーん!!

824:デフォルトの名無しさん
08/03/19 00:46:24
今の時期に宿題が出るとは思えませんが、お暇ならこの問題をどうぞ
3^(1,000,000,000,000,000)MOD23を計算せよ。

825:デフォルトの名無しさん
08/03/19 00:58:33
3と23の最小公倍数ってどうやって算出すればいいんですか?

826:デフォルトの名無しさん
08/03/19 01:08:27
>>825
3と23を掛けた後、最大公約数で割る。



827:デフォルトの名無しさん
08/03/19 01:24:32
#include <stdio.h>
#include <math.h>

int main(void)
{
int i, amari = 3;

for(i = 0; i < 15; i++)
{
amari = int(pow((double)amari, 10.0)) % 23;
}
printf("%d", amari);
return 0;
}

828:デフォルトの名無しさん
08/03/19 12:34:54
#include <stdio.h>
int main(void)
{
const int a = 3, b = 23;
int i = b;
while (i % a != 0) i += b;
printf("%d\n", i);
return 0;
}

829:ぼるじょあ ◆yBEncckFOU
08/03/24 06:50:44
>>824
(・3・) エェー 出遅れたYO!
          >>827 は有効桁数を超える可能性があるYO!
          (3**10 も 8**10 も 2**31 以上じゃないから大丈夫だけど)

#include<stdio.h>

int main(void){
int i, j;
int result=1, mul=3;

for(j=0;j<15;j++){
for(i=0;i<10;i++) result=(result*mul)%23;
mul=result;
}
printf("%d\n", result);

return 0;
}

830:デフォルトの名無しさん
08/03/25 00:53:01
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語:C言語
[4] 期限:2008年3月25日午後1時
他スレでも聞いてみたのですが結局不合格となってしまいました
よろしくお願いします。
[5] その他の制限:なし

831:ぼるじょあ ◆yBEncckFOU
08/03/25 00:58:59
>>830
(・3・) エェー なんか処理内容見落としてるYO!

> if ((imonths >2) && ((iyear % 4 == 0) && ((iyear % 100 !=0) || (iyear % 400 == 0)))) {

(imonths >2)
はどこいったんだYO!

832:デフォルトの名無しさん
08/03/25 01:06:36
妹なら俺のちんぽしゃぶってるが

833:デフォルトの名無しさん
08/03/25 23:19:05
>>831
忘れてました・・・ありがとうございますw

834:デフォルトの名無しさん
08/03/25 23:37:06
>>832
忘れてました・・・ありがとうございますw

835:デフォルトの名無しさん
08/04/03 01:55:14
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語:C言語
[4] 期限:2008年4月4日
以前教えてもらった問題の続きで申し訳ないのですが
ヨロシクおねがいします。
[5] その他の制限:なし

836:デフォルトの名無しさん
08/04/03 02:18:43
>あとこのソースって前年度の総日数(365xyear-1)とかがぬけてますよね?
質問してるところのループだけじゃなくて、その前のループもわかってないじゃんw

837:デフォルトの名無しさん
08/04/03 08:15:45
で?

838:デフォルトの名無しさん
08/04/03 19:13:36
>>835
まずはインデントそろえろよw

839:839
08/04/12 16:12:38
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:visual studio 2003
 [3.3] 言語: C言語
[4] 期限:2008年4月14日8:00
[5] その他の制限:C言語入門書をやったぐらいの初心者ですので
なるべく簡単にしてくれるとありがたいです.

どうぞよろしくお願いします  orz


840:ぼるじょあ ◆yBEncckFOU
08/04/12 18:01:36
(・3・) エェー 全然初心者用の問題じゃないお

841:ぼるじょあ ◆yBEncckFOU
08/04/13 14:31:03
>>839
(・3・) エェー 問題文の意味が分からないYO!

842:839
08/04/13 18:14:42
URLリンク(kansai2channeler.hp.infoseek.co.jp)
こんな感じにしたいです。たぶん説明が下手で、すいません。
どうかお力を貸してください。お願いします

843:839
08/04/14 13:00:50
期限を今日の8:00までと書いてますが期限を延ばしてもらったので、
どうぞ教えていただけないでしょうか

844:homoじょあ ◆5OLf4yFnuM
08/04/15 01:34:46
(・3・) エェー 期間が、明日明後日だと僕は無理だYO
          もっと余裕があるならやってもいいYO

845:デフォルトの名無しさん
08/04/15 12:05:41
期日が短くてすいません  orz
では>>842のプログラムをもっと簡単にはできないでしょうか?
お願いします

846:デフォルトの名無しさん
08/04/15 14:42:48
(・3・) エェー これの前後を参考にしてみるのはどうYO
スレリンク(tech板:731番)n

847:デフォルトの名無しさん
08/04/15 22:45:58
マルチポストして解決したんなら、こっちでも報告するのが筋だろ。

848:デフォルトの名無しさん
08/04/15 23:08:40
はい仰る通りですね、すいません。  orz
いいわけになりますが、やってもらったプログラムの理解とフローチャートを作ろうとしていたもの
ですから報告が遅れました。そして私の宿題を手伝っていただきありがとうございました。

849:デフォルトの名無しさん
08/04/17 21:06:36
[1] 授業単元: プログラム入門
[2] 問題文(含コード&リンク): 整数aにデータを6つ入力し、偶数、奇数の個数を求めよ
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語: C
[4] 期限: 2008年4月18日12:00まで
[5] その他の制限: 初心者レベルです、Whileやfor、一次元配列までしか・・・

よろしくお願いします。




850:デフォルトの名無しさん
08/04/17 21:24:51
#include <stdio.h>

int main(void)
{
int data[6], i, kisuu=0, guusuu=0;

for(i=0;i<6;i++)
{
printf("%d番目のデータを入力してください:",i);
scanf("%d",&data[i]);
}
for(i=0;i<6;i++)
{
if(data[i]%2==1)kisuu++;
else guusuu++;
}
printf("奇数は%d個、偶数は%d個です",kisuu,guusuu);
return 0;
}

851:デフォルトの名無しさん
08/04/18 00:13:28
>>850
ありがとうございます!助かりました~。


852:デフォルトの名無しさん
08/04/21 08:24:26
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語:C言語
[4] 期限:2008年4月22日
問題 このプログラムを利用して今年のカレンダーを表示させる
よろしくお願いします。
[5] その他の制限:なし

853:ぼるじょあ ◆yBEncckFOU
08/04/21 13:58:43
>>852
(・3・) エェー 元のプログラムが間違ってるYO!
          ツェラーの公式使えYO!

854:デフォルトの名無しさん
08/04/21 17:06:15
ツェラーの公式を使うことが、そんなに辛い(つぇらい)のかね?ん?

855:デフォルトの名無しさん
08/04/21 18:00:39
>>852
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ツェラーの公式を使ったYO! っつか、曜日の配列に "日" が入ってなかったり
何の日数の合計だか分からんかったから、その辺は変更しちゃったYO!

856:デフォルトの名無しさん
08/04/27 14:24:51
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
再帰処理によって、作成した迷路空間を探索するプログラムを作成せよ。
指定された構造体を使用する既存のものの変更は認めないが、変数の追加等は可。
また戻りあり経路と戻りなし経路の両方を表示する
与えられたコードの一部 URLリンク(kansai2channeler.hp.infoseek.co.jp)
迷路データ URLリンク(kansai2channeler.hp.infoseek.co.jp)
* : 壁
0 : 通路
8 : 通路 & スタート
9 : 通路 & ゴール
迷路空間は,必ず長方形であることを前提とする.
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] borlandC++
 [3.3] C言語
[4] 期限: 4/28 13000まで
[5] その他の制限: 特になし
よろしくお願いします

857:デフォルトの名無しさん
08/04/27 18:53:51
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文(含コード&リンク):体育館問題を列挙で解け。

・入力・・・最初に部活の数 n (0 <= n <= 100)が与えられる。
si(部活の活動開始時間),fi(部活の活動終了時間)の順に n 個の整数の組が与えられる。 (0 <= si <= 9999, 1 <= fi <= 10000, si < fi)

・出力・・・活動可能な部活の最大数を出力

Sample Input
n = 5
si fi
0 5
13 20
15 27
4 10
25 30

Sample Output 3

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] Borland C++
 [3.3] 言語:C++
[4] 期限: [2008年5月2日17:00まで]
[5] その他の制限:特にありません

よろしくお願いしますm(_ _)m


858:デフォルトの名無しさん
08/04/27 19:53:14
[1] 授業単元:プログラミング実験(ソフト開発)
[2] 問題文(含コード&リンク):
下記の機能を持つ原始的なペイントソフトの作成をせよ。最低でも1.2は必須の機能である。

1.直線の描画
左ボタンを押しながらマウスを移動させ、左ボタンを離すと、左ボタンを押した座標から離した座標までの直線を描画する。
この際、移動最中の過程を消すためのXORペンを使用する。moveto,linetoという関数を用いる。

2.ラバーバンド
右ボタンを押しながらマウスを移動すると、右ボタンを押した座標とマウスの現座標を頂点とする矩形を描写する。

3.ハイライト
描いた直線の先端にマウスカーソルを合わせると、端点が強調される。

4.右ドラッグ選択
描いた直線をラバーバンドで囲み、右クリックを離すと、ラバーバンド内の直線の端点が強調される。

[3] 環境
 [3.1] OS:Windows XP
 [3.2] Visual C++ 2005(or2008) Express Edition
 [3.3] 言語:C++
[4] 期限: 2008年5月4日まで
[5] その他の制限:Windowsフォームアプリケーションで作成。

1.2の機能を持つものであれば十分すぎるほど十分です。
ぜひお力添えしていただければと思います。よろしくお願いします。

859:デフォルトの名無しさん
08/04/27 20:10:45
>>857,>>858
共にマルチ

860:デフォルトの名無しさん
08/04/28 12:50:17
はわわ~、ってネタが古いですぅ~?

861:デフォルトの名無しさん
08/05/20 14:01:27
[1] 授業単元: C言語
[2] 問題文:文字列s1の中から文字列s2に含まれる文字を取り除く.関数の戻り値は文字列s1(の先頭を指すポインタ値).

テストプログラムでは,文字列s2は固定でも構わない.しかし,関数の仕様としては,s1とs2の両方を引数にする.できるならば,s2もキーボードから入力できるようにする.

s1: "This is a pen."
s2: "sp."

s1: "Thi i a en"

[3] 環境
 [3.1] OS:LINUX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 2008/05/026に提出
C言語全然分からなくて困ってます。どうかよろしくお願いします。

862:ぼるじょあ ◆yBEncckFOU
08/05/20 14:12:04
>>861
(・3・) エェー 久々だYO!

#include <stdio.h>

unsigned char *hoge(unsigned char *s1, const unsigned char *s2){
int i, j, remove_flag[256]={0};

for(i=0;s2[i];i++) remove_flag[s2[i]]=1;
for(i=j=0;s1[i];i++) if(!remove_flag[s1[i]]) s1[j++]=s1[i];
s1[j]='\0';
return s1;
}

int main(void){
char s1[1024]="", s2[1024]="sp.";

fgets(s1, sizeof(s1), stdin);
puts(s1);
hoge(s1, s2);
puts(s1);

return 0;
}

863:デフォルトの名無しさん
08/05/20 14:17:26
#include <stdio.h>
#include <string.h>
// s1にs2[some]が存在したら詰めると言う横着アルゴリズム。
// s1[some]がs2中に存在したら詰めると言う戦略のほうが無難かと思われる。
static void removeChars(char * s1, const char * s2)
{
for (const char * s2p = s2; * s2p != '\0'; ++s2p)
for (char * p; (p = strchr(s1, * s2p)) != NULL; strcpy(p, p + 1)) ;
}
// 以下はテスト用サンプル。提出に当たっては適当に修正されたし。
int main(int argc, char ** argv)
{
removeChars(argv[1], argv[2]);
puts(argv[1]);
return 0;
}

864:デフォルトの名無しさん
08/05/20 16:31:42
strcpy(p, p + 1)
これって未定義じゃねーの?

865:デフォルトの名無しさん
08/05/20 16:47:06
【質問テンプレ】
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
キーボードから文字列を入力し、それを逆順に表示するプログラムを作成せよ。
表示には必ずポインタを用いること。

[3] 環境
 [3.1] OS: (Windows xp
 [3.2] コンパイラ名とバージョン: Cl
 [3.3] 言語: C言語
[4] 期限:2008年5月22日hh:17時
[5] その他の制限:
文字列の長さを知る必要があるので工夫する.
ポインタに最初どこを向けさせて、どこまでいったら表示を終えるかを考えること。

よろしくお願いします。

866:863
08/05/20 17:00:13
// >864の指摘も尤もなので、修正した。
// ついでに、s1[some]がs2中に存在したらコピー元をずらして、毎回一文字だけコピーする戦略に。
// これって、中のwhileの行を取り除いてp = s1をp = s2にしたらstrcpy()だ。
//
static void removeChars(char * s1, const char * s2)
{
char * p = s1;
do {
while (* p != '\0' && strchr(s2, * p)) ++p;
* s1++ = * p;
} while (* p++ != '\0');
}

867:マイク ◆yrBrqfF1Ew
08/05/20 17:57:22
アルエェー
ぼるじょあってまだいたのかYO!
健康なのかYO!

868:デフォルトの名無しさん
08/05/20 18:04:52
>>865
#include <stdio.h>

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

scanf("%s", str);

for(p=str; *p; p++);

while(p-->str) putchar(*p);

return 0;
}

869:デフォルトの名無しさん
08/05/20 18:10:32
せめてscanf("%255s", str)にしようよ。

870: ◆g/ZMVdytmo
08/05/20 22:18:53
[1] 授業単元: C言語 for文
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: CygnusVer.2.02.1
 [3.3] 言語: C
[4] 期限: ([2008年5月22日17:00まで]
[5] その他の制限: 2問別々に組む。for文使用。
2問内包ですが、よろしくお願いします。

871:865
08/05/20 22:49:45
>>868

ありがとうございます!

872:ぼるじょあ ◆yBEncckFOU
08/05/20 23:57:49
>>870
(・3・) エェー でけたYO!
#include<stdio.h>

int main(void){
int i, j, n;

printf("段数を入力してください:");
scanf("%d", &n);

for(i=0;i<n;i++){
for(j=0;j<n-i;j++) printf("*");
printf("\n");
}
return 0;
}

#include<stdio.h>

int main(void){
int i, j, n;

printf("段数を入力してください:");
scanf("%d", &n);

for(i=0;i<n;i++){
for(j=0;j<n-1-i;j++) printf(" ");
for(j=0;j<=i;j++) printf("*");
printf("\n");
}
return 0;
}

873: ◆g/ZMVdytmo
08/05/21 00:12:59
ぼるじょあ氏超絶感謝!!
意外とシンプルワラタww

874:デフォルトの名無しさん
08/05/21 11:00:12
>>862
どうもありがとうございます。
どうやら条件があるみたいで「配列版」と「ポインタ版」 をつくり,それらの動作をテストするためのプログラムを作成する.
どの関数も,与えられた文字列に何らかの加工を施すものである「配列版」とは,関数内の文字列に対する処理を配列的表現を使って記述したものである.文字列sの中のある文字にアクセスする場合に,s[i]という表現を用いる.
「ポインタ版」とは,関数内の文字列に対する処理をポインタ使って記述したものである. 関数内には,全く配列的表現が現れないように書く.単に,配列版の s[i] を *(s+i) に置き換えるだけではダメで,ポインタ変数の値を変化させて文字列を走査するように記述する.
なんか面倒くさくて申し訳ないですが、よろしくお願いします。

875:デフォルトの名無しさん
08/05/21 11:26:33
[1] 授業単元: C言語 for
[2] 問題文(含コード&リンク): 整数の個数を読み込み、その個数分の整数を
読み込み、読み込んだ整数の最大値を求めるプログラムを作れ。

整数の個数: 3
No.1: 6
No.2: 3
No.3: 4
最大値は 6 です
[3] 環境
 [3.1] OS: WINDOWS XP
 [3.2] コンパイラ名とバージョン: Cl
 [3.3] 言語: C
[4] 期限: 2008年5月21日19:00
[5] その他の制限: for文を使う事。

お願いしますm(__)m

876:ぼるじょあ ◆yBEncckFOU
08/05/21 11:29:57
>>874
(・3・) エェー そういうことは先に言えYO!
#include <stdio.h>
#include <string.h>

unsigned char *hoge(unsigned char *s1, const unsigned char *s2){
char *src, *dest;

for(src=dest=s1;*src;src++){
if(!strchr(s2, *src)) *dest++=*src;
}
*dest='\0';
return s1;
}

int main(void){
char s1[1024]="", s2[1024]="sp.";

fgets(s1, sizeof(s1), stdin);
puts(s1);
hoge(s1, s2);
puts(s1);

return 0;
}

877:ぼるじょあ ◆yBEncckFOU
08/05/21 11:34:22
>>875
(・3・) エェー でけたYO!
#include <stdio.h>

int main(void){
int i, value_num, value, maximum_value=12345;

printf("整数の個数: ");
scanf("%d", &value_num);

for(i=0;i<value_num;i++){
printf("No.%d: ", i+1);
scanf("%d", &value);
if(i==0 || value>maximum_value) maximum_value=value;
}
printf("最大値は %d です\n", maximum_value);

return 0;
}

878:デフォルトの名無しさん
08/05/21 11:41:23
>>877 乙です。助かりました!

879:デフォルトの名無しさん
08/05/22 14:49:36
【質問テンプレ】
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク)
身長 150 cm から 170 cm までの標準体重(BMI法で計算)によるの対応を
表示するプログラムを for 文を使って作成せよ。
標準体重は小数点以下を1桁だけ表示すること。


[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:特になし
[5] その他の制限:特になし

880:デフォルトの名無しさん
08/05/22 16:55:15
>>879
スレリンク(tech板:455番),460

881:ぼろじょあ
08/05/24 06:03:58
(´3`) エェー でけねーYO!

882: ◆ob60wHXQlc
08/05/26 23:12:53
[1] C言語
[2] 後から用意される2つのファイルがマージできるプログラムをつくる。
  ファイルのサイズは最大で1000バイト。
  unsigned shortを使う。
  昇順。
[3] 環境
 [3.1] Windows
 [3.2] visual studio
 [3.3] C
[4] 5月27日のお昼まで。
[5] C言語始めて3週間です。

お願いします。



883:ぼるじょあ ◆yBEncckFOU
08/05/27 10:35:13
>>882
(・3・) エェー 問題の意味が分からないYO!

884:デフォルトの名無しさん
08/05/27 13:15:08
[1] 授業単元: C言語
[2] 問題
文字列sの文字の順を逆に置き換える.
関数の戻り値は文字列s(の先頭を指すポインタ値).
s: "This is a pen."

s: ".nep a si sihT"
[3] 環境
 [3.1] OS:LINUX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
>876いつもありがとうございます。
助かります。
追加で問題だされました。
配列版のほうは自力でできましたがポインタ版のほうは無理でした。
よろしくお願いします。

885:ぼるじょあ ◆yBEncckFOU
08/05/27 18:03:04
>>884
(・3・) エェー 配列版とかポインタ版とか省略すんなYO!
          過去ログ読み直さないと意味分からんYO!
#include<stdio.h>

char *reverse(char *s){
char *p, *q, t;

for(p=q=s;*q;q++);
for(q--;p<q;p++,q--) t=*p,*p=*q,*q=t;
return s;
}

int main(void){
char s[]="This is a pen.";

puts(s);
puts(reverse(s));
return 0;
}

886: ◆Anhlv1kDvE
08/05/27 21:17:24
【質問テンプレ】
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
コマンドプロンプトで実行して
”ファイル名は?”
と聞いてきてテキストファイルのフルパス(場所)を入力してエンターキーで次は
”作成先は?”
と聞いてきてフルパス(場所)を入力してエンターキーで終わり、

英文のかかれたテキストファイルから全英単語を重複なく順番に新しいテキストファイル(以下、”NEWテキスト”と呼ぶ)に書き込み保存するプログラミングです。


実際の内容の結果は次のようになる。


-------------------英文.txt-------------------------------

I was wondering if my plant needs friends, do I need to get more of the same plant so it can get polinated and produce peppers?


続く

887: ◆Anhlv1kDvE
08/05/27 21:20:15
886 続き1
------------------new英文.txt(プログラムによって新規作成)------------------------------

I
was
wondering
if
my
plant
needs
friends,
do
need
to
get
more
of

888:"gra454
08/05/27 21:21:14
887 続き

the
same
so
it
can
polinated
and
produce
peppers?

-------------------------------------------------


ポイント


(1)
NEWテキストの重複チェックは同じ単語でも大文字と小文字ひとつでも違えば書き込みはOKとする(プログラムが楽なよう)

   例)Apple と apple



889:gra454
08/05/27 21:22:15
888 続き

では違うものとしNEWテキストに書き込みされる。また同じ単語でも記号が含まれていても違う単語と判断し、記号付きのままNEWテキストに書き込む。

   例)get! と get

つまり小文字、大文字を区別して一致し、さらに文字数も一致しないと重複とみなされない。
(できるならnew英文.txtは記号を削除して英数字の大文字と小文字のみにしたい。その場合上の例は重複となる)
(2)
Windowsで動作すること。NEWテキストのファイル名は毎回入力しないでいいように、英文のテキストファイルのファイル名の先頭に"new" をつけたものでいい。

   例)英文.txt → new英文.txt

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual C++ 2005
 [3.3] 言語: どちらでも可
[4] 期限: ([2008年6月2日まで]
[5] その他の制限: 初心者です


890:ぼるじょあ ◆yBEncckFOU
08/05/27 21:36:09
>>886
(・3・) エェー ほらYO!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct tag_list_t{
int num;
char **wordlist;
}list_t;
int list_add(list_t *list, char *word){
int i;
for(i=0;i<list->num;i++) if(strcmp(list->wordlist[i], word)==0) return 0;
list->wordlist=realloc(list->wordlist, sizeof(char*)*(list->num+1));
list->wordlist[list->num]=strdup(word);
list->num+=1;
return 1;
}
int main(void){
list_t list={0, NULL};
char fname_in[FILENAME_MAX], fname_out[FILENAME_MAX], word[255+1];
FILE *fp_in, *fp_out;
printf("”ファイル名は?”");
scanf("%s", fname_in);
printf("”作成先は?”");
scanf("%s", fname_out);
if((fp_in=fopen(fname_in, "r"))==NULL) return 1;
if((fp_out=fopen(fname_out, "w"))==NULL) return 2;
while(fscanf(fp_in, "%255s", word)==1) if(list_add(&list, word)) fprintf(fp_out, "%s\n", word);
fclose(fp_in);
fclose(fp_out);
return 0;
}

891:デフォルトの名無しさん
08/05/27 22:05:17
質問長いしうpロダ使えよ

892:ぼるじょあ ◆yBEncckFOU
08/05/27 22:19:22
>>889
(・3・) エェー 記号削除版だYO!
while(fscanf(fp_in, "%255s", word)==1) if(list_add(&list, word)) fprintf(fp_out, "%s\n", word);

while(fscanf(fp_in, "%255[A-Za-z]%*[^A-Za-z]", word)==1) if(list_add(&list, word)) fprintf(fp_out, "%s\n", word);

893:デフォルトの名無しさん
08/05/28 00:15:53
[1] 授業単元: C言語 配列
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp) 環境
 [3.1] OS: WINDOWS XP
 [3.2] コンパイラ名とバージョン: Cl
 [3.3] 言語: C
[4] 期限: 2008年5月29日19:00
[5] その他の制限: 配列を使う事。
お願いします(><)

894:デフォルトの名無しさん
08/05/28 00:17:25
>>893
URLリンク(kansai2channeler.hp.infoseek.co.jp)
間違えたんで一応…

895: ◆hwfaJ.m7oQ
08/05/28 00:28:46
>>886
ありがとうございます。

実行すると(記号未削除版)

ファイル名は? 1.txt
作成先は? C:\
続行するには何かキーを押してください . . .

と出てエンターキーをおしても何も作られませんが?


896:デフォルトの名無しさん
08/05/28 00:40:57
ヴィジュアルベーシック2005
携帯プログラミング
テキストボックス1に文字が出る
ボタン12個
ボタン1(1)
ボタン2(2、A,B,C)
ボタン3(3、D,E,F)
・・・
ボタン9(9、W,X,Y,Z)
ボタン10(*)入力画面を初期化
ボタン11(0)
ボタン12(#)同じ文字・数字をつづけて入力できる

多いですがプログラミングコードを教えてください。
本当によろしくお願いします。


897:homoじょあ ◆5OLf4yFnuM
08/05/28 06:49:27
>>893
#include <stdio.h>

int main(void){
int score[20], range[5] = {0}, input, i = 0, k;

while(i < 20){
printf("[No.%2d]の成績を入力して下さい: ", i+1);
scanf("%d", &input);
if(input >= 1 && input <= 5){
score[i] = input;
range[input -1]++;
i++;
}
}
puts("*** 成績分布 ***");
for(i=0; i<5; i++){
printf("評価[%d] (%2d人) ", i+1, range[i]);
for(k=0; k<range[i]; k++){
if(k != 0 && k%5 == 0) putchar(' ');
putchar('*');
}
puts("");
}
return 0;
}


898:デフォルトの名無しさん
08/05/28 09:33:44
>>897
乙です。

899:デフォルトの名無しさん
08/05/28 09:43:03
[1] 授業単元: C
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp) 環境
 [3.1] OS: WINDOWS XP
 [3.2] コンパイラ名とバージョン: Cl
 [3.3] 言語: C
[4] 期限: 2008年5月29日19:00
[5] その他の制限: 配列を使用
よろしくお願いします

900: ◆ob60wHXQlc
08/05/28 09:57:39
>>883
100個の数字が入ったファイルが2つ用意されるので、
それを合わせて昇順にソートして、
新しいファイルに書き込むというものです。
ファイルはいっきに読み込まず、1レコードずつです。

よろしくお願いします。


901:デフォルトの名無しさん
08/05/28 10:09:06
>>899
URLリンク(kansai2channeler.hp.infoseek.co.jp)

902:デフォルトの名無しさん
08/05/28 10:12:33
[1] 授業単元: C
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Cygnus
 [3.3] 言語: C
[4] 期限: 今週
[5] その他の制限: 配列を使用
お願いします。。。

903:デフォルトの名無しさん
08/05/28 10:14:02
>>901
ありがとうございますっ

904:ぼるじょあ ◆yBEncckFOU
08/05/28 10:31:25
>>882
(・3・) エェー こんなもん?
#include<stdio.h>
#include<stdlib.h>
#define DATA_NUM_MAX (100*2)

int compare(const unsigned short *a, const unsigned short *b){
if(*a>*b) return 1;
if(*a<*b) return -1;
return 0;
}
int main(int argc, char *argv[]){
FILE *fp_in, *fp_out;
unsigned short data[DATA_NUM_MAX];
int i, data_num=0;

if(argc!=4){
printf("Usage: ./a.out filename[in] filename[in] filename[out]\n");
return 0;
}
for(i=0;i<2;i++){
if((fp_in=fopen(argv[i+1], "r"))==NULL) return 1;
for(;data_num<DATA_NUM_MAX;data_num++)
if(fscanf(fp_in, "%hu", &data[data_num])!=1) break;
fclose(fp_in);
}
qsort(data, data_num, sizeof(data[0]), (int (*)(const void *,const void *))compare);
if((fp_out=fopen(argv[3], "w"))==NULL) return 2;
for(i=0;i<data_num;i++) fprintf(fp_out, "%hu\n", data[i]);

return 0;
}

905:デフォルトの名無しさん
08/05/28 10:46:29
>>902
URLリンク(kansai2channeler.hp.infoseek.co.jp)

906: ◆ob60wHXQlc
08/05/28 11:01:50
>>883
ありがとうございます!!!!!!!
ちなみに、入ってる数字の数は不明だったとして、
ファイル1とファイル2の名前は相手に入力させ、
freadとfwriteを使ってファイル3に書き込み、
それをソートして1レコードずつ出力する。
っていうのはできたりするんでしょうか‥。
長くてすいません‥。



907:デフォルトの名無しさん
08/05/28 11:08:15
>>905
ありがとうございます。
しかし、コンパイルしたら(haii1.cで保存)
haii1.c: In function `main':
haii1.c:14: warning: unknown escape sequence: `\' followed by char code 0x8e
となってしまいました…。
該当部分のprintf("\nデータ一覧を表示します\n");を削ったら成功したんですがどうすればいいんでしょう?

908:デフォルトの名無しさん
08/05/28 11:11:04
んなあほな、そこはエラーというエラーは起こらないはずだが・・・

909:ぼるじょあ ◆yBEncckFOU
08/05/28 11:15:12
「表示」 S-JIS 文字コードの場合、十六進数表記で 95 5C 8E A6
5C == '\\'

ってことでコンパイルオプションに以下を追加すればいいYO!
--input-charset=cp932 --exec-charset=cp932

910:デフォルトの名無しさん
08/05/28 11:17:13
俺も問題無し

911:デフォルトの名無しさん
08/05/28 11:27:09
すみませんが初心者なので>>909がよくわかりません。。。
具体的にはどうすればいいのでしょうか?
「表示」だけ削ればたしかに成功しますが…。

912:デフォルトの名無しさん
08/05/28 11:29:04
とりあえず、エラーじゃなくて警告だからスルーしておk

913:デフォルトの名無しさん
08/05/28 11:30:43
"表\示します" にすればいけるだろ

914:デフォルトの名無しさん
08/05/28 11:31:33
データ一覧を侮ヲします
とでました。orz

915:デフォルトの名無しさん
08/05/28 11:33:54
>>913
よっしゃあああああああああああああああああああああああ
できました!!皆様ありがとうございました!!!!

916:デフォルトの名無しさん
08/05/28 11:36:07
>>911
コンパイラする時にcmdで渡す引数に
--input-charset=cp932 --exec-charset=cp932
を追加するって意味
C:\Work>command --input-charset=cp932 --exec-charset=cp932

917:デフォルトの名無しさん
08/05/28 11:43:48
>>916
(´_ゝ`)フーン了解です。

918:デフォルトの名無しさん
08/05/28 11:43:58
まあ ソ系ダメ文字 でググれば原因はわかるはず

919:デフォルトの名無しさん
08/05/28 11:48:04
あぁ、あったなぁ・・・ソね。そーっすね。そうだね、そうなのか・・・そっかぁ・・

920:デフォルトの名無しさん
08/05/28 14:46:56
最小値の出し方はわかるんですけど、2番目に小さい値ってどうすれば出ますかね

921:デフォルトの名無しさん
08/05/28 14:47:52
最小の次、あるいはもう ソ ートして2番目ってことで

922:920
08/05/28 15:25:47
>>921
お早い解答有難うございます!
「ソーティング」で調べてやってみたらできました有難う御座いました。

923:デフォルトの名無しさん
08/05/28 15:37:00
さらに3番目、4番目、……、一番大きい値と知りたいとかならともかく
2番目を知りたいだけならわざわざソートするのは無駄が多い気がしなくもない

924:デフォルトの名無しさん
08/05/28 15:41:57
ソうやなぁ。まず一番最小の要素をチェキして、その要素以外で
次に最小のものをチェキ。並び替える必要はないが、基本選択法の
一部を用いれば・・・

925:デフォルトの名無しさん
08/05/28 15:50:14
比較と代入ってどっちが遅いんだっけ
とりあえずi386系

926:デフォルトの名無しさん
08/05/28 16:44:37
俺の超高速挿入はむっちゃ早いで?クイック挿入なんて目じゃねーぜ

927:デフォルトの名無しさん
08/05/28 18:21:22
口で語る前にソース書け

928:デフォルトの名無しさん
08/05/28 19:50:35
>>927
オマエガナー

929: ◆RbkvJVnu4Y
08/05/28 22:05:50
[1] 授業単元:
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: xp
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限:緊急(最終期限:木曜深夜)
[5] その他の制限:習ってるのはポインタ、配列、関数の初歩程度です。
なのでレベルを合わせたプログラムを書いていただけると助かります

URLリンク(kansai2channeler.hp.infoseek.co.jp)
以上の解答をいただいたのですがやはりビットマスクはだめのようです
ビットマスクのとこを配列でやる。
takaraにいっぱい詰め込む必要はないそうです

自分で一日ねばってもできませんでした
どうかお願いしますm(_ _)m

930:デフォルトの名無しさん
08/05/28 23:16:09
要するに全部配列使ってやればいいんでしょ

int takara[SIZE][SIZE];/*宝が入ってれば1 無ければ0*/
int hide[SIZE][SIZE];/*既にオープンされている=1 されていない=0*/
int around[SIZE][SIZE];/*周囲の宝の数*/

もう出来たも同然

931:デフォルトの名無しさん
08/05/28 23:45:34
>>930
defineのビットマスクのとこにその配列を入れるってことですよね?
なんか実行できないのですが…
お手数かけますがプログラムを書いていただけませんか?

932:デフォルトの名無しさん
08/05/28 23:57:30
[1] 授業単元: C
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Cygnus
 [3.3] 言語: C
[4] 期限: 今週まで
[5] その他の制限:配列使用ですが、あまり複雑にならないほうが嬉しいです。

お願いします

933:デフォルトの名無しさん
08/05/29 00:33:13
>>931
適当に変えただけだjけど
これでいいんじゃねーの
URLリンク(kansai2channeler.hp.infoseek.co.jp)

934:デフォルトの名無しさん
08/05/29 00:57:39
>>933
解答していただき本当にありがとうございます
staticっていうのはまだ習ってないのですが簡単に書き直せませんか?

935:デフォルトの名無しさん
08/05/29 01:53:38
>>934
static外せばいいよ
どうせmain()は一回しか呼ばれて無いだろうし

936:デフォルトの名無しさん
08/05/29 02:14:40
#include <stdio.h>
#include <stdlib.h>

main(){
int I, YOU;

srand(time(NULL));
I=rand()%3+1;
YOU=rand()%3+1;

printf("my choice=");
scanf("%d",&I);

printf("your choice=");
scanf("%d",&YOU);


if(I==0){
if(YOU==0){
printf("引き分け\n");}

if(YOU==1){ printf("勝ち\n");}
if(YOU==2){ printf("負け\n");} }

else if(I==1){
if(YOU==0){ printf("負け\n");}
if(YOU==1){ printf("引き分け\n");}
if(YOU==2){ printf("勝ち\n");} }
else{
if(YOU==0){ printf("勝ち\n");}
if(YOU==1){ printf("負け\n");}
    if(YOU==2){ printf("引き分け\n");} }}

937:デフォルトの名無しさん
08/05/29 02:16:08
乱数使ってジャンケンしろって問題なんですが相手(YOU)の入力を
乱数にするにはどうすれば良いのでしょうか?
>>936に書いてみましたが
IとYOUの両方とも入力しなければならないこととなっています。


938:デフォルトの名無しさん
08/05/29 02:40:10
あ、出来ました。
IとYOUってのがちょっと分かりにくいですがw

main(){
int I, YOU;

srand(time(NULL));

YOU=rand()%3+1;

printf("my choice=");
scanf("%d",&I);

printf("your choice=%d\n",YOU);
printf("%d,%d\n",I,YOU);

939:デフォルトの名無しさん
08/05/29 15:39:48
Cで経路探索のA*のプログラムはできますでしょうか?

他言語ならあるのですがcのみないのです・・・

一応c++の擬似コードのりんくを貼っておきます・・・・

URLリンク(d.hatena.ne.jp)

940:デフォルトの名無しさん
08/05/29 16:39:16
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):

西暦年を引数に取り、閏年かどうか判定する
関数 is_leap_year() を用いて、
開始年と終了年を入れると、開始年、終了年およびその間の年に
閏年が何個あるか数えるプログラムを作成せよ。


[3] 環境
 [3.1] OS: (Windows)
 [3.2] 言語: (C++)
[4] 期限: 5/29

941:デフォルトの名無しさん
08/05/29 23:10:09
#include <stdio.h>
int is_leap_year(int year){return((((year) % 4) == 0) && (((year) % 100) != 0) || (((year) % 400) == 0));}
int main(void){
int count=0;
int i,a,b;
scanf("%d %d",&a,&b);
for(i=a;i<=b;i++){
if(is_leap_year(i))
count++;
}
printf("%d",count);
return 0;
}

942:デフォルトの名無しさん
08/05/30 01:41:35
転載。期限切れだけど誰かやってあげて。

[1] 授業単元:Windous Programming
[2] 問題文(含コード&リンク):
限界まで新規ウィンドウを開き続けるプログラムを完成させなさい。ただし、
1.開くウィンドウの閉じるボタン(通常右上に配置される[x]ボタン)は無効にすること。
2.限界まで開いたら、開いたウィンドウを全て閉じてきちんと後始末すること。
3.開いたウィンドウ数をカウントしておき、最後に「あなたのマシンの窓力はxxxです。」
(xxxには数値が入る)とダイアログで表示して終了すること。
[3] 環境:WindowsXP, VC++, C++
[4] 期限: 昼までに
[5] その他の制限: 特になし


943:デフォルトの名無しさん
08/05/30 01:51:00
意味ワカンネ

944:デフォルトの名無しさん
08/05/30 13:24:29
>[1] 授業単元:Windous Programming
そんな単元あるなら見てみたいもんだ。

945:デフォルトの名無しさん
08/05/30 16:49:35
[1]C言語
[2]組・名前・国語の点数・算数の点数が入った構造体がある。
もし組が同じなら、国語の点数を足していって、
1組ごとの合計をファイルに出力して、また次の組も。(算数も同様に。)
[3] 環境
 [3.1]Windows
 [3.2]visual studio
 [3.3]C
[4]5月31日12:00
[5]キーブレイクというのをやらせたいみたいです。

946:デフォルトの名無しさん
08/05/30 17:29:05
>>945
問題文省略して無い?
それじゃいくらなんでも適当すぎる

947:デフォルトの名無しさん
08/05/30 17:29:45
そもそも、キーブレイクとはなんなのだ。

948:945
08/05/30 17:42:38
これしか聞いてなかったので今質問してきます!!



949:デフォルトの名無しさん
08/05/30 18:20:13
>>945
スレリンク(tech板:174番)

950:デフォルトの名無しさん
08/05/30 18:21:19
[1]C
[2]放物線プログラム
 定数として重力加速度、初速度
 経過時間からX,Yをもとめる。
 経過時間0の場合は(X,Y)は(0,0)

951:デフォルトの名無しさん
08/05/30 18:26:16
>>950
スレリンク(tech板:180番)

嫌がらせ?

952:デフォルトの名無しさん
08/05/30 20:05:38
ま、ぼるじょあが何であるか理解できてないような板だから、期待してはいないけどね。

953:945
08/05/30 21:09:46
大事なとこが抜けてました。。

成績データレコード
struct PERSONAL_REC
{
unsigned char number; (クラス番号)
unsigned char reserve[3]; (予備)
unsigned char name[80];
short kokugo;
short sansuu;
};

成績集計レコード
struct CLASS_REC
{
unsigned char number; (クラス番号)
unsigned char reserve[3]; (予備)
short kokugo;
short sansuu;
};

を使うということです!
お願いします。

954: ◆AfLWwW3FJ2
08/05/31 00:12:40
[2] 問題文(含コード&リンク): テキストに
[3] Visual C++ 2005
 [3.1] OS: Windows XP
 [3.2] Visual C++ 2005
 [3.3] 言語: どちらでも可
[4] 期限: 2008年6月2日
[5] その他の制限: 初心者

このプログラムに付け加えたいです
URLリンク(kansai2channeler.hp.infoseek.co.jp)


955:デフォルトの名無しさん
08/05/31 00:49:15
前も質問してなかった?別スレで

956: ◆AfLWwW3FJ2
08/05/31 01:27:10
>>955

どこかに投稿した覚えありますが
見失ったのですいません
お願いします。

957:デフォルトの名無しさん
08/05/31 01:27:17
ひとついえることがある。
今の計算機ではshortは速度においても消費メモリにおいても
doubleとまったく変わらないケースがほとんど。

958:デフォルトの名無しさん
08/05/31 03:53:17
>>956
質問しておきながら見失ったんですか。。。
善良な誰かが大切な時間を費やして回答してくれたかもしれないのに、
それをいともたやすく踏みにじるんですね。
反吐が出ます。

959: ◆AfLWwW3FJ2
08/05/31 04:00:21
>>958
いえどこかにテキストをアップロードしただけで
質問はしてません。
一応すいません。ここはプログラムを教えあうところで
言い合いしたくないので。
質問がどんどん埋もれるので
954
の質問お願いします。

960:デフォルトの名無しさん
08/05/31 04:07:25
>>959
tolower使えばいいじゃん。
なんなの?

961:デフォルトの名無しさん
08/05/31 04:08:56
作ってもらって理解してないからそんな醜態晒すことになるんだよ
頼むから留年してよ

962:ぼるじょあ ◆yBEncckFOU
08/05/31 07:52:03
>>954
(・3・) エェー ただ一つの愛があれば救われるYO!

963:デフォルトの名無しさん
08/05/31 10:18:24
(・3・) ~♪

964:デフォルトの名無しさん
08/05/31 14:17:45
>>962
誰がうまいことを言えとw

965:デフォルトの名無しさん
08/05/31 14:37:24
> ここはプログラムを教えあうところで言い合いしたくないので。
質問がどんどん埋もれるので954の質問お願いします。

これは笑ったwwwwww

966:デフォルトの名無しさん
08/05/31 15:12:26
>>965
一応すいません。ここはプログラムを教えあうところで
言い合いしたくないので。
質問がどんどん埋もれるので
954
の質問お願いします。

wwwwww

967:デフォルトの名無しさん
08/05/31 15:43:51
[1] 授業単元:
[2] 問題文(含コード&リンク):
  分子と分母をint型で入力すると、その小数値を表示するプログラムを作成せよ。
  なお、循環する場合は"[ ]"で括る事。
  例:
  分子:1
  分母:3
  値:0.[3]
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
  C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
  2008/6/1 23:00
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
  桁数があまりにも多くなる場合、任意で打ち切ってよい。
  ただしその場合は閉じ括弧は表示しないこと。

968:デフォルトの名無しさん
08/05/31 16:39:52
>>959
> ここはプログラムを教えあうところで

いいえ。ぼるじょあがC/C++の宿題を片付けるところです。

969:デフォルトの名無しさん
08/05/31 16:54:58
>>968
質問がどんどん埋もれるので
954
の質問お願いします。

wwwwww

970:ぼるじょあ ◆yBEncckFOU
08/05/31 18:37:39
>>967
(・3・) エェー 結構面倒だったYO!
#include<stdio.h>

#define BUF_SIZE 2048

int main(void){
int bunsi, bunbo, c, i, is_inf=0;
int mod[BUF_SIZE];
char result[BUF_SIZE];

scanf("%d %d", &bunsi, &bunbo);
printf("%d.", bunsi/bunbo);
bunsi%=bunbo;
for(c=0;(mod[c]=bunsi%bunbo) && c<BUF_SIZE && !is_inf;c++){
result[c]=bunsi*10/bunbo+'0';
for(i=0;i<c;i++){
if(mod[c]==mod[i]){
is_inf=1;
break;
}
}
bunsi=(bunsi*10)%bunbo;
}
if(is_inf) printf("%.*s[%.*s]\n", i, result, c-1-i, result+i);
else printf("%.*s\n", c, result);

return 0;
}

971:側近中の側近 ◆0351148456
08/06/01 22:59:04
>>945
(っ´ 3 `)っ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

972:デフォルトの名無しさん
08/06/01 23:48:15
>>971
本当に助かりました。m(__)m

973:デフォルトの名無しさん
08/06/02 15:35:43
質問がどんどん埋もれるので
954
の質問お願いします。

974:デフォルトの名無しさん
08/06/02 16:45:07
>>971の気持ち悪い人にやってもらいな

975:デフォルトの名無しさん
08/06/05 00:04:25
[1] 授業単元:プログラミング演習1
[2] 問題文(含コード&リンク):
m ×m 行列を入力し和と積を求め、結果を行列の形で表示させる
プログラムの作成。但し、入力した行列も表示。

<表示例>
1 2
3 4
[3] 環境
 [3.1] OS:WinXP/linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等):VC++/gcc
 [3.3] 言語:C言語
[4] 期限:2008/06/06
[5] その他の制限: stdio.h、入力はscanf関数、出力はprintf関数、配列で

プログラムの冒頭ですが、これで配列可変になるんでしょうか…?
int m,i,j;/*要素、カウント用変数宣言*/
printf("行列数を入力");
scanf("%d",&m);
int a[m]=0;
int b[m]=0;




976:デフォルトの名無しさん
08/06/05 00:14:36
>>975
> プログラムの冒頭ですが、これで配列可変になるんでしょうか…?
C89はできません

977:デフォルトの名無しさん
08/06/05 00:15:58
[1] 授業単元:
[2] 問題文: ポインタを使った循環リストを実装せよ.リストの表示、ノード
の挿入,削除を行う関数を作ること.なお,リストのノードNode は以下のよ
うに定義されている.
typedef struct { // data type
int no;
char name[10];
} Data;
typedef struct __node { // node definition
Data data;
struct __node *next;
} Node;
実行例:
(0) Insert a Node (1) Delete a Node (2)View the List (3) exit : 0
Please input the data.
No.: 1
Name: Lu
(0) Insert a Node (1) Delete a Node (2)View the List (3) exit :
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:BorlandC++
 [3.3] 言語:C
[4] 期限:6月5日16:00
[5] その他の制限:一応構造体まで習っているので、初歩的な知識程度だと思われます

よろしくお願いします

978:デフォルトの名無しさん
08/06/05 01:13:25
2008/06/01
こんにちは 管理人です
2003年から運営しているこのサイトですが
もはや掲示板やブログの類は機能せず、
唯のアップローダーサイトになってしまっているという現実と
本スレの酷い衰退具合と、運営費の問題と
そして私の受験という様々な要因から
今までも事実上の閉鎖状態ではありましたが
今日をもちまして正式な閉鎖とさせて頂きます。

何故かアップローダーとしては多少名が知れているらしく、
毎日何方かが利用して下さってたのですが 申し訳ありません。

ここについては基本的に弄ることなく残しておこうとは思いますが、
XREAの有料アカウントが解除されると同時に容量制限により
過去ログは殆ど飛んでしまうと思われます。(11月に切れます)
過去ログが飛んでしまえばもはや何も無い空のサイトですが、
せめてAAデータベースや1001変更の纏めは残しておきます。

borujoa.orgとpcqa.orgのドメインに関しての処理は未定です
今後どこかで流用するかもしれません。

右に表示されているメッセのアカウントは現在でも使用しており、
これからも使用する予定なので
過去ログがどうしても必要だ、等何か連絡がありましたらお気軽にどうぞ。

中1から始まったゆとりの暇つぶしに今までお付き合い頂き、
本当にありがとうございました。
ぼるじょあ文化が絶えないことを祈っております。

ではまたいつか
URLリンク(www.borujoa.org)


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