>>950 次スレよろしく。
練習用プログラムは、確かに役に立たないものが多いよ。
でも、プログラミング上で必要になる考え方というものが学べる。
独習である程度できるようになってしまった人には退屈かも知れないけど、
浮かれていると落とし穴にはまる事があるから気をつけろ。
953 :
デフォルトの名無しさん:02/11/06 17:15
>>950 役に立って、しかも初心者でもかける簡単なプログラムって
考えるのは難しいんじゃないの?
教えるほうも。
955 :
お願いします。:02/11/06 21:24
#include<stdio.h>
main()
{
int hoge[]={10,11,12,13};
int* piyo;
piyo=hoge;
/*piyo=&hoge[0]*/
printf("*(&hoge).....%d\n\n",*(&hoge));
/*なぜErrorにならないのか?*/
printf("*(&piyo[3])..%d\n",&piyo[1]);
/*piyoには添え字はないのに、なぜアクセスできるのか?*/
}
>>955 「配列はポインタ演算をした時、最初の要素へのポインタと成り下がる」
以上。
>>955 gccならフォーマット文字列の中身まで見て警告してくれる。
しかし、一般的にprintfのフォーマット文字列以外のパラメータを
コンパイラは型チェックできない。
printfのプロトタイプは
int printf(const char *format, ...);
だから、formatの型はチェックできる。しかしそれ以降は、
チェックできない。formatの中身を見ればできないこともないが、
普通単なるconst char*としてしかコンパイラは見ない。
関数のパラメータで「...」というのは型チェックしないというのはCの規約だ。
しないというより、できない。
gccはprintfを特別扱いして、文字列リテラルがprintfに与えられたとき
続くパラメータをチェックしてくれている。
>>959 いや、957 そのものはすんごく正しいんだけど、955 へのレスとして全然妥当
でないような。
んだから、955 に適当教えてセンセイにあぼーんさせるネタかと思ったの。
961 :
デフォルトの名無しさん:02/11/09 16:57
はさみうち法の問題なんですが、以下のプログラム書いたんですが、
凡用的にする改良や、使いやすくするための改良などを考えたいんですが、
どうしたら良いでしょうか?
マクロとか、グローバル変数、乗算などの減少などくらいでしょうか…
#include <stdio.h>
double m = 4.0, n = 8.0, mn = m*n,a0 = ((1 - n*n)*mn),a1 = (3*mn*n - m),
a2 = (-3*mn),a3 = m;
double f( double x );
void main (void)
{
double q0, q1, q2;
int k, i;
k = 31;
q0 = n - 0.5;
q1 = n + 0.5;
if ( f( q0 )*f( q1 ) < 0 ){
for ( i = 1; i <= k; i++ ){
q2 = ( f( q1 )*q0 - f( q0 )*q1 )/( f( q1 ) - f( q0 ) );
printf( "k =%3d x = %12.4le\n", i, q2 );
if ( f( q2 )*f( q1 ) > 0 ){
q0 = q2;
}
else
q1 = q2;
if ( q2/8.0 >= 0.99 ){
break;
}
}
printf( "真の解との誤差1%%以下を得るのに必要な回数は%dです。\n",i );
}
else
printf( "初期値エラー\n" );
}
double f( double x )
{
double y;
y = a3*x*x*x + a2*x*x + a1*x + a0;
return y;
}
まずすべき事は、次スレにそれを書くことだ。
つーか凡用って何?
>>963 分かりました。ご忠告どうも。
凡用は汎用の間違いです。すみません…
凡庸=ぼんよう
異常以上
int main (int argc, char *argv[])
ってどういういみですか?
int型と、char型へのポインタ型へのポインタ型を引数に取り
int型を返す、mainと言う名の関数です。
x[20]を定義し、中の数字をscanfして20個使わなくても終われるものを組みたいんです
(x={1,3,4,2,0,0,0…0}みたいに)
たとえば"1,2,4,end"とやればx={1,2,4,0,0,0,0,…}
どうやればいいんですか?
x を初期化しておけばいい
/* stdinからint値を最大20個scanfする */
int x[20]={0}, i = 0;
do {
if(scanf("%d",&x[i])==0)break;
} while( ++i < 20 );
/* iは正しく入力された個数を示す */
入力させた値が偶数かどうか調べるやり方ありますか?
x%2
x & 1
すみませんが質問です。
ある月の日数と、初日の曜日(日:1、月:2、…、土:7)を入力し、
その月と翌月のふた月分のカレンダーを以下の例のように横に並べて表
示するプログラム
ただし、ある月の日数が31日の場合は翌月の日数を30 日、ある月の日
数が30日の場合は翌月の日数を31日、として考え、一行ずつ配列に格納
し、表示する
例えば、日数:31、初日の曜日:3 の場合、以下のように表示せよ。
S M Tu W Th F S S M Tu W Th F S
1 2 3 4 5 1 2
6 7 8 9 10 11 12 3 4 5 6 7 8 9
13 14 15 16 17 18 19 10 11 12 13 14 15 16
20 21 22 23 24 25 26 17 18 19 20 21 22 23
27 28 29 30 31 24 25 26 27 28 29 30
というのを作らなければならないのですが、はっきりいってまったくわかりません。
できればおしえていただけないでしょうか?
s m tu w th f s s m tu w th f s
1 2 3 4 5 1 2
6 7 8 9 10 11 12 3 4 5 6 7 8 9
13 14 15 16 17 18 19 10 11 12 13 14 15 16
20 21 22 23 24 25 26 17 18 19 20 21 22 23
27 28 29 30 31 24 25 26 27 28 29 30
です。すみません
ようは二ヶ月分のカレンダーを横並びにだすプログラムです。
次スレ逝けっ釣ってんだろが。
一月分のカレンダーは出せるか?
それはなんとかできました
翌月のカレンダーは?
981 :
デフォルトの名無しさん:02/12/02 23:32
☆ チン ハラヘッタ〜
ハラヘッタ〜
☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< C++の宿題まだ〜?
\_/⊂ ⊂_)_ \____________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄  ̄ ̄:| :|
| |
ある月の日数と、初日の曜日(日:1、月:2、…、土:7)を入力して一月分しか
表示するのしかできてないです
∧_∧ ∧_∧
_( ´∀`) (´∀` )
三(⌒), ノ⊃ ( ) ←ド素人
 ̄/ /) ) | | |
