㈠ c語言 主要程序流程圖
簡單地來說流程圖就是使用圖形表示演算法的思路的一種極好的方法,因為千言萬語不如一張圖。
主要由順序結構,分支結構(又稱選擇結構),循環結構構成。
建議去看一看譚浩強編寫的C程序設計,裡面有一個章節專門講這個的,簡單易懂,相信你能在短時間內就掌握這種表示方法的。
㈡ c語言簡單流程圖題目求解
#include<stdio.h>
#include<math.h>
//自己根據需求換函數
doublef(doublex)
{
returnx*x*x-1.5;
}
intmain(void)
{
doubleP=1e-4;
doublea,b,c;
printf("Pleaseinputa,b:");
while(scanf("%lf%lf",&a,&b)&&(b-a)>P&&f(a)*f(b)>=0){
printf("f(a)*f(b)>=0,pleaseinputagain:");
}
printf("Pleaseinputeps:");
scanf("%lf",&P);
do{
c=(a+b)/2.0;
if(fabs(f(c))<P){
break;
}elseif(f(a)*f(c)>0){
a=c;
}else{
b=c;
}
}while(b-a>=P);
printf("x0=%lf ",c);
return0;
}
㈢ 幫忙寫個C語言程序流程圖。急需~~~~
不錯 ! 最好自己寫一個流程圖
對你很有好處,個人認為能很快寫出流程圖,有時候比敲代碼重要,而且是個解決問題能力提高的方法
不能偷懶呵
㈣ 用C語言編寫程序解決問題,並畫出相應的流程圖
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *f1,*f2;
char file1[20],file2[20],name[200][20],name1[15];
int n,m,data[200][10];
void init(){
int i,j;
char ch=' ';
printf("%20c歡迎使用班級成績管理系統\n\n",ch);
printf("請輸入輸入和輸出文件名(中間用一個空格隔開):\n");
scanf("%s %s",file1,file2);// 1)該條語句的功能是什麼?
f1=fopen(file1,"r");
f2=fopen(file2,"w");
fscanf(f1,"%d%d",&n,&m); // 2)該條語句的功能是什麼?
for(i=1;i<=n;i++)
{
fscanf(f1,"%s",name[i]); // 3)該條語句的功能是什麼?
data[i][0]=0; // 4)該條語句的功能是什麼?沒有這條語句可不可以?
for(j=1;j<=m;j++)
{
fscanf(f1,"%d",&data[i][j]);
data[i][0]+=data[i][j]; // 5)該條語句的功能是什麼?
}
}
fprintf(f2,"name\tyuwen\tshuxue\tyingyu\twuli\thuaxue\tzongfen\n ");
for(i=1;i<=n;i++)
{
fprintf(f2,"%s\t",name[i]);
for(j=1;j<=m;j++)
fprintf(f2,"%d\t",data[i][j]);
fprintf(f2,"%d\n",data[i][0]);
}
fclose(f1);// 6)問什麼可以在這關閉輸入文件?
fclose(f2);
}
void search(char na[],char num){
int i=1,j;
while((i<=n)&&(strcmp(na,name[i])!=0))i++;
if(i<=n){
switch(num){
case '1':printf("%s的語文成績為%d!\n",na,data[i][1]);break;
case '2':printf("%s的數學成績為%d!\n",na,data[i][2]);break;
case '3':printf("%s的英語成績為%d!\n",na,data[i][3]);break;
case '4':printf("%s的物理成績為%d!\n",na,data[i][4]);break;
case '5':printf("%s的化學成績為%d!\n",na,data[i][5]);break;
case 'a':
printf("%s的各科成績為:\n",name[i]);
printf("語文\t數學\t英語\t物理\t化學\t總成績\n");
for(j=1;j<=m;j++)
printf("%d\t",data[i][j]);
printf("%d\n",data[i][0]);
break;
default: printf("沒有這種查詢方式,請確認後再次輸入!\n");
}
}
else printf("查無此人,請確認後再次查詢!\n");
printf("\n\n");
}
main(){
init();//數據初始化
printf("數據初始化結束!\n\n");
printf("------------------------------------------------\n\n");
char na[20];
char num;
while(1){ // 7)該條語句的功能是什麼?
//scanf("%s%c%c",na,&num,&num); // 8)此處的輸入可不可以用這條語句?
printf("請輸入學生的姓名和要查詢成績的科目代碼(中間用一個空格隔開):\n(1 語文 2 數學 3 英語 4 物理 5 化學 a 所有科目成績 q 退出)\n");
scanf("%s",na);
if(strcmp(na,"q")==0)break; // 9)問什麼要用這條語句strcmp(na,"q")==0?
scanf("%c%c",&num,&num); // 10)為什麼用了兩次&num?
search(na,num);
printf("------------------------------------------------\n\n");
printf("\n請輸入新的查詢:\n\n");
}
system("pause");
}
稍改一下就行了!
㈤ C語言編程,高分懸賞!
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys.sem.h>
#define NEED_P 2
#define NEED_C 2
#define WORKS_P 10
#define WORKS_C 10
#define BUF_LENGTH(sizeof(struct(mybuffer))
#define BUF_NUM 10
#define SHM_MODE 0600
#define SEM_ALL_KEY 2411
#define SEM_EMPTY 0
#define SEM_FULL 1
struct mybuffer
{
char letter[BUF_NUM];
int head;
int tail;
int is_empty;
};
int get_random()
{
int t;
srand((unsigned)(getpid() + time(NULL)));
t=rand()%5;
return t;
}
char get_char()
{
char a;
srand((unsigned)(getpid() + time(NULL)));
a =(char)((char)(rand()%26)+'A');
}
void p(int sem_id,int sem_num)
{
struct sembuff pc;
pc.sem_num=sem_num;
pc.sem_op=-1;
pc.sem_flg=0;
semop(sem_id,&pc,1);
}
void v(int sem_id,int sem_num)
{
struct sembuf pc;
pc.sem_num=sem_num;
pc.sem_op=1;
pc.sem_flg=0;
semop(sem_id,&pc,1);
}
int main(int argc,char* argv[])
{
int i,j;
int shm_id,sem_id;
int num_p=0,num_c=0;
struct mybuffer* shmptr;
char lt;
time_t now;
pid_t pid_p,pid_c;
sem_id=semget(SEM_ALL_KEY,2,IPC_CREATE|0600);
IF(sem_id>=0)
printf(
㈥ c語言ns流程圖(ns流程圖三種基本結構)
1.NS流程圖由一些特定意義的圖形、流程線及簡要的文字說明構成,它能清晰明確地表示程序的運行過程。
2.NS流程圖是用於取代傳統流程圖的一種描述方式,以SP方法為基礎。
3.有5個基本比分組成。
4.優點:它強制設計人員按SP方法進行思考並描述他的設計方案,除了集中標准結構的符號之處,它不再提供其他的描述手段,有效的保證了設計的質量。
5.直觀具有良好的可見度。
6.簡單易學,可用於軟體教育和其他方面。
7.缺點:手工修改比較麻煩。
㈦ C語言在程序設計中需要使用流程圖的環節是什麼
C語言在程序設計中需要使用流程圖是一種程序簡化的方法,屬於結構化程序設計環節。
早期的非結構化語言中都有go to語句,它允許程序從一個地方直接跳轉到另一個地方去。
執行這樣做的好處是程序設計十分方便靈活,減少了人工復雜度,但其缺點也是十分突出的,一大堆跳轉語句使得程序的流程十分復雜紊亂,難以看懂也難以驗證程序的正確性,如果有錯,排起錯來更是十分困難。這種轉來轉去的流程圖所表達的混亂與復雜,正是軟體危機中程序人員處境的一個生動寫照。而結構化程序設計,就是要把這團亂麻理清。
經過研究,人們發現,任何復雜的演算法,都可以由順序結構、選擇(分支)結構和循環結構這三種基本結構組成,因此,我們構造一個演算法的時候,也僅以這三種基本結構作為「建築單元」,遵守三種基本結構的規范,基本結構之間可以並列、可以相互包含,但不允許交叉,不允許從一個結構直接轉到另一個結構的內部去。正因為整個演算法都是由三種基本結構組成的,就像用模塊構建的一樣,所以結構清晰,易於正確性驗證,易於糾錯,這種方法,就是結構化方法。遵循這種方法的程序設計,就是結構化程序設計。
㈧ c語言的流程圖怎麼畫
如果會編程序而不會畫流程圖,建議先把自己的程序研究一遍。
若是畫主程序流程圖,那就需看懂主函數的程序,按照main()函數中的具體書寫過程來畫,例如:
程序開始---定義變數---初始化變數---使用選擇或者循環或者順序結構---調用某一個子函數(可以沒有)---程序結束
以上是最簡單的程序流程圖畫法。
若你是畫某一演算法或是某一模塊的流程圖,就要把相應的演算法或是模塊看懂。分析演算法或是模塊的具體走法,根據此走法就可以畫出對應的流程圖。
如果你是初學者,想根據流程圖的畫法而去嘗試編程,建議就一定要研究清楚每一個使用到的演算法,讀懂題目再開始編程。
下面是使VISO畫流程圖的幾個要點:
1、選擇下載一個合適版本的VISO
2、程序開始結束用膠囊
3、分頁用圓圈
4、輸入用平行四邊形
5、語句用方塊
6、判斷用菱形
7、列印用波浪
㈨ C語言流程圖和程序
#include<stdio.h>
intleap_year(intn)
{
if(n%400==0||(n%4==0&&n%100!=0))
return1;
else
return0;
}
intmain()
{
intyear,month,day;
intdayCount=0,i;
intmon[]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("請輸入當前的年,月,日:");
scanf("%d-%d-%d",&year,&month,&day);
for(i=0;i<month-1;i++)
dayCount+=mon[i];
if(month>2)
dayCount+=day+leap_year(year);
else
dayCount+=day;
printf("該日是該年的第幾天:%d ",dayCount);
return0;
}
//示例運行結果
F:c_work>a.exe
請輸入當前的年,月,日:2018-1-18
該日是該年的第幾天:18
F:c_work>a.exe
請輸入當前的年,月,日:2018-10-1
該日是該年的第幾天:274
畫流程圖這個需要專門的畫圖工具,這個比較麻煩,所以我就直接給你程序代碼和運行結果了。
㈩ C語言簡單編程 流程圖
#include<stdio.h>int a(int w){ int t; if(k==1)t=w; if(as=1)k++; if(t==1||b(w)==1)return 0; else return 1;}int b(int w){int t;if(k==1)t=w;if(bs==1)k++;if(t==2||c(w)==1)return 0;else return 1;}int c(int t){if(k==1)t=w;if(cs==1)k++;if(t==3||(a(w)==1&&b(w)==1))return 0else return 1}void main(){int k;k=0;as=1;if(a(1)==1)printf("A tells lie.");else if(a(1)==0)printf("A tells true.");k=0;bs=1;as=0;if(b(2)==1)printf("A tells lie.");else if(b(2)==0)printf("A tells true.");k=0;bs=0;as=0;cs=1;if(c(3)==1)printf("A tells lie.");else if(c(3)==0)printf("A tells true.");} 以上是程序,我沒編譯過。大概流程是:設張三為A,李四為B,王五為C假定A說真話,調用a(1),遞歸調用一周,通過第二次調用賦值a(1)=1求出第一次調用a(1)的返回值,若a(1)==0則為說假話。同理,判斷B為b(2),判斷C為c(3)