c言語 練習ソースプログラム

[ リスト | 詳細 ]

記事検索
検索

全15ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]

間違い探し。。。 

上ソースと下ソース、どこがちがうの?


main( )
{
	char a[4+1] = "アヲガ";
	unsigned char b [4+1]= "アヲガ";
	int i;

	for(i=0;i<4;i++){
		printf("%d\t",a[i]);
	}

	printf("\n");

	for(i=0;i<4;i++){
		printf("%d\t",b[i]);
	}

}


main( )
{
	char a[4+1] = "アヲガ";
	unsigned char b [4+1]= "アヲガ";
	int i;

	for(i=0;i<4;i++){
		printf("%d\t",a[i]);
	}

	pirntf("\n");

	for(i=0;i<4;i++){
		printf("%d\t",b[i]);
	}
}


イメージ 1



上は動いて下は動かない。
どうしてだ?!

文字の数値・・・

main( )
{
	char a[8+1] = {"アブラゼミ"};
	int i;

	printf("%s\n",&a[0]);

	i = 0;
	while(a[i]){
		printf("%d\n",a[i++]);
	}

}


main( )
{
	unsigned char a[8+1] = {"アブラゼミ"};
	int i;

	printf("%s\n",&a[0]);

	i = 0;
	while(a[i]){
		printf("%d\n",a[i++]);
	}

}



イメージ 1


この数値はなんだろう???

kadai110 予想解答

「kadai110」
 一つの文字列を入力し、/ で分割した後、二次元配列に格納する


/**************************************************************
* kadai110
*
* 一つの文字列を入力し、/ で分割した後、二次元配列に格納する
*
* 作成日 : 2008年08月31日
* 更新日 : 
* 備考  :
*************************************************************/


main( )
{
	char a[500][500+1]={0};	/*** コピーされる2次元配列 ***/
	char b[500+1];		/*** 対照の文字列 ***/
	int i;			/*** カウンタ ***/
	int f;			/*** 分割のときのカウンタ ***/
	int t,c;		/*** a配列のカウンタ ***/

	/*** 対照の文字列 ***/
	printf("分割したい文字列を入力(分割には「/」を使用)\n");
	scanf("%s",&b[0]);

	/*** 2次元配列に区切って入れていく ***/
	i = 0;
	f = 0;
	t = 0;
	while(b[i]){
		if(b[i]=='/'){	/* 区切りが現れる */
			c = 0;
			for(;f<i;f++){	/* fからiの手前までをa配列にコピー */
				a[t][c++] =b[f];
			}
			a[t++][c] = '\0';	/* ナル文字をセット */
			i++;
			f++;			/* 区切りを飛ばす */
		}else{
			i++;
		}
	}

	/*** 最終の区切れナシの文字をコピー ***/
	c = 0;
	for(;f<i;f++){
		a[t][c++] = b[f];
	}

	/*** 出力 ***/
	t = 0;
	while(a[t][0]){
		printf("%s\n",&a[t++][0]);
	}
}


イメージ 1

8進数とは???

8進数(32ビット表現で)

10進数の 「 8 」を2進数で表すと「 000000000000000000000000000001000 」
10進数の「 −8 」を2進数で表すと「 111111111111111111111111111111000 」


8進数は3ビットごとに区切るから…
10進数の 「 8 」を8進数で表すと「 10 」
10進数の「 −8 」を8進数で表すと「 3888888880 」


かな・・・?
学生番号と身長(cm)の組を多数入力し、入力したデータをそのまま出力する。ただし、
 身長が180以上の場合だけ'tall'という文字を横に付け加える。入力データのストッパは
 学生番号=身長=0とする

  (入力例)                   (出力例)
  1001  168             1001  168
  1002  176             1002  176
  1004  182             1004  182  tall
     0    0



空白文字をつめて出力することができた。。
これで文字の長さがつかめて構造体にぶち込みやすくなったかな??
まだまだ修正が必要ですがっ


#include <stdio.h>
#define N 15
typedef struct {
	int b;			/*学生番号*/
	int s;			/*身長*/
	char k[10];		/*結果*/
	}Student;


int main (void){
	FILE *fp;
	int ch,pos = 0; 
	int bch = '\0';	

	fp = fopen("text.txt","r");

	if(fp == NULL)
		printf("オープンNG\n");

	while( (ch = fgetc(fp) ) != EOF ){
		if( (ch != ' ') || (bch != ' ') ){
			if( (pos > N) && (ch != '\n') ){
				putchar('\n');
				pos = 0;
			}
			putchar(ch);
			pos = (ch=='\n') ? 0:pos+1;
		}
		bch = ch;
	}


	fclose(fp);
}



全15ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]


よしもとブログランキング

もっと見る

[PR]お得情報

ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事