. 〈_)\_) (__(___)
∧_∧ .∧_∧
( ´∀) (´∀` )
≡≡三 三ニ⌒) .)
/ /) )  ̄.| | |
〈__)__) (__(___)
∧_∧ ,__ ∧_∧
( ´)ノ ):;:;)∀`)
/  ̄,ノ'' )
C /~ / / /
/ / 〉 (__(__./
\__)\)
ヽ l //
∧_∧(⌒) ―― ★ ―――
( ) /|l // | ヽ
(/ ノl|ll / / | ヽ
(O ノ 彡'' / .|
/ ./ 〉
\__)_)
 ̄ ̄ ̄ ̄ ̄
逝ってよし!
一週目の余りの数。
最後の週の余りの数。
などに気を配る。
あと二週間もたせるスレ。
#include <stdio.h>
main(){
int a,b,c;
printf("月の日数を入力してください。:");
scanf("%d;,&a");
printf("初日の曜日を入力してください。:");
scanf("%d",&b");
printf(" S M Tu W Th F S\n");
for(c=0;c<b-1;c++){
printf(" ");}
for(c=1;c<=a;c++){
printf("%3d",c);
if(c==8-b){
printf("\n");}
else if(c==15-b){
printf("\n");}
else if(c==22-b){
printf("\n");}
else if(c==29-b){
printf("\n");}
else if(c==36-b){
printf("\n");}
else if(c==a){
printf("\n");}}}
これで一月分のカレンダーは出せました。
これ以降ができないのです。
剰余っつーものを知らんのか。
989 :
デフォルトの名無しさん:02/12/03 01:37
ぜってー1000とってやる
1000
991 :
デフォルトの名無しさん:02/12/03 01:37
1000
992 :
デフォルトの名無しさん:02/12/03 01:38
まもなくここは 乂1000取り合戦場乂 となります。
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
993 :
デフォルトの名無しさん:02/12/03 01:38
やべ、まける!
994 :
デフォルトの名無しさん:02/12/03 01:38
1000
995 :
デフォルトの名無しさん:02/12/03 01:38
ほれ
わーい
997 :
デフォルトの名無しさん:02/12/03 01:39
100???
998 :
デフォルトの名無しさん:02/12/03 01:39
1000
あ
1000 :
デフォルトの名無しさん:02/12/03 01:39
どうだ?
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。