當前位置:首頁 » 編程語言 » 華南農業大學c語言上機實驗
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

華南農業大學c語言上機實驗

發布時間: 2022-02-06 08:41:03

❶ 華南農業大學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;
}