編程編高數題
『壹』 我想問一下,大學計算機編程需不需要用到高數的知識
大學計算機編程基本用不到高數內容。
以程序設計為主線、以案例為驅動。自始至終圍繞「程序設計」來講解,而不是「語言」的簡單介紹,摒棄了目前各種程序設計書中流行的「解釋程序設計語言」的做法。目的是教會讀者怎樣編程序,提高讀者的程序設計能力,徹底改變 「學了程序設計而不會編程序」的現狀。
『貳』 c語言編程題 編寫函數add(int a[4][4],int b[]),將一個4*4的矩陣中每列的最大值放到數組b中並轉置。
#include "stdio.h"
void add(int a[][4],int b[]){
int i,j,t;
for(i=0;i<4;i++)
for(b[i]=a[0][i],j=1;j<4;j++)
if(a[j][i]>b[i])
b[i]=a[j][i];
for(i=0;i<4;i++)
for(j=0;j<i;j++)
t=a[i][j],a[i][j]=a[j][i],a[j][i]=t;
}
void print(int x[][4]){
int i,j;
for(i=0;i<4;i++){
for(j=0;j<4;printf("%6d",x[i][j++]));
printf(" ");
}
}
int main(int argc,char *argv[]){
int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},b[4];
printf("Transpose before: ");
print(a);
add(a,b);
printf(" MAX0: %d MAX1: %d MAX2: %d MAX3: %d ",b[0],b[1],b[2],b[3]);
printf(" Transpose later: ");
print(a);
return 0;
}
代碼格式和運行結果圖片:
『叄』 c語言編程題 編寫求一組數據中最大值的函數,函數原型為:int find_max (int*p,int n)。
#include <stdio.h>
#define N 10
int find_max(int *p, int n);
int main(void)
{
int a[N] = {1, 87, 0, 2, 6, 90, -30, 34, 109, 1000};
printf("最大值為%d ", find_max(a, N));
return 0;
}
int find_max(int *p, int n)
{
int max = p[0], i = 1;
for(i = 1; i < n; i++)
{
if(max < p[i])
max = p[i];
else
continue;
}
return max;
}
『肆』 編程題:編寫一個程序,求出200到300之間的數,且滿足條件:它們三個數字之積為42,三個數字之和為12.
用C語言實現了下,gcc4.4.1測試結果為273,237
#include <stdio.h>
void main(){
int x,y,z,i,sum,proct;
for (i=200;i<300;i++)
{
x=2;
y=(i-200)/10;
z=i%10;
sum=x+y+z;
proct=x*y*z;
if (sum==12&&proct==42)
printf("%d\n",i);
}
}
『伍』 c語言編程題
第一題:編程輸出右邊圖形,其行數n (<= 26)由輸入而定。 A
A B A
A B C B A
A B C D C B A
#include <stdio.h>
main ()
{
int i,j,k;
int a,n;
printf("please input your low:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
printf(" ");
a=65;
for(k=1;k<=i;k++)
printf("%c",a++);
for(k=1;k<i;k++)
printf("%c",--a-1);
printf("\n");
}
}
第二題:已知某班N(〈=50)名學生進行了高數、英語和C語言等3門課考試,將3門課的成績以及計算3門課的總分存放於一個二維數組中,將學生姓名存放在另一個二維字元數組中,按總分(由高到低)將學生姓名排序並輸出排序結果(序號和姓名)。
#include<stdio.h>
#include<string.h>
#define N 50
typedef struct
{
float mark[4];
long number;
char name[25];
}JD;
JD stu[N];
void sort(JD stu[],int n)
{
int i,j;
JD temp;
for(i=1;i<=n;i++)
for(j=1;j<=n-i;j++)
if(stu[j].mark[4]<stu[j+1].mark[4])
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
main()
{
int i,n;
printf("請輸入學生數:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("請輸入第%d個學生的信息(包括學號、姓名、高數成績、英語成績、c語言成績):\n",i);
scanf("%ld%s",&stu[i].number,stu[i].name);
scanf("%f%f%f",&stu[i].mark[1],&stu[i].mark[2],&stu[i].mark[3]);
}
for(i=1;i<=n;i++)
{
stu[i].mark[4]=0;
stu[i].mark[4]=stu[i].mark[1]+stu[i].mark[2]+stu[i].mark[3];
}
sort(stu,n);
printf("排序的結果是:\n");
for(i=1;i<=n;i++)
{
printf("第%d名同學是:",i);
printf("%ld\t%s\n",stu[i].number,stu[i].name);
}
}
/*1. 用下面的公式計算e的x次方。在程序中要求用函數f1計算每項分子的值,
用函數f2計算每項分母的值(用遞歸函數來實現)。通過主函數調用f1和f2完成計算。
=1+ x + + + …(前10項的和)*/
/*#include<stdio.h>
double f1(int n,int m)
{
int i;
double s=1;
for(i=1;i<=m;i++)
s*=n;
return(s);
}
double f2(int n)
{
int i;
double fa=1;
for(i=1;i<=n;i++)
fa*=i;
return(fa);
}
void main()
{
int i,n;
double e=0.0;
printf("please input your x:\n");
scanf("%d",&n);
for(i=0;i<10;i++)
e+=f1(n,i)/f2(i);
printf("e的x次方大約為:\n");
printf("%lf",e);
}
2:編寫函數fun(char s[ ], int num[ ]),其功能是統計字元串 s 中數字字元、大寫字母、小寫字母和空格字元的出現次數,統計結果存於num數組中。再設計main函數,調用fun函數,實現預期功能。
#include<stdio.h>
#define N 10
void fun(char s[], int num[])
{
int i;
for(i=0;s[i]!='\0';i++)
if(s[i]>='0'&&s[i]<='9')
num[0]++;
else if(s[i]>='a'&&s[i]<='z')
num[1]++;
else if(s[i]>='A'&&s[i]<='Z')
num[2]++;
else if(s[i]==' ')
num[3]++;
}
main()
{
int num[4],i,j;
char s[N];
for(i=0;i<4;i++)
num[i]=0;
printf("please input the string:\n");
for(i=0;i<N;i++)
scanf("%c",&s[i]);
printf("the string is:\n");
for(i=0;i<N;i++)
printf("%c",s[i]);
fun(s,num);
printf("\n此字元串中數字字元出現的次數:\n");
printf("\t%d",num[0]);
printf("\n此字元串中小寫字母出現的次數:\n");
printf("\t%d",num[1]);
printf("\n此字元串中大寫字母出現的次數:\n");
printf("\t%d",num[2]);
printf("\n此字元串中空格字元出現的次數:\n");
printf("\t%d",num[3]);
}
『陸』 編程題:編寫函數fun,使其完成如下數學表達式的計算。sample11.c
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
doublefun(doublex)
{
if(x<10)
{
doublet=1-exp(-1*x);
if(t){
return1/t;
}
return0x8FFFFFFF;//無窮大
}
else
return(x+3)*sin(2*x);
}
intmain()
{
printf("%8.3lf ",fun(5.16));
printf("%8.3lf ",fun(16.32));
system("pause");
return0;
}
『柒』 計算機編程題:編出一個等差數列,首項為一,公差為2,最後一項不小於100,。求答案
你這個題目有點問題,最後一項應該是小於100吧。如果不小於100的話,這就是死循環了!!
其實不難,就是結束循環條件問題,你改一下for語言裡面的第二個表達式就好了
西面是代碼
#include<stdio.h>
int main()
{
int i,sum=0;
for(i=1;i>100;i+=2)
sum=sum+i;
printf("總和為:%d",sum);
return 0;
}
『捌』 求一編程題!求一編程題,求公式s=1*2*3*4*5*............*n(n<50)的值,n的值由用戶自己輸入!
#include <stdio.h>
//求n!
double fun(int n){
if(n>1)
return n*fun(n-1);
else if(n==1)
return 1;
else
return 0;
}
void main(){
int n=0;
printf("求公式s=1*2*3*4*5*...*n(n<50)的值:\nn=");
scanf("%d",&n);
printf("s=%.0f \n",fun(n));
}
『玖』 用歐拉方法和後退的歐拉方法求解高數題,急急急!
歐拉方法公式為
y(j+1)=y(j)+h*(x(j)-Y(j)+1),j=0,1,2,...,
x(j)=0+0.1j=0.1j,j=0,1,2,...
利用初值y(0)=1,h=0.1和上面遞推公式計算如下:
y(1)=y(0)+h*(x(0)-Y(0)+1)=1+0.1*(0-1+1)=1,
y(2)=y(1)+h*(x(1)-Y(1)+1)=1+0.1*(0.1-1+1)=1.01,
y(3)=y(2)+h*(x(2)-Y(2)+1)=1.01+0.1*(0.2-1.01+1)=?,....
後退的歐拉方法
y(j+1)=y(j)+h*(x(j+1)-Y(j+1)+1),解出Y(j+1)得
(1-h)y(j+1)=y(j)+h*x(j+1)+h,
y(j+1)=((y(j)+h*x(j+1)+h))/(1-h),j=0,1,2,...,
利用初值y(0)=1,h=0.1和上面遞推公式就可計算了.