-
一道程序編譯順序的考題,涉及到函數調用的先后順序及運算符號的優先級等問題。下面我展開給你講。
C的程序編譯總是從main函數開始的,這道題的重點在“fun((int)fun(a+c,b),a-c)) ”語句。
系統首先要確定最外層 fun()函數的實參,第一個參數的確定需要遞歸調用fun()函數(不妨稱其為內層函數)。內層函數的兩個參數分別為x=a+b=2+8=10、y=b=5,執行函數體x+y=10+5=15,于是得外層函數的參數x=15。其另一個參數y=a-c=2-b=-6,再次執行函數體,得最終返回值x+y=15+(-6)=9。
標簽:
程序編譯
上傳時間:
2014-12-03
上傳用戶:徐孺
-
找一個最小的自然數,使它等于不同的兩組三個自然數的三次冪之和,即找最小的x,使得:x=a*a*a+b*b*b+c*c*c = d*d*d+e*e*e+f*f*f 其中,a,b,c,d,e,f都是自然數,a<=b<=c, d<=e<=f [a,b,c]!=[d,e,f]
進一步,是否還存在另外一個自然數滿足上述條件,可能的話請輸出其結果
標簽:
上傳時間:
2017-05-16
上傳用戶:vodssv
-
建立兩個任務AB,A可以掛起B,同時也可以恢復B
標簽:
上傳時間:
2017-06-02
上傳用戶:han_zh
-
P3.20. Consider an analog signal xa (t) = sin (2πt), 0 ≤t≤ 1. It is sampled at Ts = 0.01, 0.05,
and 0.1 sec intervals to obtain x(n).
b) Reconstruct the analog signal ya (t) from the samples x(n) using the sinc interpolation
(use ∆ t = 0.001) and determine the frequency in ya (t) from your plot. (Ignore the end
effects.)
C) Reconstruct the analog signal ya (t) from the samples x (n) using the cubic spline
interpolation and determine the frequency in ya (t) from your plot. (Ignore the end effects.)
標簽:
Consider
sampled
analog
signal
上傳時間:
2017-07-12
上傳用戶:咔樂塢
-
【問題描述】
在一個N*N的點陣中,如N=4,你現在站在(1,1),出口在(4,4)。你可以通過上、下、左、右四種移動方法,在迷宮內行走,但是同一個位置不可以訪問兩次,亦不可以越界。表格最上面的一行加黑數字A[1..4]分別表示迷宮第I列中需要訪問并僅可以訪問的格子數。右邊一行加下劃線數字B[1..4]則表示迷宮第I行需要訪問并僅可以訪問的格子數。如圖中帶括號紅色數字就是一條符合條件的路線。
給定N,A[1..N] B[1..N]。輸出一條符合條件的路線,若無解,輸出NO ANSWER。(使用U,D,L,R分別表示上、下、左、右。)
2 2 1 2
(4,4) 1
(2,3) (3,3) (4,3) 3
(1,2) (2,2) 2
(1,1) 1
【輸入格式】
第一行是數m (n < 6 )。第二行有n個數,表示a[1]..a[n]。第三行有n個數,表示b[1]..b[n]。
【輸出格式】
僅有一行。若有解則輸出一條可行路線,否則輸出“NO ANSWER”。
標簽:
點陣
上傳時間:
2014-06-21
上傳用戶:llandlu
-
實驗源代碼
//Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("請輸入矩陣第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可傳遞閉包關系矩陣是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元關系的可傳遞閉包\n"); void warshall(int,int); int k , n; printf("請輸入矩陣的行數 i: "); scanf("%d",&k);
四川大學實驗報告 printf("請輸入矩陣的列數 j: "); scanf("%d",&n); warshall(k,n); }
標簽:
warshall
離散
實驗
上傳時間:
2016-06-27
上傳用戶:梁雪文以
-
#include <iostream.h>
#include <string.h>
#include <iomanip.h>
#include "Stud.h"
Stud::Stud(){}
char *Stud::getno() //獲取學號
{
return no;
}
char *Stud::getname() //獲取姓名
{
return name;
}
char *Stud::getsex() //獲取性別
{
return sex;
}
char *Stud::getminzu() //獲取民族
{
return minzu;
}
char *Stud::getaddress() //獲取出生地
{
return address;
}
char *Stud::getbirth() //獲取出生年月
{
return birth;
}
int Stud::gettag() //獲取姓名
{
return tag;
}
void Stud::changeno(char n[]) //設置學號
{
strcpy(no,n);
}
void Stud::changename(char na[]) //設置姓名
{
strcpy(name,na);
}
void Stud::changesex(char s[]) //設置性別
{
strcpy(sex,s);
}
void Stud::changeminzu(char m[]) //設置民族
{
strcpy(minzu,m);
}
void Stud::changeaddress(char a[]) //設置出生地
{
strcpy(address,a);
}
void Stud::changebirth(char b[]) //設置出生年月
{
strcpy(birth,b);
}
void Stud::addstudent(char *rn,char *rna) //增加學生
{
strcpy(no,rn);
strcpy(name,rna);
}
void Stud::addstudent(char *rn,char *rna,char *rs,char *rm,char *ra,char *rb) //增加學生
{
tag=0;
strcpy(no,rn);
strcpy(name,rna);
strcpy(sex,rs);
strcpy(minzu,rm);
strcpy(address,ra);
strcpy(birth,rb);
}
void Stud::delstud() //設置刪除標記
{
tag=1;
}
void Stud::disp() //輸出學生信息
{
cout<<setw(15)<<no<<setw(10)<<name<<setw(10)<<sex<<setw(10)<<minzu<<setw(10)<<address<<setw(10)<<birth<<endl;
}
void Stud::display() //輸出學生信息
{
cout<<setw(15)<<no<<setw(10)<<name;
}
標簽:
學生
上傳時間:
2016-12-29
上傳用戶:767483511
-
1. 編寫M程序,利用圖像點運算的線性函數:G = aF + b, 給出a、b的不同值,改變圖像的對比度、亮度以及圖像反相的效果。
2. 利用“二值圖像與原圖像做點乘,得到子圖像”的原理.,編寫M程序,構造特殊的二值圖像,最終得到需要的子圖像。
3. 編寫M程序,實現兩個大小不同圖像的疊加。
4,(提高題)編寫M程序,實現圖像的動態平移。
標簽:
數字圖像
處理技術
圖像
運算
上傳時間:
2017-05-10
上傳用戶:mouroutao
-
#include "iostream" using namespace std;
class Matrix
{
private:
double** A; //矩陣A
double *b; //向量b
public:
int size;
Matrix(int );
~Matrix();
friend double* Dooli(Matrix& );
void Input();
void Disp();
};
Matrix::Matrix(int x) {
size=x;
//為向量b分配空間并初始化為0
b=new double [x];
for(int j=0;j<x;j++)
b[j]=0;
//為向量A分配空間并初始化為0
A=new double* [x];
for(int i=0;i<x;i++)
A[i]=new double [x];
for(int m=0;m<x;m++)
for(int n=0;n<x;n++)
A[m][n]=0;
}
Matrix::~Matrix() {
cout<<"正在析構中~~~~"<<endl;
delete b;
for(int i=0;i<size;i++)
delete A[i];
delete A;
}
void Matrix::Disp()
{
for(int i=0;i<size;i++)
{
for(int j=0;j<size;j++)
cout<<A[i][j]<<" ";
cout<<endl;
}
}
void Matrix::Input()
{
cout<<"請輸入A:"<<endl;
for(int i=0;i<size;i++)
for(int j=0;j<size;j++){
cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl;
cin>>A[i][j];
}
cout<<"請輸入b:"<<endl;
for(int j=0;j<size;j++){
cout<<"第"<<j+1<<"個:"<<endl;
cin>>b[j];
}
}
double* Dooli(Matrix& A) {
double *Xn=new double [A.size];
Matrix L(A.size),U(A.size);
//分別求得U,L的第一行與第一列
for(int i=0;i<A.size;i++)
U.A[0][i]=A.A[0][i];
for(int j=1;j<A.size;j++)
L.A[j][0]=A.A[j][0]/U.A[0][0];
//分別求得U,L的第r行,第r列
double temp1=0,temp2=0;
for(int r=1;r<A.size;r++){
//U
for(int i=r;i<A.size;i++){
for(int k=0;k<r-1;k++)
temp1=temp1+L.A[r][k]*U.A[k][i];
U.A[r][i]=A.A[r][i]-temp1;
}
//L
for(int i=r+1;i<A.size;i++){
for(int k=0;k<r-1;k++)
temp2=temp2+L.A[i][k]*U.A[k][r];
L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r];
}
}
cout<<"計算U得:"<<endl;
U.Disp();
cout<<"計算L的:"<<endl;
L.Disp();
double *Y=new double [A.size];
Y[0]=A.b[0];
for(int i=1;i<A.size;i++ ){
double temp3=0;
for(int k=0;k<i-1;k++)
temp3=temp3+L.A[i][k]*Y[k];
Y[i]=A.b[i]-temp3;
}
Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1];
for(int i=A.size-1;i>=0;i--){
double temp4=0;
for(int k=i+1;k<A.size;k++)
temp4=temp4+U.A[i][k]*Xn[k];
Xn[i]=(Y[i]-temp4)/U.A[i][i];
}
return Xn;
}
int main()
{
Matrix B(4);
B.Input();
double *X;
X=Dooli(B);
cout<<"~~~~解得:"<<endl;
for(int i=0;i<B.size;i++)
cout<<"X["<<i<<"]:"<<X[i]<<" ";
cout<<endl<<"呵呵呵呵呵";
return 0;
}
標簽:
道理特分解法
上傳時間:
2018-05-20
上傳用戶:Aa123456789
-
#include<stdio.h>
#include<windows.h>
int xuanxiang;
int studentcount;
int banjihao[100];
int xueqihao[100][10];
char xm[100][100];
int xuehao[100][10];
int score[100][3];
int yuwen;
int shuxue[000];
int yingyu[100];
int c[100];
int p;
char x[1000][100]="",y[100][100]="";/*x學院 y專業 z班級*/
int z[100];
main()
{
void input();
void inputsc();
void alter();
void scbybannji();
printf("--------學生成績管理-----\n");
printf("請按相應數字鍵來實現相應功能\n");
printf("1.錄入學生信息 2.錄入學生成績 3.修改學生成績\n");
printf("4.查詢學生成績 5.不及格科目及名單 6.按班級輸出學生成績單\n");
printf("請輸入你要實現的功能所對應的數字:");
scanf("%d",&xuanxiang);
system("cls");
getchar();
switch (xuanxiang)
{
case 1:input();
case 2:inputsc();
case 3:alter();
/*case 4:select score();
case 5:bujigekemujimingdan();*/
case 6:scbybanji;
}
}
void input()
{
int i;
printf("請輸入你的學院名稱:");
gets(x);
printf("請輸入你的專業名稱:");
gets(y);
printf("請輸入你的班級號:");
scanf("%d",&z);
printf("請輸入你們一個班有幾個人:");
scanf("%d",&p);
system("cls");
for(i=0;i<p;i++)
{
printf("請輸入第%d個學生的學號:",i+1);
scanf("%d",xuehao[i]);
getchar();
printf("請輸入第%d個學生的姓名:",i+1);
gets(xm[i]);
system("cls");
}
printf("您已經錄入完畢您的班級所有學生的信息!\n");
printf("您的班級為%s%s%s\n",x,y,z);
/*alter(p);*/
}
void inputsc()
{
int i;
for(i=0;i<p;i++)
{
printf("\n");
printf("--------------------------------------------------------------------------------\n\n");
printf("\t\t\t\t錄入學生的成績\n\n\n");
printf("--------------------------------------------------------------------------------\n\n");
printf("\t\t\t\t%s\n",xm[i]);
printf("\n");
printf("\t\t\t\t數學:");
scanf("%d",&shuxue[i]);
printf("\n");
getchar();
printf("\t\t\t\t英語:");
scanf("%d",&yingyu[i]);
printf("\n");
getchar();
printf("\t\t\t\tc語言:");
scanf("%d",&c[i]);
system("cls");
}
}
void alter()
{
int i;/*循環變量*/
int m[10000];/*要查詢的學號*/
int b;/*修改后的成績*/
char kemu[20]="";
printf("請輸入你要修改的學生的學號");
scanf("%d",&m);
for (i=0;i<p;i++)
{
if (m==xuehao[i])
{
printf("%s的數學成績為%d,英語成績為%d,c語言成績為%d,xm[i],shuxue[i],yingyu[i],c[i]");
printf("請輸入你想修改的科目");}
}
gets(kemu);
getchar();
if (kemu=="數學");
{
scanf("%d",&b);
shuxue[i]=b;}
if (kemu=="英語");
{
scanf("%d",&b);
yingyu[i]=b;}
if (kemu=="c語言");
{
scanf("%d",&b);
c[i]=b;
}
printf("%s的數學成績為%d,英語成績為%d,c語言成績為%d,xm[i],shuxue[i],yingyu[i],c[i]");
}
void scbybannji()
{
int i;
char zyname[20];
int bjnumber;
printf("請輸入你的專業名稱");
scanf("%s",&zyname);
printf("請輸入你的班級號");
scanf("%d",&bjnumber);
for (i=0;i<p;i++)
{
if (zyname==y[i]);
if (bjnumber==z[i]);
printf("專業名稱%s班級號%d數學成績%d英語成績%dc語言成績%d,y[i],z[i],shuxue[i],yingyu[i],c[i]");
}
}
標簽:
c語言
上傳時間:
2018-06-08
上傳用戶:2369043090