C/C++の宿題を片付けます 86代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/04/20(金) 00:35:41【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
【前スレ】
C/C++の宿題を片付けます 85代目
http://pc11.2ch.net/test/read.cgi/tech/1175129517/
0002デフォルトの名無しさん
2007/04/20(金) 00:35:550003デフォルトの名無しさん
2007/04/20(金) 00:36:150004デフォルトの名無しさん
2007/04/20(金) 00:36:42#include <iostream>
#include <fstream>
#include <string>
#include <cctype>
int main()
{
const int N = 100;
std::ifstream fin("infile1.txt");
int c[N];
int count = 0;
std::string str;
std::getline(fin, str);
while (fin >> c[count]) count++;
for (std::string::const_iterator pos = str.begin(); pos != str.end(); ++pos) {
if (std::isalpha(*pos)) {
std::cout << *pos << " ";
}
}
std::cout << std::endl;
0005デフォルトの名無しさん
2007/04/20(金) 00:37:01if (c[i] >= 80)
std::cout << "優 ";
else if (c[i] >= 70)
std::cout << "良 ";
else if (c[i] >= 60)
std::cout << "可 ";
else
std::cout << "不可 ";
}
std::cout << std::endl;
}
0006デフォルトの名無しさん
2007/04/20(金) 00:37:55#include <stdio.h>
char* Gakusei[9] = {"A", "B", "C", "D", "E", "F", "G", "H", "I"};
int TokuPoint[9] = {90, 73, 55, 60, 45, 66, 75, 40};
int main(void){
int i;
for(i=0; i!=9; i++){
printf("%s ", Gakusei[i]);}
printf("\n");
for(i=0; i!=9; i++){
if(TokuPoint[i] >= 80) printf("優 ");
else if(TokuPoint[i] >= 70) printf("良 ");
else if(TokuPoint[i] >= 60) printf("可 ");
else printf("不可 ");}}
0007デフォルトの名無しさん
2007/04/20(金) 00:37:55乙
0008945
2007/04/20(金) 00:40:02ありがとうございました。
0009デフォルトの名無しさん
2007/04/20(金) 00:41:490010デフォルトの名無しさん
2007/04/20(金) 00:44:02よぉ、俺!!
0011デフォルトの名無しさん
2007/04/20(金) 00:45:28ビールでも買ってくるか('A`)
0012デフォルトの名無しさん
2007/04/20(金) 00:45:37> int TokuPoint[9] = {90, 73, 55, 60, 45, 66, 75, 40};
int TokuPoint[9] = {90, 73, 55, 60, 45, 88, 66, 75, 40};
間違って不合格になる人間が発生する瞬間に立ち会ってしまった。
0013デフォルトの名無しさん
2007/04/20(金) 00:46:430014デフォルトの名無しさん
2007/04/20(金) 00:47:24>>1
> 気に入らない質問やその他や発言はスルーの方向で。
0015デフォルトの名無しさん
2007/04/20(金) 08:13:11っつーかね、CよりC++の方が扱いが楽だわ。
0016デフォルトの名無しさん
2007/04/20(金) 14:03:56[2] 問題文(含コード&リンク):下記
[3] 環境
[3.1] OS: WindowsXP
[3.2] Visual Studio .NET
[3.3] 言語: C
[4] 期限: 4月末
[5] その他の制限: 基本的なCの知識しか習っていません(曖昧ですいません)。
副プログラム(サブルーチン)構造体、モジュールなども習っていません。
今持っている基本的な知識(if文、for文、配列)でこれを解けと言われました…。
ポアソン方程式の5点差分法による求解を考える。
ただし領域は、
0≦x≦1, 0≦y≦1, とし、
境界条件は
φ[i,0]=φ[i,Ny]=0 (i=0,1,2,...,Nx)
φ[0,j]=φ[Nx,j]=0 (j=0,1,2,...,Ny)
とする。
またx方向の分割数をNxとし、y方向の分割数をNyとし
Nx*Nyが格子点数。
ポアソン方程式は
φ[i+1,j]-2φ[i,j]+φ[i-1,j]/(Δx)^2+φ[i,j+1]-2φ[i,j]+φ[i,j-1]/(Δy)^2=-13π^2sin(3πx)sin(2πy)
で与えられる。
上式をAφ=bの形に変形し、その連立一次方程式をガウスの消去法で未知数φを求める
プログラムを作成せよ。
0017デフォルトの名無しさん
2007/04/20(金) 21:15:08早くやっちゃいな
0018デフォルトの名無しさん
2007/04/20(金) 21:19:25かーちゃん、俺たけしだってばぁ
たかしは弟だろ〜
0019デフォルトの名無しさん
2007/04/20(金) 21:25:07誰か教えてくれ!
0020デフォルトの名無しさん
2007/04/20(金) 21:44:38http://oshiete1.goo.ne.jp/qa2919426.html
これ?
0021デフォルトの名無しさん
2007/04/20(金) 21:46:19変形まではやってくれぇ。
0022デフォルトの名無しさん
2007/04/20(金) 22:20:43[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3846.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:月曜朝7時まで
[5] 制限:なし。
よろしくお願いします。
002316
2007/04/20(金) 23:26:37やりました。設問と少し変わってしまったのですが、
分割数は同じ(Δx=Δy=h)にして、これを連立一次方程式にしました。
φ[i+1,j]+φ[i-1,j]+φ[i,j+1]+φ[i,j-1]-4φ[i,j]=-13π^2sin(3πx)sin(2πy)*h^2
-φ[i+1,j]-φ[i-1,j]-φ[i,j+1]-φ[i,j-1]+4φ[i,j]=f(x,y)*h^2
x=ih,y=jh
h=1/N
分割数N=3の場合、格子点は9個存在し
φ[1,1] φ[2,1] φ[3,1] φ[1,2] φ[2,2] φ[3,2] φ[1,3] φ[2,3] φ[3,3]
と各々の格子点の値を求めます。
002416
2007/04/20(金) 23:28:19A:
4 -1 0 -1 0 0 0 0 0
-1 4 -1 0 -1 0 0 0 0
0 -1 4 0 0 -1 0 0 0
-1 0 0 4 -1 0 -1 0 0
0 -1 0 -1 4 -1 0 -1 0
0 0 -1 0 -1 4 0 0 -1
0 0 0 -1 0 0 4 -1 0
0 0 0 0 -1 0 -1 4 -1
0 0 0 0 0 -1 0 -1 4
002516
2007/04/20(金) 23:29:10φ[1,1]
φ[2,1]
φ[3,1]
φ[1,2]
φ[2,2]
φ[3,2]
φ[1,3]
φ[2,3]
φ[3,3]
b:
h^2*f[1,1]
h^2*f[2,1]
h^2*f[3,1]
h^2*f[1,2]
h^2*f[2,2]
h^2*f[3,2]
h^2*f[1,3]
h^2*f[2,3]
h^2*f[3,3]
境界条件より、
φ[i,0]=φ[i,N]=0 (i=0,1,2,...,Nx)
φ[0,j]=φ[N,j]=0 (j=0,1,2,...,Ny)
です。
002616
2007/04/20(金) 23:33:24φ=(φ[1,1],φ[2,1],...,φ[N,1],φ[1,2],φ[2,2],...,φ[N,2],...φ[1,N],φ[2,N],...,φ[N,N])
となります。
002716
2007/04/20(金) 23:34:21http://www.coins.tsukuba.ac.jp/~itosho/NC05/chap4.pdf
002816
2007/04/20(金) 23:39:26xの値を決める→yの値を決める→x,y方向の分割数Nを決める
→出来た連立一次方程式をガウスの消去法を用いて解く
だと思います…。
正直、自分には全く作れるような気がしません…よろしくお願いします・・・。
0029デフォルトの名無しさん
2007/04/20(金) 23:41:28それです
0030デフォルトの名無しさん
2007/04/20(金) 23:43:19(1)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum { NC_MAX = 10, NLEN = 11 };
int cmp(const void *a, const void *b) {
return strcmp(*(char(*)[NLEN])a, *(char(*)[NLEN])b);
}
int main(void) {
char *p, names[NC_MAX][NLEN] = {{ 0 }}, buff[BUFSIZ];
int i, nc;
for (nc = 0; nc < NC_MAX; ) {
fputs("name => ", stdout);
if (!fgets(buff, sizeof buff, stdin) || buff[0] == '0')
break;
if ((p = strchr(buff, '\n')))
*p = '\0';
strncat(names[nc++], buff, NLEN - 1);
printf("累計%d件\n", nc);
}
qsort(names, nc, NLEN, cmp);
for (i = 0; i < nc; ++i)
printf("%d:%s\n", i + 1, names[i]);
return 0;
}
0031デフォルトの名無しさん
2007/04/20(金) 23:53:36#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum { NC_MAX = 10, NLEN = 10 };
int cmp(const void *a, const void *b) {
return strcmp(*(char**)a, *(char**)b);
}
char *strndup(const char *s, size_t n) {
char *ss;
size_t len = strlen(s);
if (len < n) n = len;
ss = malloc(n + 1);
return strncat(ss, s, n);
}
int main(void) {
char *p, *names[NC_MAX] = { 0 }, buff[BUFSIZ];
int i, nc;
for (nc = 0; nc < NC_MAX; ) {
fputs("name => ", stdout);
if (!fgets(buff, sizeof buff, stdin) || buff[0] == '0') break;
if ((p = strchr(buff, '\n'))) *p = '\0';
names[nc++] = strndup(buff, NLEN);
printf("累計%d件\n", nc);
}
qsort(names, nc, sizeof(char*), cmp);
for (i = 0; i < nc; ++i) {
printf("%d:%s\n", i + 1, names[i]);
free(names[i]);
}
return 0;
}
003231
2007/04/20(金) 23:56:12char *strndup(const char *s, size_t n) {
char *ss;
size_t len = strlen(s);
if (len < n) n = len;
ss = malloc(n + 1);
ss[0] = '\0'; <-- これを追加
return strncat(ss, s, n);
}
0033デフォルトの名無しさん
2007/04/21(土) 00:17:02どうもありがとうございました。助かります。
0034デフォルトの名無しさん
2007/04/21(土) 00:52:47[2] 問題文:
一次不定式の一般解を求めるコンソールプログラムを作る。
例えば A,B という形で整数値が入力された場合、
Ax+By=gcd(A,B)←最大公約数
↑のような式を作ってxとy(整数解)を求め、それらから一般解を求めるプログラム。
[3] 環境
[3.1] OS:Ubuntu
[3.2] gcc
[3.3] C
[4] 来週くらい
[5] scanf使っても大丈夫です
0035デフォルトの名無しさん
2007/04/21(土) 11:58:06> #include <math.h>
> main()
> {
> double a,b,degree,radian,s,n;
> printf("三角形の二つの長さを入力せよ:");
> scanf("%lf%lf",&a,&b);
複数の変数の入力を行う場合は、それぞれ1つずつscanf文で入力した方が良い。
> printf("その間の角度を入力せよ:");
> scanf("%lf",°ree);
> radian=3.1416*degree/180.0;
> s=sin(radian);
> n=a*b*s*0.5;
> printf("面積は%0.3lfです\n",n);
> }
関数を使ったプログラムにしてください。
↑この関数を使ったプログラムって何ですか?><わかりません
訂正してください><
0036デフォルトの名無しさん
2007/04/21(土) 12:01:43具体的な数値は質問者に任せてガウス法(掃き出し法のほうだよね?)だけ
でも実装しようかと思ったが、自分がすっかり退化していることに気づ
いた。添え字がゴチャゴチャしてどっちが行でどっちが列だか分からな
くなるぅ。
0037デフォルトの名無しさん
2007/04/21(土) 12:37:13#include <stdio.h>
int main() {
int A, B;
printf("input two non-zero numbers\n");
scanf("%d %d", &A, &B);
if (A==0 || B==0) { printf("zero\n"); return 0; }
int a, b, x1, x2, y1, y2, w;
a = A; b = B; x1 = y2 = 1; x2 = y1 = 0;
while (b != 0) {
w = x2; x2 = x1 - x2 * (a/b); x1 = w;
w = y2; y2 = y1 - y2 * (a/b); y1 = w;
w = b; b = a%b; a = w; }
printf("%dx+%dy=%d\n\tx=%d%+dt\n\ty=%d%+dt\n", A, B, a, x1, B/a, y1, -A/a);
}
0038デフォルトの名無しさん
2007/04/21(土) 13:37:20おお、ちゃんと計算できるけど何やってるのか全然わかんねえw
0039デフォルトの名無しさん
2007/04/21(土) 14:24:43[2] 問題文(含コード&リンク): 下の関数を用いて、与えられたデータの平均と標準偏差を計算
するプログラムを作成し、与えられたデータの平均と標準偏差を求めよ。また、与えられたデータに
関して正常に計算できない場合には(関数を)修正せよ。
[3] 環境
[3.1] OS: (Windows/Linux/等々) Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) Borland
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 次の月曜
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
「与えられたデータ」は、1073741823.000000が並んでいて、最後が1073741822.000000
のデータです。
void average_stddev(double *data, int count)
{
double a, a_square, mean, var, std_dev;
a = a_square = 0.0;
for (i=0; i<count; i++){
a += data[i];
a_square += data[i]*data[i];
}
mean = var = std_dev = 0.0;
if ( count > 0 ){
mean = a / (double)count;
var = a_square / (double)count - mean * mean;
std_dev = sqrt(var);
}
printf("mean = %.16f std_dev = %16f\n", mean, std_dev);
}
0040デフォルトの名無しさん
2007/04/21(土) 15:14:12一番スマートなやり方ってどんなのがありますか?
0041デフォルトの名無しさん
2007/04/21(土) 15:29:28負数の剰余に対応してなかった.一応修正.
#include <stdio.h>
int main() {
int A, B;
printf("input two non-zero numbers\n");
scanf("%d %d", &A, &B);
if (A*B == 0) return printf("zero\n");
int a, b, x1, x2, y1, y2, w;
a = A; b = B; x1 = y2 = 1; x2 = y1 = 0;
while (b != 0) {
int q = a/b, r = a%b;
if (r<0) {
if (b>0){ q--; r+=b; }
else { q++; r-=b; }}
w = x2; x2 = x1 - x2 * q; x1 = w;
w = y2; y2 = y1 - y2 * q; y1 = w;
w = b; b = r; a = w; }
printf("%dx%+dy=%d\n\tx=%d%+dt\n\ty=%d%+dt\n", A, B, a, x1, B/a, y1, -A/a);
}
>>40
すれちがい
ttp://en.wikipedia.org/wiki/Shunting_yard_algorithm
0042デフォルトの名無しさん
2007/04/21(土) 16:17:39[2] 問題文 (含コード&リンク) :
1) Cプログラムファイル名 「one.c」
以下の条件でプロセスIDを出力するプログラムを組みなさい。呼び出しプロセスはfork()関数を使用し、子、孫プロセスを作る物とする。
1) 呼び出しプロセス自身のプロセスIDを出力しなさい。
2) 孫プロセスから自分、親、祖父のIDを出力しなさい。
※補足として、流れを描いた画像をアップしておきます。
ttp://up.tseb.net/src/up11246.jpg
2) Cプログラムファイル名 「two.c」
two.cは二つのサブプロセスを生成出来る。
それぞれのサブプロセスを呼び出し、動作するプログラムを組みなさい。ただし、exec関数を使用する事。
動作例:例えば、プログラムにて 「ls」コマンドを呼び出すようにした場合、
コンソール画面にて、「./two -l -lt」と入力したら、
「ls –l」、「ls-lt」 の出力結果が表示される。
ヒント: ttp://up.tseb.net/src/up11247.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C言語
[4] 期限:2007年04月23日08:00まで
[5] その他の制限:特にありませんが、
初級クラスなのでその辺で使われるであろう関数を使っていただけるとありがたいです。
丸投げでよろしくお願いします。
0043デフォルトの名無しさん
2007/04/21(土) 20:39:33[2] 問題文(含コード&リンク):
・メインで用意した文字列上の適当な位置を指定して、
その位置から逆向き(先頭方向)に1文字ずつ出力するプログラムを書け。
-文字列は"Back to the (Double) Feature"を使用する
-適当な位置は配列の添え字を入力する
-添え字の範囲をチェックする
-逆向きに出力する関数backwardを用意する
-文字列の先頭位置と出力する最初の配列要素の位置
を引数にし、出力した文字数を戻り値にする:
int backward(char *s,int pos);
backwardではポインタが指す文字を出力させる
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: 特にありませんが初歩的な関数で書いていただけると
有難いです。
0044デフォルトの名無しさん
2007/04/21(土) 21:41:33#include <stdio.h>
#include <string.h>
int backward(const char *s,int pos) {
for(pos--;pos>=0;pos--)
printf("%c",s[pos]);
return 0; }
int main(void) {
char *str={"Back to the (Double) Feature"};
int pos,nx=strlen(str);
printf("Input position (%d以下) > " ,nx );
scanf("%d",&pos);
if(pos>nx) return 1;
else backward(str,pos);
return 0; }
0045デフォルトの名無しさん
2007/04/22(日) 03:53:10http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3849.txt
0046デフォルトの名無しさん
2007/04/22(日) 04:19:29#include <stdio.h>
#include <math.h>
#define N 10
void average_stddev(double *data, int count)
{
double a, a_square, mean, var, std_dev;
int i;
a = a_square = 0.0;
for (i=0; i<count; i++)
a += data[i];
mean = var = std_dev = 0.0;
if ( count > 0 ){
mean = a / (double)count;
for(i = 0; i < count; i++)
a_square += pow((data[i] - mean), 2);
var = a_square/count;
std_dev = sqrt(var);
}
printf("mean = %.16f std_dev = %16f\n", mean, std_dev);
}
0047デフォルトの名無しさん
2007/04/22(日) 12:39:08[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3853.c
問題はこちらに書いてあります。よろしくお願いいたします。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: [2007年4月23日00:00(深夜)まで]
0048デフォルトの名無しさん
2007/04/22(日) 16:31:420049デフォルトの名無しさん
2007/04/22(日) 23:48:25これは同じ問題をやったことある香具師じゃなきゃ無理だろ。
参考URLとかもってきてくれ。
0050デフォルトの名無しさん
2007/04/23(月) 01:25:16やはり無理ですか...orz
私もよく理解ができなかったので
どの参考URLを探せば良いのかわからなくて困っています
数字が
0123456
1234567
2345678
の様な感じで並んでいたのは覚えているのですが、参考にもならなくてすみません。
今からまた調べてみます
0051デフォルトの名無しさん
2007/04/23(月) 02:54:13の部分が他の表し方だって言われたんですけどどうしたらいいんでしょうか?
あとint main(void)ではなくてvoid main(void)って言われたんですけど・・・
0052デフォルトの名無しさん
2007/04/23(月) 03:06:51int main , void main についてはすでに前スレでどういうことなのかについての結論は出ている。
ttp://www.kouno.jp/home/c_faq/c11.html
ttp://kbs.cs.tu-berlin.de/~jutta/c/c-faq/c-5.html
ttp://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200211/02110028.txt
ttp://his.luky.org/ML/linux-users.a/msg00056.html
世界的な標準を決めている団体、ANSI、ISO準拠だと、プログラムの開始のfunctionは
mainと名づけられていて、その戻り値はint型とされている。
個人の報告によれば、void mainでコンパイルエラーを起こした開発環境があっても
int main(最後にreturn (int型変数);でエラーが起きたという報告は皆無。
自分が使っている環境でvoid mainが通るならそれでも良いが、値を返す関数じゃないからといって
void mainという理由を通すなら、それはもはやANSI、ISOに従ったmainではないということになるが。
0053デフォルトの名無しさん
2007/04/23(月) 03:13:16char *Gakusei2 = {"ABCDEFGHI"}; < こうですか?それとも
char Gakusei2[9] = {"ABCDEFGHI"}; < こうですか?わかりません ><;
0054デフォルトの名無しさん
2007/04/23(月) 03:23:59授業で習ったものに、文字配列の初期化や格納について参考になるものはない?
出来るのにそれじゃダメとか言い出す講師は、ただ単にそういうんじゃなくて
どういうことに則って記述するのか、ちゃんと聞いてみるしかないかと。
0055デフォルトの名無しさん
2007/04/23(月) 03:33:05すいません。無知なんで詳しいことがよくわかんないんですけど
charってのは使わないみたいです。あとはfor構文を使うとしか聞いていません。
0056デフォルトの名無しさん
2007/04/23(月) 03:45:21すいませんでした。
A B C D E F G H I
90 73 55 60 45 88 66 75 40
です。
実行結果が下のようになるようにお願いします。
A B C D E F G H I
優 良 不可 可 不可 優 可 良 不可
と書いてあるけど、文字配列を使っちゃダメならA〜Iを何で表示しろと?
まさか↓のようにやれと?
for(i=65; i<=73; i++) printf("%c ",i);
0057デフォルトの名無しさん
2007/04/23(月) 04:46:37TAか教授か・・・
0058デフォルトの名無しさん
2007/04/23(月) 05:17:16http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3854.txt
0059デフォルトの名無しさん
2007/04/23(月) 05:21:531 2 3 4 5 6 7 8 9
4 6 8 10 12 14 16 18
9 12 15 18 21 24 27
16 20 24 28 32 36
25 30 35 40 45
36 42 48 54
49 56 63
64 72
81
というように表示させたいんですけどうまくいきません。
0060デフォルトの名無しさん
2007/04/23(月) 05:23:10int main()
{
int i;
int j;
for (i=1; i <= 9; i++) {
for(j=1; j <= 9; j++) {
if(i <= j){
printf("%3d,",i*j);
}
}
printf("\n");
}
return 0;
}
ここまではできたのですが表がどうしても左詰めになってしまいます。
どこがいけないんでしょうか?それ以外にも直したほうがいいところ
があればおねがいします。
0061デフォルトの名無しさん
2007/04/23(月) 05:28:48#include <stdio.h>
int main()
{
int i, j;
for(i = 1; i < 10; i++){
for(j = 1; j < i ; j++)
printf(" "); /* 半角の空白3つ分を出力 */
for(j = i; j < 10; j++)
printf("%3d", i*j);
puts("");
}
return 0;
}
0062デフォルトの名無しさん
2007/04/23(月) 05:39:39表示されないんですけど・・・
0063デフォルトの名無しさん
2007/04/23(月) 05:41:03> printf(" "); /* 半角の空白3つ分を出力 */
この中に半角の空白をあと2つ足して3つに汁!
0064デフォルトの名無しさん
2007/04/23(月) 05:42:15printfの中を半角のスペース3つにしといて。
2ch投稿時にまとまったスペースはひとつにされてしまう。
0065デフォルトの名無しさん
2007/04/23(月) 05:43:53006664
2007/04/23(月) 05:46:23なじられるのにはなれてますから。
0067デフォルトの名無しさん
2007/04/23(月) 05:49:37ちうか、俺流の書式の指定
#include <stdio.h>
int main() {
int i, j,t=3;
for(i = 1; i < 10; i++){
for(j = 1; j < i ; j++)
printf("%*c",t,32);
for(j = i; j < 10; j++)
printf("%*d", t,i*j);
puts(""); }
return 0; }
0068デフォルトの名無しさん
2007/04/23(月) 05:50:450069デフォルトの名無しさん
2007/04/23(月) 05:54:31ただputs(""); っていうのをまだ習ってないんですけど
これを使わずに表示することはできないんですか?
0070デフォルトの名無しさん
2007/04/23(月) 05:55:190071デフォルトの名無しさん
2007/04/23(月) 05:55:54printf("\n");に置き換えて
0072デフォルトの名無しさん
2007/04/23(月) 12:43:14NULLを%cで表示ってバカ?
0073デフォルトの名無しさん
2007/04/23(月) 15:15:41007442
2007/04/23(月) 16:27:310075デフォルトの名無しさん
2007/04/23(月) 16:32:53http://www.psl.ne.jp/perl/pdojo00b.html
バカじゃないだろ、ちゃんとコードに割り当てられているし
単に文字が無いんではなく、空文字として存在してんだよぉ〜
無知は黙ってろ、クソカス低学歴(プ
お前は一生void mainに0^0=1を使ってろw
0076本年度のバカ6、7号
2007/04/23(月) 16:36:42>>68
NULLを%cで表示ってバカ?
73 名前:デフォルトの名無しさん 投稿日:2007/04/23(月) 15:15:41
どうせやるなら、printf("%*s", t, "")だな。
0077デフォルトの名無しさん
2007/04/23(月) 16:40:06""が示す文字、すなわち空文字=NULLじゃねーかYO!
007873
2007/04/23(月) 17:12:16やってみれば判るけど、"%s"に""を渡しても何も出力しないが
"%c"にNULLを渡すとナル文字が出力されるのよ。
つまり、非可読文字が出力されちゃうわけ。判る?
#あ、標準出力をリダイレクトしてodするなんて知恵も無いDozerには理解できるわけ無いか。
0080デフォルトの名無しさん
2007/04/23(月) 17:29:43> #あ、標準出力をリダイレクトしてodするなんて知恵も無いDozerには理解できるわけ無いか。
> Dozerには理解できるわけ無いか。
> Dozer
さすがにこれはどうかと思うぞ。
関係ない人間にまで喧嘩売ってるとしか思えん。
0081デフォルトの名無しさん
2007/04/23(月) 17:33:350082デフォルトの名無しさん
2007/04/23(月) 17:34:580083デフォルトの名無しさん
2007/04/23(月) 17:35:08お前ってさぁ、自分の間違いを指摘されると何か言い返して相手の間違い(だと思ったこと)を
指摘しないと気がすまない基地外だろ?w
バカじゃね?出力結果が物語っているのに、何自分勝手な自論をこんなところで提言してんだよw
何これ↓?知ったかぶり?
> やってみれば判るけど、"%s"に""を渡しても何も出力しないが
> "%c"にNULLを渡すとナル文字が出力されるのよ。
だからその通りになってんじゃんwwwwwwwwwwww
> つまり、非可読文字が出力されちゃうわけ
お前のやっている %s と "" の方がどう見てもおかしいし理解不能だろwwwwww
これだからわけのわからねぇ〜知ったか理論を持ち出して説明する専門学校卒は困るんだよ!視ねw
0084頭の上にウンコを乗せたバカの今日の名言
2007/04/23(月) 17:36:30>>68
NULLを%cで表示ってバカ?
NULLを%cで表示ってバカ?
NULLを%cで表示ってバカ?
NULLを%cで表示ってバカ?
NULLを%cで表示ってバカ?
NULLを%cで表示ってバカ?
NULLを%cで表示ってバカ?
"" を %s で表示の方がバカだよwwwwww
文字列じゃねーだろ "" はw あっ、お前の場合ダブルクォートが文字列のつもりか?w
0085デフォルトの名無しさん
2007/04/23(月) 17:36:54脳みそ硬化してる連中はどっかよそへいけ。
0086デフォルトの名無しさん
2007/04/23(月) 17:40:29> 文字列じゃねーだろ "" はw あっ、お前の場合ダブルクォートが文字列のつもりか?w
どうみても0文字以上の文字を含む文字列では?
0087デフォルトの名無しさん
2007/04/23(月) 17:42:050088デフォルトの名無しさん
2007/04/23(月) 17:44:090089デフォルトの名無しさん
2007/04/23(月) 17:48:20まぁ、それについてはともかく、以下のソースをコンパイルして実行してみろ。
お前がやったこともNULLの引用と変わらんことだと気づくよw
#include <stdio.h>
#include <string.h>
int main(void)
{
char *buf={"ABC"},*a="";
unsigned int i;
for(i=0; i<=strlen(buf); i++)
printf("buf[%d] : \"%c\" / %d \n",i,buf[i],buf[i]);
printf("a[0] : \"%c\" / %d \n",a[0],a[0]);
printf("NULL : \"%c\" / %d \n",NULL,NULL);
return 0;
}
0090デフォルトの名無しさん
2007/04/23(月) 17:50:540091デフォルトの名無しさん
2007/04/23(月) 17:51:18>>73の方が浅はか、無知、知ったかw
実証してみりゃ結論が出るのに、やらずに勝手な自論を持ち出して相手の不適切を
指 摘 し た つ も り が
自分がやったことが相手のやったことの違うやり方だったことに過ぎないという
お間抜けなことに気づかないアホw
やれやれ、ここはやたらとint mainにかみついたり、C言語スタイルで記述したソースを
C++コンパイラでコンパイルできればそれもC++のソースとか平気で言っちゃう香具師らが多いなんて
もはや終わってんなここw 所詮、プロのプログラマーになれなかった落ちこぼれ
負け組みの集団だろ?俺なんて趣味でやっている程度だが、確実にボケ老人より知識は上だなw
経験はまだ浅いが、いずれプロにも匹敵するくらいにはなるぜw
0092デフォルトの名無しさん
2007/04/23(月) 17:56:14で、出力結果は? 勿論、出力をリダイレクトしてダンプしてね。
0093デフォルトの名無しさん
2007/04/23(月) 17:57:46出力結果を聞くなんておかしいね?お前がコンパイルしてやってないってことは
結局""も脳内コンパイルか?脳みそこねこねコンパイルw
0094本日のボケ老人
2007/04/23(月) 17:58:32>>68
NULLを%cで表示ってバカ?
73 名前:デフォルトの名無しさん 投稿日:2007/04/23(月) 15:15:41
どうせやるなら、printf("%*s", t, "")だな。
↑こいつら死刑なw
0095デフォルトの名無しさん
2007/04/23(月) 18:02:28int main()
{
printf("%%s:%s\n", "");
printf("%%c:%c\n", NULL);
return 0;
}
#if 0
% gcc foo.c
% ./a.out
%s:
%c:
% ./a.out | od -t x1
00000000 25 73 3a 0a 25 63 3a 00 0a
00000011
%
#endif
009642
2007/04/23(月) 18:07:57お願いします。どなたか>>42の課題をやっては戴けないでしょうか?
0097デフォルトの名無しさん
2007/04/23(月) 18:10:27残念、参考資料が両方とも流れてしまっている。
009842
2007/04/23(月) 18:14:04画像:ttp://www.uploda.org/uporg784837.jpg.html
ttp://user.ftth100.com/log/up/log/4352.jpg
ヒントコード:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3854.txt
0099デフォルトの名無しさん
2007/04/23(月) 18:15:04これやったらおかしな数値が表示されたぞ?
010042
2007/04/23(月) 18:18:54アップをしました。
ヒントコードの方、文字化けをしているみたいなのでもう一度アップしました。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3856.txt
010142
2007/04/23(月) 18:20:01スレ汚しすいません。
■ このスレッドは過去ログ倉庫に格納されています