❶ 華南農業大學c語言上機網址,請問誰知道啊
找該校的學生
❷ 華南農業大學新生c語言競賽題--約瑟夫環問題
/*
*File:Josephus.cpp
*Author:YangWudi
*Version 1.3b
*------------------------------------------
*這個程序主要用雙向循環鏈表來實現約瑟夫問題 。
*/
#include <iostream>
#include <cstdio>
using namespace std;
typedef int ElementType;
struct Node;
typedef struct Node *PtrToNode;
typedef PtrToNode List;
typedef PtrToNode Position;
struct Node
{
ElementType element;
Position prior;
Position next;
};
void Delete(Position P);
Position Forward(Position address, int step);
int main()
{
List L=NULL;
int N, M, num;
cout << "Please enter the N and M" << endl;
while(1){
cin >> N >> M;
num = N;
if(N>0&&M>=0)break;//判斷N和M是否合法
cout << "Don't you know the value input should fit N>0&&M>=0?!" << endl
<< "Please enter N and M again:";
}
L = (List)malloc(sizeof(Node));
Position temp=L;
for(int i=1;;i++){
temp->next = (List)malloc(sizeof(Node));
temp->element = i;
if(i==N)break;
temp->next->prior = temp;
temp = temp->next;
}
free(temp->next);//將多餘分配的內存釋放
temp->next = L;
L->prior = temp;
Position position=L, pause;
while(num!=1){
pause = Forward(position, M%num);//傳遞完畢後的位置,也就是應該刪除的位置
position = pause->next;//下次開始時的位置
//沒有列印語句可以減少運行時間,但數據規模小的時候加上可以清晰的反映刪除的步驟,這個語句是否加上可選
//cout << "Delete-" << pause->element << " ";
Delete(pause);
num--;
}
cout << endl << "Winner is:" << position->element << endl;
system("pause");
return 0;
}
/*Delete P from a list*/
void Delete(Position P)
{
P->next->prior = P->prior;
P->prior->next = P->next;
//free(P);//不釋放內存為了提高運行效率,不過如果內存不夠的話,還是應該調用free函數,所以這個地方可選
return ;
}
/*將現在位置的節點按照應該移動的步數向前移動,並且返回移動後所在位置的指針*/
Position Forward(Position address, int step)
{
Position temp=address;
for(int i=0; i<step; i++){
temp = temp->next;
}
return temp;
}
❸ 用C語言設計問卷調查系統,求代碼,華南農業大學軟體工程大一課程設計,華農做過這題目的師兄師姐幫幫忙
C語言設計問卷調查系統這方面的我可以。
❹ 華南農業大學新生c語言競賽題--代碼等式
好像比較麻煩,回去考慮一下
❺ 華南農業大學新生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>
struct Edge
{
      int x, y;
};
Edge edge[ 10 ];
int n, m, hide[ 10 ][ 10 ], w[ 10 ], Min_c, sum;
void init( )
{
      int i, j, a, b;
      scanf("%d%d", &n, &m);
      sum = 0;
      for ( i = 0; i < n; i++ )
      {
            scanf("%d", &w[ i ]);
            sum += w[ i ];
            for ( j = 0; j < n; j++ )
                  hide[ i ][ j ] = 0;
      }
      for ( i = 0; i < m; i++ )
      {
            scanf("%d%d", &a, &b);
            edge[ i ].x = a - 1;
            edge[ i ].y = b - 1;
            hide[ a - 1 ][ b - 1 ] = 1;
            hide[ b - 1 ][ a - 1 ] = 1;
      }
      Min_c = sum;
}
int check( )
{
      int visit[ 10 ], i, c, t = 0, q[ 10 ], head = 0, tail = 0;
      for ( i = 0; i < n; i++ )
            visit[ i ] = 1;
      visit[ 0 ] = 0;
      q[ 0 ] = 0;
      t = w[ 0 ];
      while ( tail >= head )
      {
            c = q[ head++ ];
            for ( i = 0; i < n; i++ )
                  if ( hide[ c ][ i ] && visit[ i ] )
                  {
                        visit[ i ] = 0;
                        q[ ++tail ] = i;
                        t += w[ i ];
                  }
      }
      if ( tail == n - 1 )
            return 0;
      return t;
}
int mabs( int x )
{
      if ( x < 0 )
            return -x;
      return x;
}
void cut( int step )
{
      int t = check( );
      if ( t && mabs( sum - t * 2 ) < Min_c )
            Min_c = mabs( sum - t * 2 );
      if ( step >= m )
            return ;
      int i, a, b;
      for ( i = step; i < m; i++ )
      {
            a = edge[ i ].x;
            b = edge[ i ].y;
            hide[ a ][ b ] = hide[ b ][ a ] = 0;
            cut( i + 1 );
            hide[ a ][ b ] = hide[ b ][ a ] = 1;
      }
}
void print( )
{
      printf("%d\n", Min_c);
}
int main( )
{
      init( );
      cut( 0 );
      print( );
      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語言競賽題--三角形
簡單的數學問題
#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語言上機綜合A答案
請問這位同學所講的華農,究竟是指華中農業大學(武漢)、華南農業大學(廣州)還是華南熱帶農業大學(儋州)呢?國內叫華農的高校隨便數都有3間吖。
華南農業大學校徽:
❿ 華南農業大學新生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;
}