問題1.
キーボードから正の整数を1つ入力し、それが偶数か奇数かを判断し、偶数なら
"今入力した整数~は偶数である"
と出力し、奇数の場合も同じように出力するプログラムを関数を用いて作成。
偶数・奇数の判断は関数で行い、入出力はmainで行う。
問題2.
下記のプログラムの*で囲った部分を関数とするプログラムに書き換え。
[プログラム説明]
1~100までの間のすべての素数を求めるプログラム
#define MAX_LENGTH 100 int main(){ int a[MAX_LENGTH+1], i, n, k; for(i=0; i<=MAX_LENGTH; i++) a[i] = i; n = sqrt(100.0); ************************************************* for(k=2; k<=n; k++){ if(a[k] == 0) continue; for(i=k*2; i<=MAX_LENGTH; i=i+k) a[i] = 0; } ************************************************* printf("1から100までの素数は以下の通り\n"); for(i=1; i<=MAX_LENGTH; i++) if(a[i] != 0) printf("%d ", a[i]); printf("\n"); }
問題1のプログラム
int g(int),k(int); int main(void){ int x; printf("正の整数を入力してください。:"); scanf("%d",&x); g(x);k(x); return 0; } int g(int s){ if(s%2==0){ printf("今入力した整数%dは偶数である。\n",s); } } int k(int t){ if(t%2!=0){ printf("今入力した整数%dは奇数である。\n",t); } }
問題2のプログラム
#define MAX_LENGTH 100 int a[MAX_LENGTH+1], i, n, k; int prime_num(int); int main(){ for(i=0; i<=MAX_LENGTH; i++) a[i] = i; n = sqrt(100.0); prime_num(n); printf("1から100までの素数は以下の通り\n"); for(i=1; i<=MAX_LENGTH; i++) if(a[i] != 0) printf("%d ", a[i]); printf("\n"); } int prime_num(int x) { for(k=2; k<=x; k++){ if(a[k] == 0) continue; for(i=k*2; i<=MAX_LENGTH; i=i+k) a[i] = 0; } }
0 件のコメント:
コメントを投稿