ページ 11

C言語のプログラムに独自性を出したいです。

Posted: 2010年10月30日(土) 18:38
by Yuu
友人のプログラムを自分なりにいじってみたのですが、どうしても似たままです。
下にプログラムを載せるので何かアイデアがあれば教えてください。


#include <stdio.h>
#include <stdlib.h>

typedef struct friend sFriend;

struct friend{
int ID;

int Age;

int Name[20];

char *Address;

sFriend *next;
};
sFriend header;



void insert(void)

{

sFriend *p, *newcell;


p=&header;

while( p->next != NULL){

p=p->next;

}

newcell = (sFriend*)malloc( sizeof(sFriend) );


printf("ID:"); scanf("%d",&newcell->ID);

printf("年齢:"); scanf("%d",&newcell->Age);

printf("名前:"); scanf("%d",&newcell->Name);

printf("住所:"); scanf("%s",&newcell->Address);


newcell->next = NULL;

p->next = newcell;

}



void show_Address(void)

{

int i=0;

sFriend *p, *q[10];


p=&header;

while(p->next != NULL){

p=p->next;

printf("%d人目:%p\n",i+1,p);

q=p;
if(i>=1){

printf("アドレスの差:%d\n",(long)q-(long)q[i-1]);

}

i++;

}

}



int main(void)
{

int a=0, x, y,c;


header.next=NULL;

while(a!=2){

printf("情報の入力:1、情報の表示:2 "); scanf("%d",&a);

if(a==1){

insert();

}

if(a==2){

printf("構造体の大きさ:%u\n",sizeof(sFriend));

printf("構造体の各項目のデータサイズ\n");

printf("ID:%u\n",sizeof(header.ID));

printf("年齢:%u\n",sizeof(header.Age));

printf("名前:%u\n",sizeof(header.Name));

printf("住所:%u\n",sizeof(header.Address));

printf("次の友達へのポインタ:%u\n\n",sizeof(header.next));

printf("<各インスタンスの格納されたアドレス>\n");

show_Address();

}

}

return 0;

}

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月30日(土) 18:42
by Tororo
独立性を出したいなら、クラスを使用してみたらいかがですか?

また、クラスが良く分からないなら、こちらをどうぞ↓

ttp://www.geocities.jp/ky_webid/cpp/language/index.html

最初の h を抜いてあります。

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月30日(土) 19:37
by たかぎ
無理をして独自性を出す必要はないのでは?
プログラムそのものは普通に書くのが一番です。

ところで、C言語ではクラスを使うことはできませんね。

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月30日(土) 20:10
by Tororo
>>たかぎさん

ありゃりゃ、見てませんでした。

失礼しました。

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月30日(土) 20:12
by dic
入力関係をGUI化するとか

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月30日(土) 22:57
by Yuu
期限が迫っているので、お願いします。
友人と同じだとアウトになってしまうので、教えてください。

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月30日(土) 23:05
by bbcs
友人のをいじるのではなく、自分で取り組みましょう
自分で作れば独自性は自然に出るものです

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月30日(土) 23:20
by wing
友人に見せてもらったのを先生にバレないようにする知恵を
貸してください、ということですね。

答えを友人に教えてもらって、それをバレない方法をここで
教わったら、あなたはなんにもしてないことになりますよ。
せめて小細工くらいは自分で考えないと。

まあ、私だったら
int a=0, x, y,c;の変数名を気の聞いた名前に変えますけど。

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月30日(土) 23:25
by wing
よく見たら
x,y,cを使っている場所が分からないんですが。
必要なものなんでしょうか?

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月31日(日) 00:00
by Yuu
確かにご指摘の通り自分でやるべきなのは分かっているのですが、期限が月曜日までなので焦っています。
ですので、よろしければ何か教えてください。

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月31日(日) 01:51
by たかぎ
そういう意味で独自性のあるコードを書くことは容易いですが、おそらく自分でやったのではないことは一目瞭然になります。

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月31日(日) 02:31
by kazuoni
大域変数をやめてメインでfrinedリストを生成して、他の関数には引数として渡すとかですかね。

#ちなみにですが、変数名を変えるなどは一瞬でばれます。
まだ期限までに今から約24時間はあります。
急がば回れです。一から理解してみましょう。

Re:C言語のプログラムに独自性を出したいです。

Posted: 2010年10月31日(日) 02:44
by たかぎ
とりあえず、明らかにおかしなところだけでも修正してはどうでしょう?
mallocで割り付けているのにfreeで解放していないとか、printfやscanfの書式が間違っているとか、改善点はいくらでもあります。