したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

test

1名無しさん:2009/07/01(水) 02:52:24
testスレ

2名無しさん:2009/07/01(水) 02:53:10
/*** インクルードファイル ***/
#include <stdio.h>
#include <stdlib.h>

int main()
{
int Num = 10; /* データ人数 */
int* point_ptr; /* 得点を記録する領域のポインタ */
int* rank_ptr; /* 順位を記録する領域のポインタ */
int i; /* point_ptrのオフセットカウンタ */
int j; /* rank_ptrのオフセットカウンタ */

int* rank_sort; /* ソートした順位を記録する領域のポインタ */
int k; /* ちょっと入れとく用変数 */
int no[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; /* 番号に使う */


/*** 領域確保 ***/
point_ptr = (int*)calloc(Num,sizeof(int));
rank_ptr = (int*)calloc(Num,sizeof(int));
rank_sort = (int*)calloc(Num,sizeof(int));


/*** データの入力 ***/
i = 0;
while( i < Num ){
scanf("%d",(point_ptr + i));
i++;
}

/***
*** 順位付け
***/
/*** 最初の人から順番に自分の順位を調べる ***/
for (i = 0; i < Num; i++) {
/*** 順位を1に初期化 ***/
*(rank_ptr + i) = 1;
*(rank_sort + i) = 1;

/*** 自分と全員の得点を比べ自分より高い得点の人がいたら ***/
/*** 順位を1足していく ***/
for (j = 0; j < Num; j++) {
if( *( point_ptr + j ) > *( point_ptr + i ) ){
*( rank_ptr + i ) += 1;
}
}
}


/*** ソート ***/
for (i = 0; i < Num; i++) {
for (j = 0; j < Num; j++) {
if( *( rank_ptr + j ) > *( rank_ptr + i ) ){
k = *( rank_ptr + j );
*( rank_ptr + j ) = *( rank_ptr + i );
*( rank_ptr + i ) = k;

k = *(point_ptr + j);
*(point_ptr + j) = *(point_ptr + i);
*(point_ptr + i) = k;

k = no[j];
no[j] = no[i];
no[i] = k;
}
}
}

printf(" 番号 得点 順位\n");

/*** 結果出力 ***/

for (i = 0; i < Num; i++) {
printf("%6d%6d%6d\n",no[i],*(point_ptr + i),*(rank_ptr + i));
}

return(0);
}

3名無しさん:2009/07/01(水) 03:15:57
>>2
int* rank_sort; /* ソートした順位を記録する領域のポインタ */
の部分と、
領域確保のとこの
rank_sort = (int*)calloc(Num,sizeof(int));
と、
/*** 順位を1に初期化 ***/ の部分の
*(rank_sort + i) = 1;


はまったく必要なかった。ごめん。

4名無しさん:2009/07/01(水) 12:47:03
#include <stdio.h>
#include <stdlib.h>
int main()
{
&nbsp;&nbsp;int Num = 100; /* データ人数 */
&nbsp;&nbsp;int* number_ptr;/* 順位を記録する領域のポインタ */
&nbsp;&nbsp;int* point_ptr; /* 得点を記録する領域のポインタ */
&nbsp;&nbsp;int* rank_ptr; /* 順位を記録する領域のポインタ */
&nbsp;&nbsp;int i; /* point_ptrのオフセットカウンタ */
&nbsp;&nbsp;int j; /* rank_ptrのオフセットカウンタ */
&nbsp;&nbsp;int p, S;

&nbsp;&nbsp;/*** 領域確保 ***/
&nbsp;&nbsp;number_ptr = (int*)calloc(Num,sizeof(int));
&nbsp;&nbsp;point_ptr = (int*)calloc(Num,sizeof(int));
&nbsp;&nbsp;rank_ptr = (int*)calloc(Num,sizeof(int));

&nbsp;&nbsp;/*** データの入力 ***/
&nbsp;&nbsp;for (i = 0; i<100; i++) {
&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d", (point_ptr + i));
&nbsp;&nbsp;&nbsp;&nbsp;if(*(point_ptr + i) == -1) break; /* 入力終わり */
&nbsp;&nbsp;&nbsp;&nbsp;*(number_ptr + i) = i+1;
&nbsp;&nbsp;}
&nbsp;&nbsp;Num = i; /* データ人数 */

5名無しさん:2009/07/01(水) 12:47:49
&nbsp;&nbsp;/*** 点数順に並び替える (選択ソート) ***/
&nbsp;&nbsp;for (i = 0; i < Num-1; i++) {
&nbsp;&nbsp;&nbsp;&nbsp;/*** 順位 p を i で初期化 ***/
&nbsp;&nbsp;&nbsp;&nbsp;for (p = j = i; j < Num; j++) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*** 自分と全員の得点を比べ自分より高い得点の人がいたら ***/
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( *( point_ptr + j ) > *( point_ptr + p ) ){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*** 順位 p を j にする ***/
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p = j;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;/* i と 順位 p と入れ替える */
&nbsp;&nbsp;&nbsp;&nbsp;S = *(point_ptr + i), *(point_ptr + i) = *(point_ptr + p), *(point_ptr + p) = S;
&nbsp;&nbsp;&nbsp;&nbsp;S = *(number_ptr + i), *(number_ptr + i) = *(number_ptr + p), *(number_ptr + p) = S;
&nbsp;&nbsp;}

&nbsp;&nbsp;/*** 順番に並んでいるものの順位を調べる ***/
&nbsp;&nbsp;*(rank_ptr) = p = 1;
&nbsp;&nbsp;for (i = 1; i < Num; i++) {
&nbsp;&nbsp;&nbsp;&nbsp;if( *(point_ptr + i-1) > *(point_ptr + i))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p = i+1;
&nbsp;&nbsp;&nbsp;&nbsp;*(rank_ptr + i) = p;
&nbsp;&nbsp;}

&nbsp;&nbsp;printf(" 番号 得点 順位\n");
&nbsp;&nbsp;/*** 結果出力 ***/
&nbsp;&nbsp;for (i = 0; i < Num; i++) {
&nbsp;&nbsp;&nbsp;&nbsp;printf("%6d%6d%6d\n", *(number_ptr + i), *(point_ptr + i), *(rank_ptr + i));
&nbsp;&nbsp;}
&nbsp;&nbsp;free(number_ptr);
&nbsp;&nbsp;free(point_ptr);
&nbsp;&nbsp;free(rank_ptr);
&nbsp;&nbsp;return(0);
}

6名無しさん:2009/07/01(水) 22:32:32
#include <stdio.h>

/* chの個数を数える関数 */
unsigned str_chnum(const char str[], char ch)
{
unsigned len = 0;
int count = 0;

while (str[len]) {
if(str[len] == ch)
count++;
len++;
}

return(count);
}


int main(void)
{
char st[100];

printf("文字列を入力してください:");
scanf("%s", st);

printf("%cは%d個含まれています。\n", st[0], str_chnum(st, st[0]));

return(0);
}




間違ってたらゴメン

7<削除>:<削除>
<削除>

8<削除>:<削除>
<削除>

9名無しさん:2009/07/02(木) 12:22:35
/* バイナリーファイルの読み込みと、リスト構造でのソート */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct fseito { char cd[6]; char simei[20]; char kokugo[3], sansu[3], rika[3], syakai[3]; }; // ファイル仕様
struct seito {
&nbsp;&nbsp;char cd[6+1];
&nbsp;&nbsp;char simei[20+1];
&nbsp;&nbsp;int kokugo;
&nbsp;&nbsp;int sansu;
&nbsp;&nbsp;int rika;
&nbsp;&nbsp;int syakai;
&nbsp;&nbsp;struct seito *p; /* 自己参照型ポインター */
};
int main() {
&nbsp;&nbsp;struct fseito str;
&nbsp;&nbsp;struct seito *ptr, *nptr = NULL;
&nbsp;&nbsp;struct seito *S, **ptr1, **ptr2;
&nbsp;&nbsp;FILE *fp;
&nbsp;&nbsp;char kokugo[3+1], sansu[3+1], rika[3+1], syakai[3+1];
&nbsp;&nbsp;int n, m, num;

&nbsp;&nbsp;if ((fp = fopen("name.txt", "r")) == NULL) {
&nbsp;&nbsp;&nbsp;&nbsp;printf("ファイルがオープンできません。\n");
&nbsp;&nbsp;&nbsp;&nbsp;return 1;
&nbsp;&nbsp;}
&nbsp;&nbsp;/* 読み込み処理 */
&nbsp;&nbsp;for(num=0; fread(&str, sizeof(str), 1, fp) != 0; num++) {
&nbsp;&nbsp;&nbsp;&nbsp;if((ptr = calloc(sizeof(struct seito), 1)) == NULL) break;
&nbsp;&nbsp;&nbsp;&nbsp;strncpy(ptr->cd, str.cd, 6);
&nbsp;&nbsp;&nbsp;&nbsp;strncpy(ptr->simei, str.simei, 20);

10名無しさん:2009/07/02(木) 12:23:07
&nbsp;&nbsp;&nbsp;&nbsp;strncpy(kokugo, str.kokugo, 3); kokugo[3] = '\0'; ptr->kokugo = atoi(kokugo);
&nbsp;&nbsp;&nbsp;&nbsp;strncpy(sansu, str.sansu, 3); sansu[3] = '\0'; ptr->sansu = atoi(sansu);
&nbsp;&nbsp;&nbsp;&nbsp;strncpy(rika, str.rika, 3); rika[3] = '\0'; ptr->rika = atoi(rika);
&nbsp;&nbsp;&nbsp;&nbsp;strncpy(syakai, str.syakai, 3); syakai[3] = '\0'; ptr->syakai = atoi(syakai);
&nbsp;&nbsp;&nbsp;&nbsp;ptr->p = nptr; nptr = ptr;
&nbsp;&nbsp;};
&nbsp;&nbsp;/* 並べ替え処理(リスト構造でのバブルソート)(隣接する前後を交換) */
&nbsp;&nbsp;for(n = 0, ptr1 = &nptr; n<num-1; n++, ptr1 = &nptr) {
&nbsp;&nbsp;&nbsp;&nbsp;for(m = n; m<num-1; m++, ptr1 = &(*ptr1)->p) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptr2 = &(*ptr1)->p;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((*ptr1)->kokugo < (*ptr2)->kokugo) { /* 「国語」の点数で降順に並び替え */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S = (*ptr1)->p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 後ろの構造体の次ポインタをSに退避する */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*ptr1)->p = (*ptr2)->p;&nbsp;&nbsp;/* 後ろの構造体の次ポインタに、前の構造体の次ポインタの値をコピーする */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S->p = *ptr1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 前の構造体の次ポインタが、後ろの構造体を指すようにする */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*ptr1 = S;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 後ろの構造体を指していたポインタを、前の構造体を指すようにする */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}
&nbsp;&nbsp;/* 表示処理 */
&nbsp;&nbsp;for(ptr = nptr, n = 0; ptr != 0 /* n<num */; ptr = ptr->p, n++) { /* どちらの条件判断でも終了出来る */
&nbsp;&nbsp;&nbsp;&nbsp;if(n%10 == 0) puts("コード   氏    名   国語 算数 理科 社会");
&nbsp;&nbsp;&nbsp;&nbsp;printf("%6s %20s %4d %4d %4d %4d\n",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptr->cd, ptr->simei, ptr->kokugo, ptr->sansu, ptr->rika, ptr->syakai);
&nbsp;&nbsp;}
&nbsp;&nbsp;/* 終了処理 */
&nbsp;&nbsp;for(ptr = nptr; ptr != 0; ptr = nptr) {
&nbsp;&nbsp;&nbsp;&nbsp;nptr = ptr->p;
&nbsp;&nbsp;&nbsp;&nbsp;free(ptr);
&nbsp;&nbsp;}
&nbsp;&nbsp;fclose(fp);
&nbsp;&nbsp;return 0;
}

11名無しさん:2009/07/03(金) 22:38:22
#include <stdio.h>
#define MAX_DATA 10
typedef struct {
&nbsp;&nbsp;char name[16+1];
&nbsp;&nbsp;int lang;
&nbsp;&nbsp;int prac;
&nbsp;&nbsp;int total;
} student_t;
int main() {
&nbsp;&nbsp;int cnt = 0;
&nbsp;&nbsp;char filename[256+1];
&nbsp;&nbsp;FILE *fp;
&nbsp;&nbsp;student_t person;

&nbsp;&nbsp;if(fgets(filename, 256, stdin) == NULL) return 1;
&nbsp;&nbsp;filename[strlen(filename)-1] = '\0';
&nbsp;&nbsp;if((fp = fopen(filename, "w")) == NULL) {
&nbsp;&nbsp;&nbsp;&nbsp;printf("%s file open error!", filename); return 1;}
&nbsp;&nbsp;while(cnt<MAX_DATA) {
&nbsp;&nbsp;&nbsp;&nbsp;scanf("%16s", person.name);
&nbsp;&nbsp;&nbsp;&nbsp;if(0 == strcmp(person.name, "-")) break;
&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d %d", &person.lang, &person.prac);
&nbsp;&nbsp;&nbsp;&nbsp;person.total = person.lang + person.prac;
&nbsp;&nbsp;&nbsp;&nbsp;fprintf(fp, "%s %d %d %d\n",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person.name, person.lang, person.prac, person.total);
&nbsp;&nbsp;&nbsp;&nbsp;cnt++;
&nbsp;&nbsp;}
&nbsp;&nbsp;fclose(fp);
}

12名無しさん:2009/07/03(金) 22:39:08
#include <stdio.h>
typedef struct {
&nbsp;&nbsp;char name[16+1];
&nbsp;&nbsp;int lang;
&nbsp;&nbsp;int prac;
&nbsp;&nbsp;int total;
} student_t;
int main() {
&nbsp;&nbsp;char filename[256+1], kamoku;
&nbsp;&nbsp;FILE *fp;
&nbsp;&nbsp;student_t person;
&nbsp;&nbsp;int count = 0, point;

&nbsp;&nbsp;if(fgets(filename, 256, stdin) == NULL) return 1;
&nbsp;&nbsp;filename[strlen(filename)-1] = '\0';
&nbsp;&nbsp;if((fp = fopen(filename, "r")) == NULL) {
&nbsp;&nbsp;&nbsp;&nbsp;printf("%s file open error!", filename); return 1;}
&nbsp;&nbsp;scanf("%c %d", &kamoku, &point);
&nbsp;&nbsp;while(fscanf(fp, "%16s %d %d %d",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person.name, &person.lang, &person.prac, &person.total) == 4){
&nbsp;&nbsp;&nbsp;&nbsp;switch(kamoku) {
&nbsp;&nbsp;&nbsp;&nbsp;case 'l' : if(point <= person.lang) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts(person.name); count = 1; } break;
&nbsp;&nbsp;&nbsp;&nbsp;case 'p' : if(point <= person.prac) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts(person.name); count = 1; } break;
&nbsp;&nbsp;&nbsp;&nbsp;case 't' : if(point <= person.total) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts(person.name); count = 1; } break;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}
&nbsp;&nbsp;if(count == 0) puts("No one");
&nbsp;&nbsp;fclose(fp);
}

