ぼるじょあがC/C++の宿題を片づけますYO! 68代目at TECH
ぼるじょあがC/C++の宿題を片づけますYO! 68代目 - 暇つぶし2ch650:デフォルトの名無しさん
07/12/11 16:31:53
符号無し整数を左右にシフトした値が、2のべき乗での乗算や除算と等しくなることを確認するプログラムを作成せよ


誰か助けて

651:デフォルトの名無しさん
07/12/11 19:45:52
hoge1 = x >> 1;
hoge2 = x << 1;
hoge3 = x * 2;
hoge4 = x / 2;

hoge1から4をprintfで確認してみてはどうだろう。
xはunsigned int型変数で値は適当で構わない。

652:デフォルトの名無しさん
07/12/11 20:14:14
>>650
たまたまサンプルしたものが一致するだけじゃ「確認」って言わないんだろうな。
やっぱ0から計算できる限界までシフトと乗算、除算が一致することを
全部調べるんだろうね。

653:デフォルトの名無しさん
07/12/12 09:59:40
#include <stdio.h>
#include <limits.h>
int main(void){
  unsigned int i=0;
  while(1){
    if((i<<1)!=(i*2)){
      printf("%uで乗算と左シフトが異なる。\n",i);
      break;
    }
    if((i>>1)!=(i/2)){
      printf("%uで除算と右シフトが異なる。\n",i);
      break;
    }
    if(i==UINT_MAX){
      printf("%uまで同じだと確認した。\n",i);
      break;
    }
    ++i;
  }
  return 0;
}

654:homoじょあ ◆5OLf4yFnuM
07/12/12 22:26:26
>>647-648
(・3・) エェー さっぱりわからないごめんNE

655:デフォルトの名無しさん
07/12/13 13:31:45
[1] 授業単元:C
[2] 問題文):①「ファイル名を受け取って,ファイルが読み込みモードでオープンできれば1を返し,オープンできなければ0を返す」関数 FileExist を作成する.
コマンドラインから入力されたファイルの存在を,関数 FileExist を利用して確認する.
ファイルが存在すればファイルの中身をそのまま表示するプログラムを完成しなさい.
②以下のプログラムをもとにして,次の仕様を満たすプログラムを完成しなさい.
コマンドラインからファイル名を受け取って,読取りモードでオープンすることによりそのファイルの存在を確認する.
シークする位置とシークするバイト数を受け取って,その位置の文字のASCIIコード(10 進数)を表示する.
[3] 環境
 [3.1] OS: Windows 
