(4)C言語の基礎知識を固めて、誰が手を出して、誰が収穫します.
問題13:プログラミングは以下の問題を解決する:鶏翁一、価値5;鶏母一、値打ち三;雛三、値打ち一.百元で百鶏を買って、鶏翁、鶏母、鶏雛の各幾何学を聞きますか?(20点)
問題14:プログラミング実装:2次元配列a[3][3]={1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}があり,配列aの各行の要素をその行の絶対値が最大の要素で除算し,行ごとに新しい配列を出力する.(20点)
問題15:プログラミング:x,yを区間[1,10]の整数とし,f(x,y)=(3 x-2 y)/(x+y)とし,f(x,y)を最小値とするx 1,y 1を求め,カスタム関数を用いてf(x,y)機能を実現することが要求される.(20点)
問題16:ポインタによる実装を要求する文字列内のすべての数値文字に「*」文字を付ける機能を持つ関数funを記述します.(20点)
問題17:プログラミング:既知の学生記録は学号と学習成績から構成され、N名の学生の記録は構造体配列に格納され、成績が最も低い学生を探し出し、この学生の情報を出力し、既知の学生情報は以下の通りである.(20点)
A01,81;A02,89;A03,66;A04,87;A05,77
A06,90;A07,79;A08,61;A09,80;A10,71
問題13実装コード:
問題14:プログラミング実装:2次元配列a[3][3]={1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}があり,配列aの各行の要素をその行の絶対値が最大の要素で除算し,行ごとに新しい配列を出力する.(20点)
問題15:プログラミング:x,yを区間[1,10]の整数とし,f(x,y)=(3 x-2 y)/(x+y)とし,f(x,y)を最小値とするx 1,y 1を求め,カスタム関数を用いてf(x,y)機能を実現することが要求される.(20点)
問題16:ポインタによる実装を要求する文字列内のすべての数値文字に「*」文字を付ける機能を持つ関数funを記述します.(20点)
問題17:プログラミング:既知の学生記録は学号と学習成績から構成され、N名の学生の記録は構造体配列に格納され、成績が最も低い学生を探し出し、この学生の情報を出力し、既知の学生情報は以下の通りである.(20点)
A01,81;A02,89;A03,66;A04,87;A05,77
A06,90;A07,79;A08,61;A09,80;A10,71
問題13実装コード:
/* author: */
/* date:2011/11/02 */
#include "Stdio.h"
#include "Conio.h"
#define TOTAL 100
#define GONG 5
#define MU 3
#define XIAO 1/3
int main(void)
{
/* */
int m_i,m_j,m_k;
puts("GONG MU XIAO");
for(m_i=1;m_i<TOTAL;m_i++)
{
for(m_j=1;m_j<TOTAL;m_j++)
{
for(m_k=1;m_k<TOTAL;m_k++)
{
if(((m_i+m_j+m_k)==100)&&((m_i*GONG+m_j*MU+m_k*XIAO)==100))
printf("%d %d %d
",m_i,m_j,m_k);
}
}
}
getch();
return 0;
}
問題14実装コード:/* author: */
/* date:2011/11/02 */
#include "Stdio.h"
#include "Conio.h"
#include "math.h"
int main(void)
{
/* */
float arr_num[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
int m_i,m_j,abs_max;
for(m_i=0;m_i<3;m_i++)
{
abs_max = 0;
for(m_j=0;m_j<3;m_j++)
{
if(fabs(arr_num[m_i][m_j])>fabs(arr_num[m_i][abs_max]))
abs_max = m_j;
}
for(m_j=0;m_j<3;m_j++)
{
arr_num[m_i][m_j]/=arr_num[m_i][abs_max];
printf("%f ",arr_num[m_i][m_j]);
}
printf("
");
}
getch();
return 0;
}
問題15実装コード:/* author: */
/* date:2011/11/02 */
#include "Stdio.h"
#include "Conio.h"
double f(int x,int y);
int main(void)
{
double m_min;
int m_i,m_j,m_x,m_y;
m_min = f(1,1);
for(m_i=0;m_i<10;m_i++)
{
for(m_j=0;m_j<10;m_j++)
{
if(m_min>f(m_i+1,m_j+1))
{
m_min = f(m_i+1,m_j+1);
m_x = m_i+1;
m_y = m_j+1;
}
}
}
printf("x=%d y=%d
",m_x,m_y);
getch();
return 0;
}
double f(int x , int y)
{
return ((double)(3*x-2*y)/(double)(x+y));
}
問題16実装コード:/* anthor: */
/* date:2011/11/01 */
#include "Stdio.h"
#include "Conio.h"
#define N 20
int main(void)
{
/* */
char str[N],*s_p,*temp_p,*s_new;
puts("please input a string:");
gets(str);
s_p = str;
while(*s_p!='\0')
{
if((*s_p>='0')&&(*s_p<='9'))
{
s_new = (char*)malloc(strlen(s_p)+1);
strcpy(s_new,s_p);
*s_p='\0';
strcat(str,"*");
s_p++;
strcat(str,s_new);
free(s_new);
s_new = NULL;
}
s_p++;
}
puts(str);
getch();
return 0;
}
問題17実装コード:/* author: */
/* date:2011/11/02 */
#include "Stdio.h"
#include "Conio.h"
#define N 10
typedef struct student
{
char num[20];
int score;
}stu;
int main(void)
{
/* */
stu arr_stu[N]={{"A01",81},{"A02",89},{"A03",66},\
{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},\
{"A09",80},{"A10",71}};
int m_i,m_pos=0;
for(m_i=0;m_i<N;m_i++)
{
if(arr_stu[m_i].score<arr_stu[m_pos].score)
{
m_pos = m_i;
}
}
puts("number score");
printf("%s %d
",arr_stu[m_pos].num,arr_stu[m_pos].score);
getch();
return 0;
}