13名無しさん:2009/07/04(土) 08:02:52
#include <stdio.h>
char* Reverse(char *, int);
int main(){
&nbsp;&nbsp;char line[81];
&nbsp;&nbsp;int i=1, len;

&nbsp;&nbsp;do {
&nbsp;&nbsp;&nbsp;&nbsp;printf("非負の整数を入力してください: ");
&nbsp;&nbsp;&nbsp;&nbsp;if(fgets(line, 81, stdin) == NULL) return 1;
&nbsp;&nbsp;&nbsp;&nbsp;if(*line == '\n') continue;
&nbsp;&nbsp;&nbsp;&nbsp;for(len = 0; line[len] != '\n' && line[len] != '\0'; len++); line[len] = '\0';
&nbsp;&nbsp;&nbsp;&nbsp;for(i = len - 1; i>=0; i--)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if('0' > line[i] || line[i] > '9'){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("非負の整数以外が入力されました。\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;} while (i>=0);
&nbsp;&nbsp;printf("%s", line); // 関数のパラメータは、呼び出し順が左からではない為。
&nbsp;&nbsp;printf(" を逆から読むと%s です.\n", Reverse(line, len));
&nbsp;&nbsp;return 0;
}
char* Reverse(char *str, int length){
&nbsp;&nbsp;int i;
&nbsp;&nbsp;char tmp;

&nbsp;&nbsp;for(i=length/2-1; i>=0; i--) { // コードが最適化されるなら、for(i=0; i<length/2; i++)
&nbsp;&nbsp;&nbsp;&nbsp;tmp = str[i], str[i] = str[length-i-1], str[length-i-1] = tmp;
&nbsp;&nbsp;}
&nbsp;&nbsp;return str;
}

14名無しさん:2009/07/04(土) 14:50:16
#include <stdio.h> /*問3*/
char janken_com(int);
int main() {
&nbsp;&nbsp;char hum, com; int seed;

&nbsp;&nbsp;printf("Your form: "); scanf("%c", &hum);
&nbsp;&nbsp;printf("Seed: "); scanf("%d", &seed);
&nbsp;&nbsp;com = janken_com(seed);
&nbsp;&nbsp;printf("Com form: %c\n", com);
&nbsp;&nbsp;if(hum=='g'&&com=='c' || hum=='c'&&com=='p' || hum=='p'&&com=='g') puts("You win!");
&nbsp;&nbsp;else if(hum==com) puts("You're even!");
&nbsp;&nbsp;else puts("You loss!");
}
int main() { /*問1*/
&nbsp;&nbsp;char buf[50+1], *ptr = buf;

&nbsp;&nbsp;scanf("%50s", buf);
&nbsp;&nbsp;putchar(*ptr++);
&nbsp;&nbsp;while(*ptr) printf(" %c", *ptr++);
&nbsp;&nbsp;putchar('\n');
}
int main() { /*問2*/
&nbsp;&nbsp;int i, n; float a[20], b[20], sum=0.0;

&nbsp;&nbsp;printf("Degree: "); scanf("%d", &n);
&nbsp;&nbsp;printf("Data of A: ");
&nbsp;&nbsp;for(i=0;i<n;i++) scanf("%f", &a[i]);
&nbsp;&nbsp;printf("Data of B: ");
&nbsp;&nbsp;for(i=0;i<n;i++) {scanf("%f", &b[i]); sum += a[i]*b[i];}
&nbsp;&nbsp;printf("Inner Product: %g\n", sum);
}

15名無しさん:2009/07/11(土) 01:37:14
C++はど素人だから間違ってたらゴメン


//ゲッターとセッターを付けることで、privateで保護されたint型変数が直接は変更できないようカプセル化している。
//変数cのゲット関数名がgetccなのは、getcがC言語の標準出力関数として使われているため、やむなくこうした。

#include <iostream>
using namespace std;

class AAA
{
private:
int a;
int b;
int c;
int d;
int e;
public:
//コンストラクタ
AAA() {
a = 0;
b = 0;
c = 0;
d = 0;
e = 0;
}
//セット関数の定義
void seta(int t);
void setb(int t);
void setc(int t);
void setd(int t);
void sete(int t);
//ゲット関数の定義
int geta(void);
int getb(void);
int getcc(void);
int getd(void);
int gete(void);

~AAA() {} //デストラクタ

};

//セット関数の実装
void AAA::seta(int t) {
a = t;
}
void AAA::setb(int t) {
b = t;
}
void AAA::setc(int t) {
c = t;
}
void AAA::setd(int t) {
d = t;
}
void AAA::sete(int t) {
e = t;
}

//ゲット関数の実装
int AAA::geta() {
return a;
}
int AAA::getb() {
return b;
}
int AAA::getcc() {
return c;
}
int AAA::getd() {
return d;
}
int AAA::gete() {
return e;
}

16名無しさん:2009/07/11(土) 01:38:41

//セット関数の実装
void AAA::seta(int t) {
a = t;
}
void AAA::setb(int t) {
b = t;
}
void AAA::setc(int t) {
c = t;
}
void AAA::setd(int t) {
d = t;
}
void AAA::sete(int t) {
e = t;
}

//ゲット関数の実装
int AAA::geta() {
return a;
}
int AAA::getb() {
return b;
}
int AAA::getcc() {
return c;
}
int AAA::getd() {
return d;
}
int AAA::gete() {
return e;
}

int main()
{
AAA object; //ここでAAAクラスのオブジェクト作成
char m; //変数選択用
int t; //値の入力用

while(1)
{
//a,b,c,d,eの数値を表示する。
cout << "a = " << object.geta() << endl;
cout << "b = " << object.getb() << endl;
cout << "c = " << object.getcc() << endl;
cout << "d = " << object.getd() << endl;
cout << "e = " << object.gete() << endl;

cout << "a,b,c,d,eの中から変更したい変数を選んでください。(他を選ぶと終了)" << endl;
cin >> m;
cout << "変更する値を入力してください。" << endl;
cin >> t;
if (m == 'a')
object.seta(t);
else if(m == 'b')
object.setb(t);
else if(m == 'c')
object.setc(t);
else if(m == 'd')
object.setd(t);
else if(m == 'e')
object.sete(t);
else
return 0;
}
}

17名無しさん:2009/07/12(日) 02:22:15
#include <stdio.h>
#include <stdlib.h>
#include <string.h> /*strcat関数で必要 */

int main()
{
int i, j;
FILE *fp;
char bun[256], file[33][30];

fp = fopen("test2.txt", "r"); /* ここにファイル名を入れる */

if(fp == NULL) {
perror("ファイルをオープンできません\n");
return -1;
}

i = 0;
while(fscanf(fp, "%s", &file[i][0]) != EOF) {
i++;
}
fclose(fp);

fp = fopen("test3.txt", "w"); /* ここに書き込むファイルの名前を入れる */
if(fp == NULL) {
perror("ファイルをオープンできません\n");
return -1;
}

j = 0;
while(j < 20) {
i = 0;
i = rand()%11;
strcpy(bun, &file[i][0]);
strcat(bun, "は");
i += (12 - i);
i += rand()%9;
strcat(bun, &file[i][0]);
i += (22 - i);
i += rand()%10;
strcat(bun, &file[i][0]);
strcat(bun, "\n");
fprintf(fp, bun);
j++;
}
fclose(fp);

return 0;
}

18名無しさん:2009/07/12(日) 12:11:38
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h> /*strcat関数で必要 */

int main()
{
srand((unsigned) time(NULL)); /* 乱数系列の変更 */
int i, j;
FILE *fp;
char bun[256], file[33][30];

fp = fopen("test2.txt", "r"); /* ここにファイル名を入れる */

if(fp == NULL) {
perror("ファイルをオープンできません\n");
return -1;
}

i = 0;
while(fscanf(fp, "%s", &file[i][0]) != EOF) {
i++;
}
fclose(fp);

fp = fopen("test3.txt", "w"); /* ここに書き込むファイルの名前を入れる */
if(fp == NULL) {
perror("ファイルをオープンできません\n");
return -1;
}

j = 0;

while(j < 20) {
i = 0;

i = rand()%11;
strcpy(bun, &file[i][0]);
strcat(bun, "は");
i += (12 - i);
i += rand()%9;
strcat(bun, &file[i][0]);
i += (22 - i);
i += rand()%10;
strcat(bun, &file[i][0]);
strcat(bun, "\n");
fprintf(fp, bun);
j++;
}
fclose(fp);

return 0;
}

19名無しさん:2009/07/14(火) 14:58:08
#include <stdio.h>
#include <string.h>
int main() {
#define NAME_LEN 80
&nbsp;&nbsp;struct {
&nbsp;&nbsp;&nbsp;&nbsp;char name[NAME_LEN];
&nbsp;&nbsp;&nbsp;&nbsp;int age;
&nbsp;&nbsp;} person[2];

&nbsp;&nbsp;printf("最初の人の名前:"); fgets(person[0].name, NAME_LEN, stdin);
&nbsp;&nbsp;person[0].name[strlen(person[0].name)-1] = '\0';
&nbsp;&nbsp;printf("その人の年齢:"); scanf("%d%*c", &person[0].age);
&nbsp;&nbsp;printf("2番の人の名前:"); fgets(person[1].name, NAME_LEN, stdin);
&nbsp;&nbsp;person[1].name[strlen(person[1].name)-1] = '\0';
&nbsp;&nbsp;printf("その人の年齢:"); scanf("%d%*c", &person[1].age);
&nbsp;&nbsp;if(person[0].age > person[1].age)
&nbsp;&nbsp;&nbsp;&nbsp;printf("%sさんは%sさんより%2d 歳年上です\n", person[0].name, person[1].name,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person[0].age - person[1].age );
&nbsp;&nbsp;else if(person[0].age < person[1].age)
&nbsp;&nbsp;&nbsp;&nbsp;printf("%sさんは%sさんより%2d 歳年上です\n", person[1].name, person[0].name,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person[1].age - person[0].age );
&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;printf("%sさんと%sさんは同じ年です\n", person[0].name, person[1].name);
&nbsp;&nbsp;return 0;
}

20名無しさん:2009/07/23(木) 03:00:44
#include <stdio.h>
int score[100][3];
int max(int a, int b){ return a>=b?a:b; }
int min(int a, int b){ return a<=b?a:b; }
int main() {
&nbsp;&nbsp;int i, num, total, grand_total, total_max, total_min;
&nbsp;&nbsp;int math_total, math_max, math_min, sci_total, sci_max, sci_min, eng_total, eng_max, eng_min;

&nbsp;&nbsp;printf("Number of students?: "); scanf("%d", &num);
&nbsp;&nbsp;for(i=0; i<num; i++) {
&nbsp;&nbsp;&nbsp;&nbsp;printf("Input 3 scores for No. %03d Math, Sci and Eng: ", i+1);
&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d%d%d%*c", &score[i][0], &score[i][1], &score[i][2]);
&nbsp;&nbsp;}
&nbsp;&nbsp;printf("\nNo Math Sci Eng Total Mean\n");
&nbsp;&nbsp;printf("------------------------------------\n");
&nbsp;&nbsp;grand_total = math_total = sci_total = eng_total = 0;
&nbsp;&nbsp;total = score[0][0] + score[0][1] + score[0][2];
&nbsp;&nbsp;total_max = total_min = total;
&nbsp;&nbsp;math_max = math_min = score[0][0];
&nbsp;&nbsp;sci_max = sci_min = score[0][1];
&nbsp;&nbsp;eng_max = eng_min = score[0][2];

21名無しさん:2009/07/23(木) 03:01:17
&nbsp;&nbsp;for(i=0; i<num; i++) {
&nbsp;&nbsp;&nbsp;&nbsp;total = score[i][0] + score[i][1] + score[i][2];
&nbsp;&nbsp;&nbsp;&nbsp;grand_total += total;
&nbsp;&nbsp;&nbsp;&nbsp;total_max = max(total_max, total); total_min = min(total_min, total);
&nbsp;&nbsp;&nbsp;&nbsp;math_total += score[i][0];
&nbsp;&nbsp;&nbsp;&nbsp;math_max = max(math_max, score[i][0]); math_min = min(math_min, score[i][0]);
&nbsp;&nbsp;&nbsp;&nbsp;sci_total += score[i][1];
&nbsp;&nbsp;&nbsp;&nbsp;sci_max = max(sci_max, score[i][1]); sci_min = min(sci_min, score[i][1]);
&nbsp;&nbsp;&nbsp;&nbsp;eng_total += score[i][2];
&nbsp;&nbsp;&nbsp;&nbsp;eng_max = max(eng_max, score[i][2]); eng_min = min(eng_min, score[i][2]);
&nbsp;&nbsp;&nbsp;&nbsp;printf("%03d %3d %3d %3d %3d %5.1f\n",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i+1, score[i][0], score[i][1], score[i][2], total, total/3.0f);
&nbsp;&nbsp;}
&nbsp;&nbsp;printf("------------------------------------\n");
&nbsp;&nbsp;printf("Mean %5.1f%5.1f%5.1f% 5.1f\n", math_total/(float)num, sci_total/(float)num,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eng_total/(float)num, grand_total/(float)num);
&nbsp;&nbsp;printf("Max %3d %3d %3d %3d\n", math_max, sci_max, eng_max, total_max);
&nbsp;&nbsp;printf("Min %3d %3d %3d %3d\n", math_min, sci_min, eng_min, total_min);
}

22名無しさん:2009/08/02(日) 10:10:49
#include <stdio.h>

double BMI(double height, double weight) { return weight / (height * height); }

int check(double bmi) { return (bmi < 18.5)? 0: (bmi > 25)? 2: 1; }

int main(void)
{
&nbsp;&nbsp;double height, weight;

&nbsp;&nbsp;printf("input height[m] >> ");
&nbsp;&nbsp;scanf("%lf", &height);
&nbsp;&nbsp;printf("input weight[kg] >> ");
&nbsp;&nbsp;scanf("%lf", &weight);

&nbsp;&nbsp;switch (check(BMI(height, weight))) {
&nbsp;&nbsp;&nbsp;&nbsp;case 0: puts("細いです。"); break;
&nbsp;&nbsp;&nbsp;&nbsp;case 1: puts("普通です。"); break;
&nbsp;&nbsp;&nbsp;&nbsp;case 2: puts("メタボ予備軍です。"); break;
&nbsp;&nbsp;}

&nbsp;&nbsp;return 0;
}


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板