c論壇源碼
#include<stdio.h>
#define Mon 1
#define Tues 2
#define Wed 3
#define Thur 4
#define Fri 5
#define Sat 6
#define Sun 0
#define January_days 31
#define February_days 28
#define March_days 31
#define April_days 30
#define May_days 31
#define June_days 30
#define July_days 31
#define August_days 31
#define September_days 30
#define October_days 31
#define November_days 30
#define December_days 31
#define first1month January_days
#define first2month January_days+February_days
#define first3month January_days+February_days+March_days
#define first4month January_days+February_days+March_days+April_days
#define first5month January_days+February_days+March_days+April_days+May_days
#define first6month January_days+February_days+March_days+April_days+May_days+June_days
#define first7month January_days+February_days+March_days+April_days+May_days+June_days \
+July_days
#define first8month January_days+February_days+March_days+April_days+May_days+June_days \
+July_days+August_days
#define first9month January_days+February_days+March_days+April_days+May_days+June_days \
+July_days+August_days+September_days
#define first10month January_days+February_days+March_days+April_days+May_days+June_days \
+July_days+August_days+September_days+October_days
#define first11month January_days+February_days+March_days+April_days+May_days+June_days \
+July_days+August_days+September_days+October_days+November_days
int known_weekday = Tues;
int known_year = 1901;
int konwn_month = 1;
int known_day = 1;
int day_count(int month)
{
switch(month)
{
case 1: return 0;break;
case 2: return first1month;break;
case 3: return first2month;break;
case 4: return first3month;break;
case 5: return first4month;break;
case 6: return first5month;break;
case 7: return first6month;break;
case 8: return first7month;break;
case 9: return first8month;break;
case 10: return first9month;break;
case 11: return first10month;break;
case 12: return first11month;break;
}
}
/*char * month_name(int month)
{
switch(month)
{
case 1:
return "January";
break;
case 2:
return "February";
break;
case 3:
return "March";
break;
case 4:
return "April";
break;
case 5:
return "May";
break;
case 6:
return "June";
break;
case 7:
return "July";
break;
case 8:
return "August";
break;
case 9:
return "September";
break;
case 10:
return "October";
break;
case 11:
return "November";
break;
case 12:
return "December";
break;
default:
break;
}
}*/
char * month_name(int month)
{
switch(month)
{
case 1:
return "一月";
break;
case 2:
return "二月";
break;
case 3:
return "三月";
break;
case 4:
return "四月";
break;
case 5:
return "五月";
break;
case 6:
return "六月";
break;
case 7:
return "七月";
break;
case 8:
return "八月";
break;
case 9:
return "九月";
break;
case 10:
return "十月";
break;
case 11:
return "十一月";
break;
case 12:
return "十二月";
break;
default:
break;
}
}
/*按格式列印某年某月名稱*/
void first_line_print(int month, int year)
{
//printf("%20s %d \n",month_name(month),year);
printf("%8d年 %s \n",year, month_name(month));
}
/*按格式列印星期名稱*/
void week_print()
{
//printf("%-6s%-6s%-6s%-6s%-6s%-6s%-6s\n","Sun.", "Mon.", "Tues.", "Wed.", "Thur.", "Fri.", "Sat.");
printf("%-3s%-3s%-3s%-3s%-3s%-3s%-3s\n","日", "一", "二", "三", "四", "五", "六");
}
/*計算該年該月份與已知日子之間的距離天數*/
int date_distance_count(int month, int year)
{
int leap_year_count = 0;
int i;
int distance;
if (year > known_year)
{
for (i=known_year; i<year; i++)
{
if(((i%4 == 0) && (i%100 != 0) ) || (i%400 == 0))
{
leap_year_count++;
}
}
if (month > 2)
{
if(((year%4 == 0) && (year%100 != 0) ) || (year%400 == 0))
{
leap_year_count++;
}
}
}
else
if (year == known_year)
{
if (month > 2)
{
leap_year_count = 1;
}
}
distance = (year - known_year)*365 + leap_year_count + day_count(month);
return distance;
}
/*確定該月份第一天是星期幾*/
int makesure_firstday_weekday(int month, int year)
{
int date_distance = 0;
int weekday;
date_distance = date_distance_count(month, year);
weekday = (known_weekday + date_distance)%7;
return weekday;
}
/*依次列印出該月份的日子*/
void print_in_turn(int month, int firstday, int year)
{
int i = 1;
int weekday;
switch(firstday)
{
case Sun:
break;
case Mon:
printf("%-3s","");
break;
case Tues:
printf("%-6s","");
break;
case Wed:
printf("%-9s","");
break;
case Thur:
printf("%-12s","");
break;
case Fri:
printf("%-15s","");
break;
case Sat:
printf("%-18s","");
break;
}
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
{
for(i=0; i<31; i++)
{
weekday = (firstday + i)%7;
printf("%-3d",i+1);
if(weekday == Sat)
{
printf("\n");
}
}
break;
}
case 2:
{
if(((year%4 == 0) && (year%100 != 0) ) || (year%400 == 0)) /*閏年*/
{
for(i=0; i<29; i++)
{
weekday = (firstday + i)%7;
printf("%-3d",i+1);
if(weekday == Sat)
{
printf("\n");
}
}
break;
}
else /*平年*/
{
for(i=0; i<28; i++)
{
weekday = (firstday + i)%7;
printf("%-3d",i+1);
if(weekday == Sat)
{
printf("\n");
}
}
break;
}
}
case 4:
case 6:
case 9:
case 11:
{
for(i=0; i<30; i++)
{
weekday = (firstday + i)%7;/*計算該天是星期幾*/
printf("%-3d",i+1);
if(weekday == Sat)
{
printf("\n");/*如果是星期六,則換行*/
}
}
break;
}
}
}
void date_print(int month, int year)
{
int firstday;
firstday = makesure_firstday_weekday(month, year);
print_in_turn(month, firstday, year);
printf("\n");
}
void main_month(int month, int year)
{
first_line_print(month, year);
week_print();
date_print(month, year);
printf("\n\n");
}
void main_calendar(int year)
{
int i;
for(i=1; i<=12; i++)
{
main_month(i, year);
}
}
int main()
{
int year;
printf("請輸入年份:year = ");
scanf("%d",&year);
printf("\n");
while(year < 1902)
{
printf("請輸入大於1901的年份\n");
printf("請輸入年份:year = ");
scanf("%d",&year);
printf("\n");
}
main_calendar(year);
scanf(" ");
return 0;
}
❷ 求高人解決C語言程序設計問題.....不要再別的論壇上COPY!(財富值不多了~)
c語言的代碼如下,先輸入n,再依次輸入各個點的坐標,先x後y,下面還有我用c#運行以後的圖形,證明是對的,你懂c#的話可以把源碼給你
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
typedefstructPointStruct
{
intX,Y;
}Point;
Pointm_points[100];
intn;
doubleCountR(intx,inty)
{
doublemaxr=1,temp;
inti;
for(i=0;i<n;i++)
{
temp=(m_points[i].X-x)*(m_points[i].X-x)+(m_points[i].Y-y)*(m_points[i].Y-y);
if(temp>maxr)
maxr=temp;
}
returnsqrt(maxr);
}
voidReadData()
{
inti;
puts("inputn:");
scanf("%d",&n);
puts("inputnpoint:(x0y0x1y1...)");
for(i=0;i<n;i++)
{
scanf("%d%d",&m_points[i].X,&m_points[i].Y);
}
puts("...");
}
main()
{
Pointsum={0,0};
inti;
doubleMinDistance;
doubletempDis;
intflag=0;
ReadData();
for(i=0;i<n;i++)
{
sum.X+=m_points[i].X;
sum.Y+=m_points[i].Y;
}
sum.X/=n;
sum.Y/=n;
MinDistance=CountR(sum.X,sum.Y);
while(1)
{
flag=1;
tempDis=CountR(sum.X+1,sum.Y);
if(tempDis<MinDistance)
{
MinDistance=tempDis;
sum.X++;
flag=0;
}
tempDis=CountR(sum.X-1,sum.Y);
if(tempDis<MinDistance)
{
MinDistance=tempDis;
sum.X--;
flag=0;
}
tempDis=CountR(sum.X,sum.Y+1);
if(tempDis<MinDistance)
{
MinDistance=tempDis;
sum.Y++;
flag=0;
}
tempDis=CountR(sum.X,sum.Y-1);
if(tempDis<MinDistance)
{
MinDistance=tempDis;
sum.Y--;
flag=0;
}
if(flag!=0)
break;
}
floatr=(float)CountR(sum.X,sum.Y);
printf("x=%dy=%dr=%f ",sum.X,sum.Y,r);
system("pause");
}
❸ C語言的源代碼是什麼意思啊
C語言源代碼,就是依據C語言規則所寫出的程序代碼,常見的存儲文件擴展名為.c文件和.h文件,分別對應C源文件(source file)和C頭文件(header file)。
C語言是一門編程語言,簡單點說,就是由人類書寫按照一定規范書寫的字元,通過一定手段(編譯鏈接)轉換後,可以讓電腦或者其它電子晶元"讀懂",並按照其要求工作的語言。
在所有的編程語言中,C語言是相對古老而原始的,同時也是在同類語言中更接近硬體,最為高效的編程語言。
(3)c論壇源碼擴展閱讀:
C語言廣泛應用於底層開發。它的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
它能提供了許多低級處理的功能,可以保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
❹ 請問C語言中源代碼是什麼意思啊
代碼就是源程序
源代碼,是指未編譯的文本代碼。是一系列人類可讀的計算機語言指令。
在現代程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。計算機源代碼的最終目的是將人類可讀的文本翻譯成為計算機可以執行的二進制指令,這種過程叫做編譯,通過編譯器完成。
作用
源代碼主要功用有如下2種作用:
生成目標代碼,即計算機可以識別的代碼。
對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程序員都忽視軟體說明的編寫,因為這部分雖然不會在生成的程序中直接顯示,也不參與編譯。但是說明對軟體的學習、分享、維護和軟體復用都有巨大的好處。因此,書寫軟體說明在業界被認為是能創造優秀程序的良好習慣,一些公司也硬性規定必須書寫。
需要指出的是,源代碼的修改不能改變已經生成的目標代碼。如果需要目標代碼做出相應的修改,必須重新編譯。
代碼組合
源代碼作為軟體的特殊部分,可能被包含在一個或多個文件中。一個程序不必用同一種格式的源代碼書寫。例如,一個程序如果有C語言庫的支持,那麼就可以用C語言;而另一部分為了達到比較高的運行效率,則可以用匯編語言編寫。
較為復雜的軟體,一般需要數十種甚至上百種的源代碼的參與。為了降低種復雜度,必須引入一種可以描述各個源代碼之間聯系,並且如何正確編譯的系統。在這樣的背景下,修訂控制系統(RCS)誕生了,並成為研發者對代碼修訂的必備工具之一。
還有另外一種組合:源代碼的編寫和編譯分別在不同的平台上實現,專業術語叫做軟體移植。
版權
如果按照源代碼類型區分軟體,通常被分為兩類:自由軟體和非自由軟體。自由軟體一般是不僅可以免費得到,而且公開源代碼;相對應地,非自由軟體則是不公開源代碼。所有一切通過非正常手段獲得非自由軟體源代碼的行為都將被視為非法。
質量
對於計算機而言,並不存在真正意義上的「好」的源代碼;然而作為一個人,好的書寫習慣將決定源代碼的好壞。源代碼是否具有可讀性,成為好壞的重要標准。軟體文檔則是表明可讀性的關鍵。
效率
雖然我們可以通過不同的語言來實現計算機的同一功能,但在執行效率上則存在不同。普遍規律是:越高級的語言,其執行效率越低。這也是為什麼匯編語言生成的文件比用VB語言生成文件普遍要小的原因。
❺ 查看論壇中的源碼,可是載入到VS2008中,報編譯錯誤,說無法識別工具版本4.0,這是為什麼呢
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0]
"DefaultToolsVersion"="2.0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0]
"MSBuildToolsPath"="C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0]
"MSBuildToolsPath"="C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\"
建立一個reg為擴展名的文件,然後運行一下,提示注冊成功,然後重起VS08,在打開這個項目就好了。我剛試過。還挺神的。
❻ 有沒有什麼好點的論壇源碼,推薦個,謝謝。
用thinksns的論壇系統,圖片排版個人覺得很漂亮。不關圖片多少,排版都很好看的。圈子、打賞、資訊、短視頻、音樂功能都有。不過需要收費,如果免費的話,就dz,不過ui真的太老了,不咋好看
❼ c源代碼哪裡有下載
http://www.softhy.net/
這里有很多啊,什麼源代碼都有
http://www.newasp.net/code/dl003185
這里下C的源代碼
❽ 關於C/C++的最權威的網站
C++ reference
www.cplusplus.com
CSDN
mindhacks
看源代碼可以去 github
❾ c語言:原碼,反碼 補碼
1)原碼表示
原碼表示法是機器數的一種簡單的表示法。其符號位用0表示正號,用:表示負號,數值一般用二進制形式表示。設有一數為x,則原碼表示可記作[x]原。
例如,X1=
+1010110
X2=
一1001010
其原碼記作:
[X1]原=[+1010110]原=01010110
[X2]原=[-1001010]原=11001010
在原碼表示法中,對0有兩種表示形式:
[+0]原=00000000
[-0]
原=10000000
2)補碼表示
機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有一數X,則X的補碼表示記作[X]補。
例如,[X1]=+1010110
[X2]=
一1001010
[X1]原=01010110
[X1]補=01010110
即
[X1]原=[X1]補=01010110
[X2]
原=
11001010
[X2]
補=10110101+1=10110110
機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有一數X,則X的補碼表示記作[X]補。
例如,[X1]=+1010110
[X2]=
一1001010
[X1]原=01010110
[X1]補=01010110
即
[X1]原=[X1]補=01010110
[X2]
原=
11001010
[X2]
補=10110101+1=10110110
(3)反碼表示法
機器數的反碼可由原碼得到。如果機器數是正數,則該機器數的反碼與原碼一樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。設有一數X,則X的反碼表示記作[X]反。
例如:X1=
+1010110
X2=
一1001010
[X1]原=01010110
[X1]反=[X1]原=01010110
[X2]原=11001010
[X2]反=10110101
反碼通常作為求補過程的中間形式,即在一個負數的反碼的未位上加1,就得到了該負數的補碼。
例1.
已知[X]原=10011010,求[X]補。
分析如下:
由[X]原求[X]補的原則是:若機器數為正數,則[X]原=[X]補;若機器數為負數,則該機器數的補碼可對它的原碼(符號位除外)所有位求反,再在未位加1而得到。現給定的機器數為負數,故有[X]補=[X]原十1,即
[X]原=10011010
[X]反=11100101+1
[X]補=11100110
例2.
已知[X]補=11100110,求[X]原。
分析如下:
對於機器數為正數,則[X]原=[X]補
對於機器數為負數,則有[X]原=[[X]補]補
現給定的為負數,故有:
[X]補=11100110
[[X]補]反=10011001+1
[[X]補]補=10011010=[X]原+1
[[X]補]補=10011010=[X]原
總結一下,原碼(為負時,正時都不變)全部取反即得到反碼,反碼加
"1"就得到補碼了,就是這么簡單。
❿ 請問 有什麼好的c語言源碼網站或論壇啊 最好是新手能看懂的 謝謝。。。
有個C語言經典案例100題,你網路下,一大堆。上面100題都搞明白了,你就會了。最最基本的是你一定要懂C的最基礎的東西。for循環、while(當型循環、直到型循環)、switch-case、if、基本數據類型能表達的范圍、位元組、字、位之間的關系、進制間的轉換等等。