『壹』 華南農業大學新生c語言競賽題--約瑟夫環問題
struct stCircleList
{
int no;
stCircleList * pNext;
};
#define MAXSUM 100
#define THE_MVALUE 46
void xProc()
{ //以下為程序判斷
// 表頭指針
stCircleList* pNodeFirst = NULL, *pNodeCur = NULL;
// 構建鏈表數據
for ( int i = 1 ; i <= MAXSUM; i ++ )
{
stCircleList * pNewNode = new stCircleList;
// 按照順序編號
pNewNode->no = i;
pNewNode->pNext = NULL;
if ( NULL == pNodeFirst)
pNodeFirst = pNewNode;
else
pNodeCur->pNext = pNewNode;
pNodeCur = pNewNode;
}
// 結成循環鏈表
pNodeCur ->pNext = pNodeFirst;
// 必須保證循環計數>0,防止死循環
// 索引從1 而不是從 0計的
VERIFY ( int ( THE_MVALUE) > 0 );
//pNodeCur = pNodeFirst;
while ( 1 )
{
for ( int i = 0 ; i < THE_MVALUE - 1; i ++ )
{
pNodeCur = pNodeCur->pNext;
}
stCircleList * pBeDelNode = pNodeCur->pNext;
pNodeCur->pNext = pBeDelNode->pNext;
delete pBeDelNode;
if ( pNodeCur == pNodeCur->pNext)
{
// 已經找到了最後一個節點,必須退出,否則異常
break;
}
}
// 當前 pNodeCur既為所求的節點
pNodeCur;
}
經過編譯後為正確結果
『貳』 華南農業大學新生c語言競賽題--破密
沒什麼時間 演算法寫的不好 起碼功能還是實現了
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int BreakKey(char *keyString, char *buf)
{
int PreMkey = *(keyString+0);
int CurMkey = *(keyString+1);
char temp[2] = {0};
char pString[100] = {0};
for(int i=32; i<127; i++)
{
if(CurMkey == (((PreMkey-32) + (i-32))%96 +32))
{
memcpy(temp, &i, 1);
strcat(buf, temp);
// printf("%s\n", buf);
}
}
memcpy(pString, keyString+1, strlen(keyString)-1);
if( strlen(pString) > 0 )
BreakKey(pString, buf);
return 0;
}
int main()
{
char stringkey[100] = {0};
char buf[100] = {0};
printf("input key\n");
scanf("%s", stringkey);
memcpy(buf, stringkey, 1);
BreakKey(stringkey, buf);
printf("%s\n", buf);
return 0;
}
『叄』 華南農業大學新生c語言競賽題--K尾相等數
解:對於一個數,它的冪是無窮多個的,但是末尾三位數只有1000種。這表明當第一次重復出現大於等於1000的末尾三位數時,這就是我們要求的M和N了.
源代碼:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define LEN 1000
void main(){
int k,i,tail[LEN],m,flag;
while(1){
scanf("%d",&k); //輸入K
if(k==1) exit(0); //如果K等於1則退出
flag=0; //初始化
i=m=1; //m為當前冪的次數,i等於k的m次冪
memset(tail,0,sizeof(int)*LEN);
/* 當K大於1000時我們只要對它的末尾三位數進行冪運算,
* 這樣不影響結果,但減少了冪運算後值的大小
*/
if(k>=LEN) {
k=k%LEN;
flag=1;
}
while(1){
i*=k;
if(i>=LEN || flag==1){
if(tail[i%LEN]==0) tail[i%LEN]=m; //這個末尾三位數是第一次出現
else {tail[i%LEN]+=m;break;} //末尾三位數出現了第二次,退出循環
flag=1;
}
if(i>=LEN) i=i%LEN;
m++;
}
printf("%d ",tail[i%LEN]);
}
}
『肆』 c語言程序設計蘇小紅版第七章課後實驗答案
不知道你說的是不是這一次實驗
2.2.7實驗7:二維數組和函數綜合編程練習
成績排名次
某班期末考試科目為數學(MT)、英語(EN)和物理(PH),有最多不超過30人參加考試。考試後要求:
(1)計算每個學生的總分和平均分;
(2)按總分成績由高到低排出成績的名次;
(3)列印出名次表,表格內包括學生編號、各科分數、總分和平均分;
(4)任意輸入一個學號,能夠查找出該學生在班級中的排名及其考試分數。
【思考題】請讀者思考如下問題。
①如果增加一個要求:要求按照學生的學號由小到大對學號、成績等信息進行排序,那麼程序如何修改呢?
②如果要求程序運行後先列印出一個菜單,提示用戶選擇:成績錄入、成績排序、成績查找,在選擇某項功能後執行相應的操作,那麼程序如何修改呢?
答案
#include <stdio.h>
#define STU 30
#define COURSE 3
void Input(long num[],int score[][COURSE],int n);
void GetSumAver(int score[][COURSE],int n,int sum[],float aver[]);
void Sort(long num[],int score[][COURSE],int n,int sum[],float aver[]);
void Print(long num[],int score[][COURSE],int n,int sum[],float aver[]);
int Search(long num[], int n, long x);
main()
{
int n, score[STU][COURSE], sum[STU], pos;
long num[STU], x;
float aver[STU];
printf("Please enter the total number of the students(n<=30):");
scanf("%d", &n); /*輸入參加考試的學生人數*/
printf("Enter No. and score as: MT EN PH ");
Input(num, score, n); /*輸入學生成績*/
GetSumAver(score, n, sum, aver); /*計算總分和平均分*/
printf("Before sort: ");
Print(num, score, n, sum, aver);
Sort(num, score, n, sum, aver); /*排名次*/
printf("After sort: ");
Print(num, score, n, sum, aver);
printf("Please enter searching number:");
scanf("%ld", &x); /*以長整型格式輸入待查找學生的學號*/
pos = Search(num, n, x); /*名次查詢*/
if (pos != -1)
{
printf("position: NO MT EN PH SUM AVER ");
printf("%8d %4ld %4d %4d %4d %5d %5.0f ",
pos+1,num[pos], score[pos][0],score[pos][1],
score[pos][2], sum[pos],aver[pos]);
}
else
{
printf("Not found! ");
}
}
/* 函數功能:輸入某班學生期末考試三門課程成績
函數參數:長整型數組num,存放學生學號
整型數組score,存放學生成績
整型變數n,存放學生人數
函數返回值:無
*/
void Input(long num[], int score[][COURSE], int n)
{
int i, j;
for (i=0; i<n; i++)
{
scanf("%ld", &num[i]);
for (j=0; j<COURSE; j++)
{
scanf("%d", &score[i][j]);
}
}
}
/* 函數功能:計算每個學生的總分和平均分
函數參數: 整型數組score,存放學生成績
整型變數n,存放學生人數
整型數組sum,計算得到的每個學生的總分
實型數組aver,計算得到的每個學生的平均分
函數返回值:無
*/
void GetSumAver(int score[][COURSE], int n, int sum[], float aver[])
{
int i, j;
for (i=0; i<n; i++)
{
sum[i] = 0;
for (j=0; j<COURSE; j++)
{
sum[i] = sum[i] + score[i][j];
}
aver[i] = (float)sum[i] / COURSE;
}
}
/* 函數功能:按總分成績由高到低排出成績的名次
函數參數:長整型數組num,存放學生學號
整型數組score,存放學生成績
整型變數n,存放學生人數
整型數組sum,存放每個學生的總分
實型數組aver,存放每個學生的平均分
函數返回值:無
*/
void Sort(long num[],int score[][COURSE], int n, int sum[], float aver[])
{
int i, j, k, m;
int temp1;
long temp2;
float temp3;
for (i=0; i<n-1; i++)
{
k = i;
for (j=i+1; j<n; j++)
{
if (sum[j] > sum[k]) k = j;
}
if (k != i)
{
temp1 = sum[k]; sum[k] = sum[i]; sum[i] = temp1;
temp2 = num[k]; num[k] = num[i]; num[i] = temp2;
temp3 = aver[k]; aver[k] = aver[i]; aver[i] = temp3;
for (m=0; m<COURSE; m++)
{
temp1 = score[k][m];
score[k][m] = score[i][m];
score[i][m] = temp1;
}
}
}
}
/* 函數功能: 列印名次表,表格內包括學生編號、各科分數、總分和平均分
函數參數: 長整型數組num,存放學生學號
整型數組score,存放學生成績
整型變數n,存放學生人數
整型數組sum,存放每個學生的總分
實型數組aver,存放每個學生的平均分
函數返回值:無
*/
void Print(long num[], int score[][COURSE], int n,
int sum[], float aver[])
{
int i, j;
printf(" NO | MT EN PH SUM AVER ");
printf("---------------------------------------------------- ");
for (i=0; i<n; i++)
{
printf("%ld | ", num[i]);
for (j=0; j<COURSE; j++)
{
printf("%4d ", score[i][j]);
}
printf("%5d %5.0f ", sum[i], aver[i]);
}
}
/* 函數功能:在學號數組中順序查找學生的學號
函數參數:長整型數組num,存放學生學號
整型變數n,存放學生人數
長整型變數x,存放待查找學生的學號
函數返回值:找到時,返回學生學號在學號數組中的下標位置,否則返回值-1
*/
int Search(long num[], int n, long x)
{
int i;
for (i=0; i<n; i++)
{
if (num[i] == x) return(i);
}
return (-1);
}
『伍』 急求===《C語言程序設計實驗·設計·習題》的答案
這是譚浩強版習題題答案,看與你的是否一致
1.5請參照本章例題,編寫一個C程序,輸出以下信息:
************
Very Goodj!
************
解:
main()
{
printf(" ************ \n");
printf("\n");
printf(" Very Good! \n");
printf("\n");
printf(" ************\n");
}
1.6編寫一個程序,輸入a b c三個值,輸出其中最大者。
解:main()
{int a,b,c,max;
printf("請輸入三個數a,b,c:\n");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max<B)
max=b;
if(max<C)
max=c;
printf("最大數為:%d",max);
}
第三章
3.3 請將下面各數用八進制數和十六進制數表示:
(1)10 (2)32 (3)75 (4)-617
(5)-111 (6)2483 (7)-28654 (8)21003
解:十 八 十六
(10)=(12)=(a)
(32)=(40)=20
(75)=(113)=4b
(-617)=(176627)=fd97
-111=177621=ff91
2483=4663=963
-28654=110022=9012
21003=51013=520b
3.5字元常量與字元串常量有什麼區別?
解:字元常量是一個字元,用單引號括起來。字元串常量是由0個或若干個字元
而成,用雙引號把它們括起來,存儲時自動在字元串最後加一個結束符號'\0'.
3.6寫出以下程序的運行結果:
#include
void main()
{
char c1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);
printf("\t\b%c %c\n",c4,c5);
解:程序的運行結果為:
aabb cc abc
A N
3.7將"China"譯成密碼.密碼規律:用原來的字母後面第4個字母代替原來的字母,
例如,字母"A"後面第4個字母是"E",用"E"代替"A".因此,"China"應譯為"Glmre".
請編一程序,用賦初值的議程使c1,c2,c3,c4,c5分別變成'G','1','m','r','e',並
輸出.
main()
{char c1="C",c2="h",c3="i",c4='n',c5='a';
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
printf("密碼是%c%c%c%c%c\n",c1,c2,c3,c4,c5);
}
3.8例3.6能否改成如下:
#include
void main()
{
int c1,c2;(原為 char c1,c2)
c1=97;
c2=98;
printf("%c%c\n",c1,c2);
printf("%d%d\n",c1,c2);
}
解:可以.因為在可輸出的字元范圍內,用整型和字元型作用相同.
3.9求下面算術表達式的值.
(1)x+a%3*(int)(x+y)%2/4=2.5(x=2.5,a=7,y=4.7)
(2)(float)(a+b)/2+(int)x%(int)y=3.5(設a=2,b=3,x=3.5,y=2.5)
3.10寫出下面程序的運行結果:
#include
void main()
{
int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}
解:結果: 9,11,9,10
第4章
4.4.a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'.想得
到以下的輸出格式和結果,請寫出程序要求輸出的結果如下:
a= 3 b= 4 c= 5
x=1.200000,y=2.400000,z=-3.600000
x+y= 3.60 y+z=-1.20 z+x=-2.40
u= 51274 n= 128765
c1='a' or 97(ASCII)
c2='B' or 98(ASCII)
解:
main()
{
int a,b,c;
long int u,n;
float x,y,z;
char c1,c2;
a=3;b=4;c=5;
x=1.2;y=2.4;z=-3.6;
u=51274;n=128765;
c1='a';c2='b';
printf("\n");
printf("a=%2d b=%2d c=%2d\n",a,b,c);
printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);
printf("x+y=%5.2f y=z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);
printf("u=%6ld n=%9ld\n",u,n);
printf("c1='%c' or %d(ASCII)\n",c1,c2);
printf("c2='%c' or %d(ASCII)\n",c2,c2);
}
4.5請寫出下面程序的輸出結果.
結果:
57
5 7
67.856400,-789.123962
67.856400 ,-789.123962
67.86,-789.12,67.856400,-789.123962,67.856400,-789.123962
6.785640e+001,-7.89e+002
A,65,101,41
1234567,4553207,d687
65535,17777,ffff,-1
COMPUTER, COM
4.6用下面的scanf函數輸入數據,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',
問在鍵盤上如何輸入?
main()
{
int a,b;
float x,y;
char c1,c2;
scanf("a=%d b=%d,&a,&b);
scanf(" x=%f y=%e",&x,&y);
scanf(" c1=%c c2=%c",&c1,&c2);
}
解:可按如下方式在鍵盤上輸入:
a=3 b=7
x=8.5 y=71.82
c1=A c2=a
說明:在邊疆使用一個或多個scnaf函數時,第一個輸入行末尾輸入的"回車"被第二
個scanf函數吸收,因此在第二\三個scanf函數的雙引號後設一個空格以抵消上行
入的"回車".如果沒有這個空格,按上面輸入數據會出錯,讀者目前對此只留有一
初步概念即可,以後再進一步深入理解.
4.7用下面的scanf函數輸入數據使a=10,b=20,c1='A',c2='a',x=1.5,y=-
3.75,z=57.8,請問
在鍵盤上如何輸入數據?
scanf("%5d%5d%c%c%f%f%*f %f",&a,&b,&c1,&c2,&y,&z);
解:
main()
{
int a,b;
float x,y,z;
char c1,c2;
scanf("%5d%5d%c%c%f%f",&a,&b,&c1,&c2,&x,&y,&z);
}
運行時輸入:
10 20Aa1.5 -3.75 +1.5,67.8
註解:按%5d格式的要求輸入a與b時,要先鍵入三個空格,而後再打入10與20。%*f
是用來禁止賦值的。在輸入時,對應於%*f的地方,隨意打入了一個數1.5,該值不
會賦給任何變數。
4.8設圓半徑r=1.5,圓柱高h=3,求圓周長,圓面積,圓球表面積,圓球體積,圓柱體積,
用scanf輸入數據,輸出計算結果,輸出時要求有文字說明,取小數點後兩位數字.請編
程.
解:main()
{
float pi,h,r,l,s,sq,vq,vz;
pi=3.1415926;
printf("請輸入圓半徑r圓柱高h:\n");
scanf("%f,%f",&r,&h);
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=4.0/3.0*pi*r*r*r;
vz=pi*r*r*h;
printf("圓周長為: =%6.2f\n",l);
printf("圓面積為: =%6.2f\n",s);
printf("圓球表面積為: =%6.2f\n",sq);
printf("圓球體積為: =%6.2f\n",vz);
}
4.9輸入一個華氏溫度,要求輸出攝氏溫度,公式為C=5/9(F-32),輸出要有文字說明,
取兩位小數.
解: main()
{
float c,f;
printf("請輸入一個華氏溫度:\n");
scanf("%f",&f);
c=(5.0/9.0)*(f-32);
printf("攝氏溫度為:%5.2f\n",c);
}
第五章 邏輯運算和判斷選取結構
5.4有三個整數a,b,c,由鍵盤輸入,輸出其中最大的數.
main()
{
int a,b,c;
printf("請輸入三個數:");
scanf("%d,%d,%d",&a,&b,&c);
if(a<B)
if(b<C)
printf("max=%d\n",c);
else
printf("max=%d\n",b);
else if(a<C)
printf("max=%d\n",c);
else
printf("max-%d\n",a);
}
方法2:使用條件表達式.
main()
{int a,b,c,termp,max;
printf(" 請輸入 A,B,C: ");
scanf("%d,%d,%d",&a,&b,&c);
printf("A=%d,B=%d,C=%d\n",a,b,c);
temp=(a>b)?a:b;
max=(temp>c)? temp:c;
printf(" A,B,C中最大數是%d,",max);
}
5.5 main()
{int x,y;
printf("輸入x:");
scanf("%d",&x);
if(x<1)
{y=x;
printf("X-%d,Y=X=%d \n",x,y);
}
else if(x<10)
{y=2*x-1;
printf(" X=%d, Y=2*X-1=%d\n",x,y);
}
else
{y=3*x-11;
printf("X=5d, Y=3*x-11=%d \n",x,y);
}
}
(習題5-6:)自己寫的已經運行成功!不同的人有不同的演算法,這些答案僅供參考! 818pp.com
# include
void main()
{
float s,i;
char a;
scanf("%f",&s);
while(s>100||s<0)
{
printf("輸入錯誤!error!");
scanf("%f",&s);
}
i=s/10;
switch((int)i)
{
case 10:
case 9: a='A';break;
case 8: a='B';break;
case 7: a='C';break;
case 6: a='D';break;
case 5:
case 4:
case 2:
case 1:
case 0: a='E';
}
printf("%c",a);
}
http://818pp.com/
5.7給一個不多於5位的正整數,要求:1.求它是幾位數2.分別列印出每一位數字3.
按逆序列印出各位數字.例如原數為321,應輸出123.
main()
{
long int num;
int indiv,ten,hundred,housand,tenthousand,place;
printf("請輸入一個整數(0-99999):");
scanf("%ld",&num);
if(num>9999)
place=5;
else if(num>999)
place=4;
else if(num>99)
place=3;
else if(num>9)
place=2;
else place=1;
printf("place=%d\n",place);
printf("每位數字為:");
ten_thousand=num/10000;
thousand=(num-tenthousand*10000)/1000;
hundred=(num-tenthousand*10000-thousand*1000)/100;
ten=(num-tenthousand*10000-thousand*1000-hundred*100)/10;
indiv=num-tenthousand*10000-thousand*1000-hundred*100-ten*10;
switch(place)
{case 5:printf("%d,%d,%d,%d,%d",tenthousand,thousand,hundred,ten,indiv);
printf("\n反序數字為:");
printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,tenthousand);
break;
case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("\n反序數字為:");
printf("%d%d%d%d\n",indiv,ten,hundred,thousand);
break;
case 3:printf("%d,%d,%d\n",hundred,ten,indiv);
printf("\n反序數字為:");
printf("%d%d%d\n",indiv,ten,hundred);
case 2:printf("%d,%d\n",ten,indiv);
printf("\n反序數字為:");
printf("%d%d\n",indiv,ten);
case 1:printf("%d\n",indiv);
printf("\n反序數字為:");
printf("%d\n",indiv);
}
}
5.8
1.if語句
main()
{long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
scanf("%ld",&i);
if(i<=1e5)bonus=i*0.1;
else if(i<=2e5)bonus=bon1+(i-100000)*0.075;
else if(i<=4e5)bonus=bon2+(i-200000)*0.05;
else if(i<=6e5)bonus=bon4+(i-400000)*0.03;
else if(i<=1e6)bonus=bon6+(i-600000)*0.015;
else bonus=bon10+(i-1000000)*0.01;
printf("bonus=%10.2f",bonus);
}
用switch語句編程序
main()
{long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
int branch;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
scanf("%ld",&i);
branch=i/100000;
if(branch>10)branch=10;
switch(branch)
{case 0:bonus=i*0.1;break;
case 1:bonus=bon1+(i-100000)*0.075;break;
case 2:
case 3:bonus=bon2+(i-200000)*0.05;break;
case 4:
case 5:bonus=bon4+(i-400000)*0.03;break;
case 6:
case 7
case 8:
case 9:bonus=bon6+(i-600000)*0.015;break;
case 10:bonus=bon10+(i-1000000)*0.01;
}
printf("bonus=%10.2f",bonus);
} http://818pp.com/
5.9 輸入四個整數,按大小順序輸出.
main()
{int t,a,b,c,d;
printf("請輸入四個數:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("\n\n a=%d,b=%d,c=%d,d=%d \n",a,b,c,d);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(a>d)
{t=a;a=d;d=t;}
if(b>c)
{t=b;b=c;c=t;}
if(b>d)
{t=b;b=d;d=t;}
if(c>d)
{t=c;c=d;d=t;}
printf("\n 排序結果如下: \n");
printf(" %d %d %d %d \n",a,b,c,d);
}
5.10塔
main()
{
int h=10;
float x,y,x0=2,y0=2,d1,d2,d3,d4;
printf("請輸入一個點(x,y):");
scanf("%f,%f",&x,&y);
d1=(x-x0)*(x-x0)+(y-y0)(y-y0);
d2=(x-x0)*(x-x0)+(y+y0)(y+y0);
d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);
d4=(x+x0)*(x+x0)+(y+y0)*(y+y0);
if(d1>1 && d2>1 && d3>1 && d4>1)
h=0;
printf("該點高度為%d",h);
}
『陸』 華南農業大學新生c語言競賽題--韓信點兵
#include"stdio.h"
#include"math.h"
main()
{
int
a,b,c,d,e,f,g,h,A,B,C,D,E,F,G,H;
long
i,sum=0;
scanf("%d
%d
%d
%d
%d
%d
%d
%d",&A,&B,&C,&D,&E,&F,&G,&H);
scanf("%d
%d
%d
%d
%d
%d
%d
%d",&a,&b,&c,&d,&e,&f,&g,&h);
for(i=2;i<pow(2,63);i++)
{
if(i%A==a&&i%B==b&&i%C==c&&i%D==d&&i%E==e&&i%F==f&&i%G==g&&i%H==h)
{
sum=i;
break;
}
}
printf("%ld",sum);
}
師弟啊,你們好幸運啊,我們去年來華農的時候,沒可沒有這么好的機會有這些競賽哦,希望你好好把握!
其實這些體都不是很難,只是你們以前沒接觸過C語言而一時適應不了吧……其實每個初學C語言的人都認為好像有學了,但是好像不懂,其實你慢慢會懂得,你一直在進步,只是沒感覺出來而已……
我建議你如果真的想學好C語言,要多多上機。學校不個帶電腦不是借口,東區實驗樓三樓的機子在星期一至星期五都是免費開放的,給你們上機做實驗足夠了哦,希望你們好好珍惜……
呵呵,可能說太多了吧,最後跟你說一下我自己,我是信息學院的,06級,QQ115881379,有什麼問題可以找我!
『柒』 華南農業大學新生c語言競賽題--三角形
簡單的數學問題
#include <stdio.h>
#include <math.h>
void work( )
{
      int a, i, j;
      scanf("%d", &a);
      for ( i = ( a * a + 1 ) >> 1; i > a; i-- )
      {
            j = int( sqrt( i * i - a * a ) );
            if ( j * j + a * a == i * i && j < i )
                  printf("%d,%d\n", i, j);
      }
      for ( i = a - 1; i > 1; i-- )
      {
            j = int( sqrt( a * a - i * i ) );
            if ( j * j + i * i == a * a && j < i )
                  printf("%d,%d\n", i, j);
      }
}
int main( )
{
      int n, i;
      scanf("%d", &n);
      while ( n-- )
      {
            work( );
            if ( n )
                  printf("\n");
      }
      return 0;
}
『捌』 急需c語言程序設計教程第四版實驗指導與習題解答課後習題答案,謝謝!!
你把這個拿去試試,我到網上找了一個幫你改的,看看可以不,
#include<stdio.h>
int main()
{
//int a[10][10];
int n;
printf("please input the line:\n");
scanf("%d\n",&n);
getchar();
int i,j;
for(i=0;i<n;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<n;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
『玖』 華南農業大學新生c語言競賽題--代碼等式
跟剛才一樣。,天下沒有白吃的午餐。