[3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: C
[4] 期限: 2007年12月d14日16:00まで
[5] その他の制限: 特になし

656:デフォルトの名無しさん
07/12/13 13:33:59
#include <stdio.h>
#include <stdlib.h>
??????? /* FileExist 関数の定義 */
int main(???????){
FILE *fp;
int ch;
     if (???????){
printf("There is no FILE NAME. \n");
exit(1);}
if (???????) { /* FileExistを利用 */
fp = ???????
while(???????){
putchar(ch);}
???????
}else {
printf("FILE OPEN error. \n");}
return 0;
}
???????
{
FILE *fp;
    if (???????) {
return 0; }
???????
return 1; }



657:デフォルトの名無しさん
07/12/13 13:35:28
#include <stdio.h>
#include <stdlib.h>
int main(???????){
FILE *fp;
long pos;
int i,j;
if (???????) {
printf("USAGE: %s \n", ???????);
exit(1);}
if (???????){
printf("FILE OPEN error: %s \n", ???????);
exit(1);
}else {
printf("Input seek NO. :");
scanf("%ld", &pos);
printf("Input seek BYTES:");
scanf("%d", &j);
         for (i=0; i < j; i++){
if (???????){
printf("seek ERROR. ");
exit(1);}
printf("%d byte: %d \n", i, ???????);}
??????? /* ファイルのクローズ */
}return 0;
}


658:デフォルトの名無しさん
07/12/13 13:36:21
655,656,657の回答お願いします

659:デフォルトの名無しさん
07/12/13 15:49:19
>>656
URLリンク(kansai2channeler.hp.infoseek.co.jp)
>>657
URLリンク(kansai2channeler.hp.infoseek.co.jp)

660:デフォルトの名無しさん
07/12/13 16:09:14
659の人回答サンクス!

661:いときん
07/12/14 16:09:12
よろしくおねがいします。

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

96です。

662:いときん
07/12/14 20:36:53
上の補足です。

プログラミングのここをこうしたらもっとうまくいくよ、とかあったら、
訂正もよろしくおねがいします。

もうすこしかえられるとおもうので..

663:デフォルトの名無しさん
07/12/15 09:10:16
661,662です。

解決しました。
ありがとうございました。

664:デフォルトの名無しさん
07/12/15 14:54:18
[1] 授業単元:プログラミング
[2] 問題文:n個の数データをキーボードから入力し、最大値と最小値を求めるプログラムを作成しなさい
 [3.1] WindowsXP
 [3.2] コンパイラ名とバージョン: fujitu workbench v4.0L10
 [3.3] 言語: C C++
[4] 期限: 12/21
[5] その他の制限:なし

665:デフォルトの名無しさん
07/12/15 19:05:41
プログラミング基礎
[2]• ファイルから数値データを読み込み,その数値の平均をファイルに書き込むプログラ
ムを作成する
• 数値データは全部で100行(ファイルには実際に100 行以上存在している)
ファイル名: kadai.datとする

• 平均を書き込むファイル名はheikin.dat とする.平均はすべてのデータ(600個)の平
均とする
[3] 環境
 [3.1] Windows
 [3.2] コマンドプロンプト 秀丸
 [3.3]C
[4] 12月17日18時
[5]665のファイルを埋める形式です。よろしくお願いします

666:デフォルトの名無しさん
07/12/15 19:09:06
すみません665のファイルです
include "stdio.h"
/* file_read 関数は【】内を記述する */
double file_read( void )
{
【 】
int i, j;
double data[600];
double heikin;
【 】
for( i=0 ; i<600 ; i+=6 )
{
for( j=0 ; j<6 ; j++ )
【 】
}
for( i=0, heikin=0.0 ; i<600 ; i++ )
{
heikin += data[i];
}

heikin /= 600.0;
printf("heikin -> %lf\n",heikin);
【 】
return heikin;
}

/* file_write 関数の中身を全部記述すること */
void file_write( double heikin )
{
/* ここの中身を記述する */
}


667:デフォルトの名無しさん
07/12/15 19:37:46
URLリンク(viptv.atspace.com)

668:homoじょあ ◆5OLf4yFnuM
07/12/15 21:18:16
>>664
#include <iostream>
#include <vector>
using namespace std;

int main(){
vector<int> data;
while(true){
int num;
cout << "数値を入力:";
cin >> num;
if(num < 0)break;
data.push_back(num);
}
sort(data.begin(), data.end());
cout << "最大:" << data[data.size()-1] << endl;
cout << "最小:" << data[0] << endl;
}

669:デフォルトの名無しさん
07/12/16 19:04:59
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: bcc32
 [3.3] 言語: C
[4] 期限: 2007/12/18
[5] その他の制限: 構造体を使う


670:homoじょあ ◆5OLf4yFnuM
07/12/16 20:24:48
>>665
(・3・) エェー 結局100行なのか600行なのかわからんぜYO
          サンプルの読み込みファイルはないかYO
          あと、ソース内によくわからない2重ループがあるんだけど説明ないかNA?

671:homoじょあ ◆5OLf4yFnuM
07/12/16 20:26:06
>>669
(・3・) エェー 構造体の定義どこだお?

672:デフォルトの名無しさん
07/12/16 22:29:40
>>671

struct sdate{
int year;
int month;
int day;
};


673:デフォルトの名無しさん
07/12/17 15:46:26
[1] 授業単元:C
[2] 問題文: 問①以下のプログラムをもとにして,標準入力から受け取った文字を 「2進数表示したもの」と「その補数」を表示するプログラムを作成しなさい.
ビット演算子を用いてプログラムを作成すること.
問②以下のプログラムをもとに,標準入力から0以上の整数を 1 つ受け取り (scanf を用いて整数を符号無し整数型 unsigned 型の変数に読み込む), 8で割った余りを計算するプログラムを作りなさい.
ビット演算子を用いてプログラムを作成すること.
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:任意
 [3.3] 言語: C
[4] 期限: ([2007年12月19日15:00まで]
[5] その他の制限:特になし

674:デフォルトの名無しさん
07/12/17 15:47:11
問①
#include <stdio.h>
#include <stdlib.h>

void printBinary(char);

int main(void)
{
char ch;

printf("Input character: ");
scanf("%c", &ch);
printBinary(???????);
printBinary(???????);

return 0;
}


void printBinary(char x)
{
int i;

for (i= ???????; ???????; i--) {
???????
}
putchar('\n');
}


675:デフォルトの名無しさん
07/12/17 15:49:48
問②
#include <stdio.h>
#include <stdlib.h>
void printBinary2(unsigned);
int shou8(unsigned);int main(void)
{
unsigned n;
printf("Input non-negative integer: ");
scanf("%d", &n);
printBinary2(???????);
printBinary2(???????);
printf("%d %% 8 = %d", n, shou8(n));
return 0;
}void printBinary2(unsigned x){
int i;
for (i = ???????; ???????; i--) {
???????}
putchar('\n');}
int shou8(unsigned x)
{int i, j=1, sum=0;
for (i = ???????; ???????; i++) {
if( ??????? ){
??????? }
j *= 2;
}return(sum);}


676:デフォルトの名無しさん
07/12/17 15:50:32
673 674 675です
回答お願いします

677:homoじょあ ◆5OLf4yFnuM
07/12/18 00:22:29
>>672
(・3・) エェー 関数だけ作ってみた
int preceedp(struct sdate d1, struct sdate d2){
if(d1.year < d2.year){
return 1;
}else if(d1.year == d2.year){
if(d1.month < d2.month){
return 1;
}else if(d1.month == d2.month){
if(d1.day < d2.day){
return 1;
}
}
}
return 0;
}

int succeedp(struct sdate d1, struct sdate d2){
return preceedp(d2, d1);
}

int samedayp(struct sdate d1, struct sdate d2){
if(d1.year == d2.year && d1.month == d2.month && d1.day == d2.day)return 1;
return 0;
}

int compdate(struct sdate d1, struct sdate d2){
if(samedayp(d1, d2))return 0;
if(preceedp(d1, d2))return 1;
return -1;
}

678:homoじょあ ◆5OLf4yFnuM
07/12/18 22:27:24
>>673
void printBinary(char x){
int i;
for(i=8; i>0; i--){
(128 & x) ? putchar('1') : putchar('0');
x = x << 1;
}
putchar('\n');
}

(・3・)1の補数なら引数に「~ch」を渡せばいいお
    2の補数なら引数に「~ch+1」を渡せばいいお

679:homoじょあ ◆5OLf4yFnuM
07/12/18 22:33:53
>>673
(・3・) エェー 時間ないから②はダメぽ

int shou8(unsigned x){
return x - (x >> 3) * 8;
}

680:homoじょあ ◆5OLf4yFnuM
07/12/18 22:34:32
(・3・) エェー 全くビット演算の意味ないよNE

681:homoじょあ ◆5OLf4yFnuM
07/12/18 22:40:35
>>673
(・3・) エェー さすがに酷いから作り直した
          今週の営業は終了致しましたYO
int shou8(unsigned x){
int i, j=1, sum=0;
for (i=0; i<3; i++) {
if( j & x ){
sum += j;
}
j *= 2;
}
return(sum);
}

682:デフォルトの名無しさん
07/12/21 14:57:21
tanθの値を-360<=θ<=360の範囲で1°刻みにプログラムを作成すること。
ただし、tanは、自分で作った関数の中でのみ使用でき、θの値は
mainの中で決定し、関数へと受け渡すこと。
プログラムの中身
-360,○○○
-359,○○○
   ・
   ・
   ・
360, ○○○

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

683:デフォルトの名無しさん
07/12/21 21:54:20
#include <stdio.h>
#include <math.h>

//円周率(double型の有効桁数までのつもり)
#define PAI (3.141592651389793)

double mytan(double dig)
{
if(fmod(dig+90,180)==0)//ex. 90,270...
{
//求められない
return HUGE_VAL;
}
return tan(dig*PAI/180);
}

int main(void)
{
int dig;
double val;
for(dig=-360;dig<=360;dig++)
{
val=mytan(dig);
printf("%+3d ",dig);
if(val==HUGE_VAL)
printf("エラー");
else
printf("%lf",val);
printf("\n");
}
return 0;
}

684:デフォルトの名無しさん
07/12/21 22:36:47
穴でも掘るのか?

685:デフォルトの名無しさん
07/12/22 00:53:15
中学1年のころの英語の授業の記憶より
"カナダは大きい国です。"を英訳
(正)Canada is a big country.
(誤)Canada is a dig country.

686:デフォルトの名無しさん
07/12/25 13:58:30
[1] 授業単元:C
[2] 問題文(含コード&リンク):A:0からある数値(NUM) までの合計を表示するプログラムを,以下の手順で作りなさい.B:課題A で作成したプログラムを修正して,NUM の値を変化させるプログラムを作成する
[3] 環境
 [3.1] OS: (Windows 
[3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: C
[4] 期限: ([2008年1月9日まで] [5] その他の制限:

687:デフォルトの名無しさん
07/12/25 14:01:07
問A
ヘッダファイル kadai09a.h を作成し,NUM と関数hyoujiを定義する.
-------------------------------------------------------------
#define NUM 5
extern void hyouji(int, int);
-------------------------------------------------------------
以下のプログラムをもとに,
main関数の部分をソースファイル kadai09a.c に,関数 hyouji の部分をソースファイル kadai09a1.c に分割する.
-------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
void hyouji(int, int);
int main(void)
{
int i, n;
int sum = 0;
printf("Input non-negative integer: ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
sum += i;}
hyouji(n, sum);
return 0;
}
void hyouji(int k, int m)
{
printf("The sum of 0 to %d : %d\n", k, m);
}
-------------------------------------------------------------
作成した kadai09a.c, kadai09a1.c, kadai09a.h をコンパイルして実行する.

688:デフォルトの名無しさん
07/12/25 14:03:04
ヘッダファイル kadai09b.h を作成し,NUM と関数hyouji と関数sum を定義する.
ただし,NUM は,「マクロNUM が定義されていなければ,NUM=5 」と定義する.
-------------------------------------------------------------
#define NUM 5
extern void hyouji(int, int);
extern int sum(void);
-------------------------------------------------------------
main関数の部分を,ソースファイル kadai09b.c で定義する.
-------------------------------------------------------------
#include <stdio.h> /* おまじない */
#include <stdlib.h> /* おまじない */
int sum(void);
void hyouji(int, int);
int main(void)
{
hyouji(NUM, sum());
return 0;
}
-------------------------------------------------------------
関数sum を,ソースファイル kadai09b1.c で定義する.
-------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
int sum(void) {
int i, souwa=0;
for (i = 1; i <= NUM; i++) {
souwa += i;}
}
-------------------------------------------------------------
ここで示したサンプルプログラムでは動かないので,必要最小限の修正をしてプログラムを完成すること

689:デフォルトの名無しさん
07/12/25 15:12:43
【質問テンプレ】
[1] 授業単元:Cプログラミング実習
[2] 問題文(含コード&リンク): VC 6.0の環境で電卓の作成。
(1).加算を行う電卓の作成。(後に四則演算に対応させる)
(2).エディットボックスに数値を入力し演算を行う。
(3).エディットボックスにプラス「+」、マイナス「-」、
スペース「' '」を入力されても演算可能にする。

(補足)
C言語の初心者です。
今、VC 6.0の環境で電卓を作っています。
エディットボックスに数値を入力して計算させるプログラムなのですが
エディットボックスにスペースを入力されても計算出来るようにしたいのですが解りません。
NULL文字をチェックすればよいのか、それとも「isspece」の関数を使って空白文字を
調べればよいか解りません。プラス「+」、マイナス「-」の符合が入力されても
計算出来るようには行えたのですが、どうしても空白(スペース)を入力された場合が、
うまくいきません。以下は作成途中のソースコードです。ここに付け加えるような
コードで教えていただけると助かります。ご指導お願いします。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C,C++
[4] 期限: 2007年12月25日
[5] その他の制限:クラス使用不可

690:デフォルトの名無しさん
07/12/25 15:14:49
>> 689の作成中のコードです。宜しくお願いします。

// OnButton1() /////////////////////////////////////////////////////////////////////
void CKasanDlg::OnButton1()
{
adding();

char num1[128],num3[128];
int i,length=strlen(&num1[0]);
int numk,numl=0;

m_num3.GetLine( 0, num3 );
numk = sscanf( num3, "%d", &numl );

for( i=0; i<length; i++ ){
isdigit( (int) num1[i] );
}

if(( numk == -1 )){
MessageBox("数値を入力してください。"); // メッセージボックス
}
}


691:デフォルトの名無しさん
07/12/25 19:57:46
>>687
//kadai09a.h
#define NUM 5
void hyouji(int,int);
//kadai09.c
#include "kadai09a.h"
#include <stdio.h>
//#include <stdlib.h>//いらなくね?
int main(void)
{
//mainの内容を記述します。
}
//kadai09a1.c
#include <stdio.h>
void hyouji(int k,int m)
{
printf("The sum of 0 to %d : %d\n", k, m);
}

コンパイラの使い方は誰かに聞け

692:691
07/12/25 20:02:06
すまん。問題よく読んでなかった。
kadai09a.cだけ変えてくれ。

#include "kadai09.c"
int main(void)
{
int i,;
int sum = 0;
for (i = 1; i <= NUM; i++)sum += i;
hyouji(n, sum);
return 0;
}

693:デフォルトの名無しさん
07/12/25 20:09:00
>>688
//kadai09b.h
#ifndef NUM
#define NUM (5)
#endif
void hyouji(int,int);
int sum(void);
//kadai09b.c
#include "kadai09b.h"
int main(void)
{
hyouji(NUM,sum());
return 0;
}
//kadai09b1.c
//NUMを変えるのならここで定義すること
//#define NUM (100)
#include "kadai09b.h"
int sum(void)
{
int souwa=0;
for (i = 1; i <= NUM; i++)souwa+=i;
return souwa
}

694:デフォルトの名無しさん
07/12/26 02:14:56
別スレで答えてもらえなかったので、ここで頼みたいのですが・・
C++
Linux

#include <stdio.h>
#include <math.h>
int x,y;
{
mi(x,y,a);
}

mi(x,y,a)
int x,y;
float a;
{
}
return
}

ルーチンワーク内で、mi(x,y,a)という、
(x,y)にa倍の「み」という文字を表示するコマンドをつくりたいのですが
どうやってつくればよいでしょうか?
1倍の「み」は横幅縦幅ともに50くらいとしておねがいします。
できればforなどの基礎構文で

695:デフォルトの名無しさん
07/12/26 07:33:29
>>694
情報量が少な過ぎ。用件をきっちり書くか、ちゃんとしたサンプルを提示してくれ。

696:デフォルトの名無しさん
07/12/26 12:58:48
>>695
宿題で、「み」という文字をウインドウにアニメーション的に表示する
プログラムをつくる(これしか言われてないです・・)というのがでたので、
mi(x,y,a)というコマンドを用意したいのですが、どうすればいいかわからなくて。
最近やっと、for文をつかったアニメーションのつくりかたを習ったばかりという
レベルです。

697:デフォルトの名無しさん
07/12/26 13:06:49
for文をつかったアニメーションのつくりかたって何だ

698:デフォルトの名無しさん
07/12/26 14:38:31
>>697
えと、
for(i=0;i<=100;i++)
{
x=10*i,y=100-10*i
ginit();
mi(x,y);
draw();getchar();
}
という感じなのですが、一般的じゃないんですか?

699:デフォルトの名無しさん
07/12/26 18:57:00
必要そうな関数を使い方なども含めて全部説明してくれ。
この質問はMS-DOSユーザに対して、Windowsのプログラム作ってくれってなぐらいに厳しいぞ。

700:デフォルトの名無しさん
07/12/27 03:59:41
静止画からの(複数)顔検出率95%以上のプログラムをください(><)

701:デフォルトの名無しさん
07/12/27 05:01:48
>>699
ginit()    window画面を出す
line(x1,y1,x2,y2)   (x1,y1)と(x2y2)を結ぶ線分を描く
circle(x,y,r) (x,y)を中心とする半径rの円を書く
くらいしか使えないのですが、これで「み」をかけますかね?

702:デフォルトの名無しさん
07/12/27 10:55:16
lineでベクトル的に書く

703:デフォルトの名無しさん
07/12/27 17:10:06
取り敢えずこんなもんかな。
--
static int conv(int xy, int a, int oxy, int dxy) {return xy + (oxy + dxy) * a;}
void mi(int x, int y, int a)
{
const int ox = 0;
const int oy = -50;
static const struct point {
int x;
int y;
} points[] = {
{10, 0}, {20, 0}, {10, 50}, {0, 40}, {10, 30}, {50, 30},
{-1, -1}, {40, 20}, {40, 50}, {-1, -1},
};
for (int ic = 0; ic < sizeof(points) / sizeof(* points); ++ic) {
if (points[ic].x >= 0 && points[ic + 1].x >= 0) {
line(conv(x, a, ox, points[ic].x), conv(y, a, oy, points[ic].y),
conv(x, a, ox, points[ic + 1].x), conv(y, a, oy, points[ic + 1].y));
}
}
}

int main()
{
mi(100, 100, 2);
return 0;
}

704:デフォルトの名無しさん
08/01/02 15:09:08
ぼるじょあさんあけおめ

705:ぼるじょあ ◆yBEncckFOU
08/01/02 15:24:56
(・3・) 新年明けましておめでとうございます
     本年もご愛顧の程よろしくお願いしますYO!

706:デフォルトの名無しさん
08/01/07 15:46:41
[1] 授業単元:C
[2] 問題文 URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows 
[3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: C
[4] 期限: 2007年1月8日16:00まで
[5] その他の制限: 特になし


707:デフォルトの名無しさん
08/01/07 15:51:04



708:デフォルトの名無しさん
08/01/07 15:52:47
>>706続き
URLリンク(kansai2channeler.hp.infoseek.co.jp)
問題2つあって長文ですが回答お願いします

709:homoじょあ ◆5OLf4yFnuM
08/01/07 19:39:04
(・3・) エェー あけましておめでとうございまSU
          本年もよろしくお願い致しますYO


>>706
(・3・) エェー 新年1発目だYO
URLリンク(kansai2channeler.hp.infoseek.co.jp)

710:デフォルトの名無しさん
08/01/09 02:41:39
>>156
自己満足な上にc++だけど。

URLリンク(blog38.fc2.com)

711:名無し
08/01/09 21:24:21
[1] 授業単元: プログラム
[2] 問題文:複数の整数の平均・分散を求めるプログラムを作成せよ。ただし、平均・分散ともに
小数点第3位以下を切り捨て、小数第2位まで求めるものとする
 入力に関して
キーボードからまず、入力する整数の個数を入力し(最大でも100とする)改行する
次に指定した数の整数をスペース1つずつ開けて1行で入力するものとする
この時、入力を促す文字等は表示しないこと
 出力に関して
1行目に平均(+改行)、2行目に分散(+改行)を数値のみ出力する。
指定した数値・改行以外の文字等の出力は一切行わない事
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:わかりません
 [3.3] 言語: C
[4] 期限: 2008年1月10日10:00まで
[5] その他の制限: 特になし
よろしくおねがいします


712:名無し
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);


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