>>951 #include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void){
char moji[3][10]={"computer","internet","windows"};
int num;
srand((unsigned int)time(NULL));
num=rand()%3;
printf("%s\n",moji[num]);
return 0;
}
>>950 中括弧の省略はミスの元
for(i=0;i<num_city;i++) {
if(i!=num_city-1) {
printf(" ランダム法での距離lenは %f\n",len);
len += distance(i,i+1);
}
}
>>950 int len;
printf(" ランダム法での距離lenは %f\n",len);
int型を%fで表示しようとしてるのが根本原因のようだ。
>>952 短くしてみる
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main(void){
char moji[3][10]={"computer","internet","windows"};
srand((unsigned int)time(NULL));
printf("%s\n",moji[rand()%3;]);
}
956 :
955:2010/01/18(月) 18:08:30
すまんm
moji[rand()%3;]の;は無視してくれ
959 :
デフォルトの名無しさん:2010/01/18(月) 19:38:09
961 :
デフォルトの名無しさん:2010/01/18(月) 19:58:54
1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): 4行4列のint型の行列を、転置するプログラムを作成し、動作の確認のため、転置前と転置後
の行列の内容を表示するようにせよ。
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月19日 17時
[5] その他の制限: 特になし
962 :
デフォルトの名無しさん:2010/01/18(月) 20:06:49
963 :
デフォルトの名無しさん:2010/01/18(月) 20:09:21
>>924 a,bが重なり合った同サイズの領域のことが考慮されてない
int a[10];
swap((double*)&a[1],(double*)&a[3],sizeof(double));
967 :
デフォルトの名無しさん:2010/01/18(月) 22:25:19
[1] 授業単元:計算機基本
[2] 問題文(含コード&リンク):
1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求めるプログラムを作ってみましょう。
途中経過も表示してください。
例:1^2 + 2^2 =
1^2 + 2^2 + 3^2 =
....
プログラムは↓をできるだけ編集しないでWhile文を使ってお願いします。
#include <stdio.h>
int main(void) {
int i,n,nn;
n=1;
for (i=1;i<=30;i=i+1) {
nn=2*n;
printf("%9d の 2倍は %10d です。\n",n,nn);
n=nn;
}
return 0;
}
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: BCC Developer
[3.3] 言語: C++
[4] 期限: [2009年1月15日まで]
[5] その他の制限: While 文を使うこと:
While (条件式){
繰り返し実行すべきプログラム
}
っていうやつです。
前回書いた問題と少し違うのでよろしくお願いします。
968 :
951:2010/01/18(月) 22:34:51
>>952 ありがとうございます。
動作確認しました。
969 :
967:2010/01/18(月) 22:50:55
967には問題文を間違えました。すみませんm(_ _)m
[1] 授業単元:計算機基本
[2] 問題文(含コード&リンク):
1の2倍は2です
2の2倍は4です
4の2倍は16です...
を30回繰り返すプログラム
プログラムは↓をできるだけ編集しないでWhile文を使ってお願いします。
#include <stdio.h>
int main(void) {
int i,n,nn;
n=1;
for (i=1;i<=30;i=i+1) {
nn=2*n;
printf("%9d の 2倍は %10d です。\n",n,nn);
n=nn;
}
return 0;
}
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: BCC Developer
[3.3] 言語: C++
[4] 期限: [2009年1月19日8時まで]
[5] その他の制限: While 文を使うこと:
While (条件式){
繰り返し実行すべきプログラム
}
っていうやつです。
>>969 #include <stdio.h>
int main(void) {
int i,n,nn;
n=1;
i=1;
while (i<=30) {
nn=2*n;
printf("%9d の 2倍は %10d です。\n",n,nn);
n=nn;
i=i+1;
}
return 0;
}
971 :
デフォルトの名無しさん:2010/01/18(月) 23:12:35
[1] 授業単元:計算機基本
[2] 問題文(含コード&リンク):
1^2+2^2+3^2+...+8^2+9^2+10^2
プログラムは↓から始めて、While文を使ってお願いします。
#include <stdio.h>
int main(void) {
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: BCC Developer
[3.3] 言語: C++
[4] 期限: [2009年1月19日8時まで]
[5] その他の制限: While 文を使うこと:
While (条件式){
繰り返し実行すべきプログラム
}
っていうやつです。
972 :
971:2010/01/18(月) 23:17:34
すみません・・・
問題文をまた間違えてしまいました・・・
↓が正しいです。
1^2+2^2+3^2+...+8^2+9^2+10^2
を求めるプログラムを作ってみましょう
1^2=
1^2+2^2=
1^2+2^2+3^2=
などと途中経過の表示もしなさい
プログラムは↓から始めて、While文を使う。
#include <stdio.h>
int main(void) {
です。何度も間違えてすみません
>>972 #include <stdio.h>
#include <string.h>
int main(void) {
int i,sum;
char buff[128]={0},tmp[16];
i=1;
sum=0;
while(i<=10){
sum+=i*i;
if(i==1)sprintf(tmp,"%d^2",i);
else sprintf(tmp,"+%d^2",i);
strcat(buff,tmp);
printf("%s=%d\n",buff,sum);
i++;
}
return 0;
}
975 :
917:2010/01/18(月) 23:52:08
>>921 大変助かりました。
ありがとうございました。
あ、まちがい。
>>921 ave = (double)sum / 5;
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):異なる自然数p,qと、もう一つの自然数dを入力する。
d以下の自然数kのうちで、k=mp+nqと表すことの出来るもの(m,nは自然数)を小さい順に表示し、
最後にその個数を表示するプログラムを作成せよ。入力する数字はp、q、dの順とする
実行例
3 5 10
3 5 6 8 9 10
合計で6個あります。
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:VS 2008
[3.3] 言語:C
[4] 期限:2010年01月19日10:00まで
[5] その他の制限:特になし
978 :
977:2010/01/19(火) 02:09:25
よろしくお願いします。
kには0を含めないのに、mとnには0を含めるってのは矛盾じゃね?
どっちも自然数としか書いてないのに
>>977 その実行例も含めて、出題された問題文?
>>977 #include <stdio.h>
int f(int p, int q, int n)
{
while(n>=0) {
if(n % q == 0) return 1;
n -= p;
}
return 0;
}
int main(void)
{
int p, q, d, i, c = 0;
scanf("%d%d%d", &p, &q, &d);
for(i=1; i<=d; i++) if(f(p,q,i)) printf("%d ", i, c++);
printf("\n合計で%d個あります。", c);
return 0;
}
983 :
977:2010/01/19(火) 09:08:53
ありがとうございました。
構造体を使用して、アドレス帳を作るプログラムなんですが、検索する関数がうまく働きません。
言語はCです。いくら悩んでも分からないんで、どなたか指摘をお願いします。
#include <stdio.h> #include <stdlib.h> #include <string.h>
#define DATA_MAX 5 /* データの最大件数 */ #define NAME_LEN_MAX 16 /* 名前の長さ */
#define TEL_NUMBER_LEN_MAX 16 /* 電話番号の長さ */ #define YUUBINN_LEN_MAX 8 /* 郵便番号の長さ */
#define ADDRESS_DATA_MAX 64 /* 住所の長さ */
typedef struct Address_Note{
char name[NAME_LEN_MAX]; /* 名前 */
char tel_number[TEL_NUMBER_LEN_MAX]; /* 電話番号 */
char zip_code[YUUBINN_LEN_MAX]; /* 郵便番号 */
char address[ADDRESS_DATA_MAX]; /* 住所 */
}NOTE;
void input_data(NOTE *p); /* データの入力 */
void print_data(NOTE *p); /* データの出力 */
void data_serch(NOTE *p, NOTE data[]); /* データの検索 */
int g_address_data_count;
int main(void){
char judge;
NOTE data[DATA_MAX];
NOTE *p;
g_address_data_count = 0;
985 :
984(2):2010/01/19(火) 09:33:20
for(p=&data[0]; p!=&data[DATA_MAX]; p++){ input_data(p);
g_address_data_count++;
printf("続けて入力しますか?(Yes:Y、No:N)");
scanf("%s", &judge);
while(judge!='y' && judge!='Y' && judge!='n' && judge!='N'){
printf("YかNを入力してください:");
scanf("%s", &judge); }
if(judge=='n' || judge=='N') break;
else if(judge=='y' || judge=='Y') continue; }
if(g_address_data_count == DATA_MAX){ printf("これ以上登録できません。\n");
exit(EXIT_FAILURE); }
for(p=&data[0]; p!=&data[g_address_data_count]; p++){ print_data(p); printf("\n"); }
data_serch(p, &data[DATA_MAX]);
return EXIT_SUCCESS;}
void input_data(NOTE *p){
printf("名前を入力してください:");
scanf("%s", p->name);
printf("電話番号を入力してください:");
scanf("%s", p->tel_number);
printf("郵便番号を入力してください:");
scanf("%s", p->zip_code);
printf("住所を入力してください:");
scanf("%s", p->address);
printf("\n");
}
void print_data(NOTE *p){
printf("名前:%.8s\n電話番号:%.15s\n郵便番号:%.8s\n住所:%s\n", p->name, p->tel_number, p->zip_code, p->address);
}
void data_serch(NOTE *p, NOTE data[]){
int i;
char serch[NAME_LEN_MAX];
char *str;
printf("誰を検索しますか?:");
scanf("%s", serch);
for(p=&data[0]; p!=&data[g_address_data_count]; p++){
str = strstr(p->name, serch);
if(str != NULL)
print_data(p);
}
}
これで最後です。
かなり長く見づらくて申し訳ないですがよろしくお願いします。
>data_serch(p, &data[DATA_MAX]);
data_serch(p, data);
989 :
984:2010/01/19(火) 10:00:15
>>987 全然気付かなかったw
ありがとうございました。
990 :
984:2010/01/19(火) 10:52:59
何度もすみません。
.txtファイルを読み込みたいんですが、記述はおかしくないはずなのにポインタfpに
読み込めず、エラーーメッセージすら出ません。
原因はどんな事が考えられるでしょうか?
int main(void)
{ int i,val;
char judge;
NOTE data[DATA_MAX];
NOTE *p;
FILE *fp;
if((fp = fopen("address_note.txt", "r"))==NULL)
{
printf("ファイルが見つかりませんでした---address_note.txt\n");
exit(EXIT_FAILURE);;
}
i=0;
while(fscanf(fp,"%d",&val)!=EOF)
{
fscanf(fp,"名前:%.8s\n電話番号:%.15s\n郵便番号:%.8s\n住所:%s\n", p->name, p->tel_number, p->zip_code, p->address); /*データの読み込み*/
i++; /*次に移るために「i」を1つ増やす*/
}
>>991 よく分からないんですが、どんな記述をすればいいんでしょうか?
993 :
梅:2010/01/19(火) 11:02:56
while(fscanf(....
{
p=(NOTE*)data[...
>>992 よく分からないんじゃなくて、お前、何一つわかっちゃいないだろ?
fscanfの直前でp = data[i];してみれ。
996 :
955:2010/01/19(火) 11:05:54
何一つ分かってないのは俺の方でしたスミマセン。樹海行ってきます。
997 :
梅:2010/01/19(火) 11:08:36
ここは質問刷れじゃないんで自己責任で
>>997 すみません。
>>995 いえいえ。
>>993-995 おっしゃるとおりにやったんですが、コンパイルしてもfpに代入された値は使用されていないと出ます。
もうさっぱり分からないです…。
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。