當前位置:首頁 » 編程語言 » 對下列c語言程序設計畫出程序流程圖
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

對下列c語言程序設計畫出程序流程圖

發布時間: 2023-05-16 17:31:10

㈠ 求畫一個c語言的流程圖。下面是運行出來的程序,依據此畫個流程圖。。感激不盡。。

具體的框圖我派滲就不畫了,就說下流程是如何的,你可以根據這個自己在visio2003裡面畫:
開始
等待輸入
依據鍵羨叢輸入的金額,選擇稅率檔次
依據稅率檔次稿櫻,輸出應繳稅款
結束

㈡ c語言流程圖怎麼畫

畫法如下:
第一步:以特定的圖形符號加上說明,表示演算法的圖,稱為流程圖或框圖
打開流程編輯工具。
第二步:選擇對應的圖形
開始結束用橢圓形
過程用長方形
第三步::繪制整個流程的斗悶肆過程空轎
第四步:罩咐將各個流程節點用線連接起來
第五步:添加備注

㈢ 急!這個C語言程序的流程圖怎麼畫

是哪種流程圖??NS 還是像樹狀的那種?

㈣ c語言流程圖怎麼畫

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidf();
voidf0();
voidf1(charp1[],charp2[]);
voidf2(charp1[],charp2[]);
voidf3(charp1[],charp2[]);
charch;
charp1[22],p2[22];

voidmain()
{
f();

}

voidf()
{
system("colore");
printf("請輸入兩個字元串p1p2:");
scanf("%s%s",p1,p2);
f0();
}
voidf0()
{
system("color2b");
inta;
printf("############################################################ ");
printf("#請輸入:# ");
printf("#1.求字元串長度# ");
printf("#2.字元串復制# ");
printf("#3.字元串比較# ");
printf("############################################################ ");
printf("你選擇的操作是:");
printf("%d",&a);
switch(a)
{
case1:
f1(p1,p2);break;
case2:
f2(p1,p2);break;
case3:
f3(p1,p2);break;
default:
printf("sorry輸入有誤!! ");break;
}

}

voidf1(charp1[],charp2[])
{
printf("p1長度為%d ",strlen(p1));
printf("p2長度為%d ",strlen(p2));
printf("############################################################ ");
printf("*按f鍵返回菜單* *按c鍵重新輸入* *按其他鍵結束* ");
printf("############################################################ ");
getchar();
ch=getchar();
if(ch=='f')
{
system("cls");
f0();

}
elseif(ch=='c')
{
system("cls");
f();
}
else
exit(0);
}


voidf2(charp1[],charp2[])
{
strcpy(p1,p2);
printf("字元串復制後的結果為:%s ",p1);
printf("############################################################ ");
printf("*按f鍵返回菜單* *按c鍵重新輸入* *按其他鍵結束* ");
printf("############################################################ ");
getchar();
ch=getchar();
if(ch=='f')
{
system("cls");
f0();

}
elseif(ch=='c')
{
system("cls");
f();
}
else
exit(0);
}

voidf3(charp1[],charp2[])
{
intm,n,i,j=0;
m=strlen(p1);
n=strlen(p2);
if(strcpy(p1,p2)!=0)
{
if(m<n)
for(i=0;j<m;i++)
{
if(p1[i]!=p2[i])
j=p1[i]-p2[i];
printf("第一個不相同的字元ASCII碼差為:%d ",j);
break;
}
else
for(i=0;j<n;i++)
{
if(p1[i]!=p2[i])
j=p1[i]-p2[i];
printf("第一個不相同的字元的ASCII碼差為:%d ",j);
break;
}
}
printf("############################################################ ");
printf("*按f鍵返回菜單* *按c鍵重新輸入* *按其他鍵結束* ");
printf("############################################################ ");
getchar();
ch=getchar();
if(ch=='f')
{
system("cls");
f0();

}
elseif(ch=='c')
{
system("cls");
f();
}
else
exit(0);
}

㈤ 畫下面C語言程序的流程圖

我就個人的經驗來談一下吧:如果你是會編程序而不會畫流程圖的這種我建議你應該先把自己的程序研究一遍倘若是畫主程序流程圖的話那就只需看懂主函數的程序就行了按照Main()函數中的具體書寫過程來畫比如:定義變數--------初始化變數------使用選擇或者循環或者順序結構------調用某一個子函數(可以沒有)----------程序結束 以上是最簡單的程序流程圖畫法
倘若你是畫某一演算法或是某一模塊的流程圖的話就要把相應的演算法或是模塊看懂再說分析演算法或是模塊的具體走法根據此走法就可以畫出對應的流程圖
如果你是初學者是想根據流程圖的畫法而去嘗試編程的話我建議你就一定要研究好每一個使用到的演算法讀懂題目再畫流程圖

㈥ 排序演算法的設計(c語言)根據程序畫流程圖及對每句程序加註釋

#include "stdio.h"//標准io頭文件
#include "stdlib.h"//庫文件
#include "time.h"//時間系頭文件
#define N0 100000 //定義常量
typedef int keytype; //類型命名
typedef struct node //定義結構體
{ keytype key; //只是類型命名成keytype,其實就是int的
}Etp;//結構體類型叫做Etp
Etp R[N0+1]; // R[1]..R[n] //定義數組
int n=50, count;//全局變數
void readData( Etp R[], int n)//讀數據的函數
{ int i;
count=0;
srand( time( NULL ));//初始化時間種子
for( i=1; i<=n; i++) //對數組初始化
R[i].key=1000+
(int)((9999.0-1000)*rand()/RAND_MAX); // 0..RAND_MAX
}
void printData( Etp R[], int n )//列印顯示數據的函數
{ int i;
for( i=1; i<=n; i++)
printf("%8d%s", //格式化顯示數組的數據
R[i].key, i%5==0?"\n":"");
printf("\ncount=%d\n", count);
}
void bubberSort( Etp R[], int n )//冒泡排序的函數
{ int i,j;//(這個函數塊就是冒泡排序的演算法程序)
bool swap;
for( i=1; i<=n-1; i++)
{ swap=false;
for( j=1; j<=n-i; j++)
if( count++,R[j].key>R[j+1].key )
{ R[0]=R[j];
R[j]=R[j+1];
R[j+1]=R[0];
swap=true;

}
if( !swap ) break;
}

}
void bubberSort1( Etp R[], int n )//這個也是另一個冒泡排序的函數
{ int j;//跟上面不同的是這個演算法用的是遞歸的方式,上面的是非遞歸的
for( j=1; j<=n-1; j++)
if( count++,R[j].key>R[j+1].key )
{ R[0]=R[j];
R[j]=R[j+1];//________;//就是兩個變數交換值
R[j+1]=R[0];
}
if( n>1 ) bubberSort1( R, n-1); //___________;//遞歸調用
}
void selectSort( Etp R[], int n )//這個是選擇排序
{ int i,j,k;//(這個函數塊就是選擇排序的演算法程序)
for( i=1; i<=n-1; i++)
{
k=i;
for( j=i+1; j<=n; j++)
if( count++,R[j].key<R[k].key ) k=j;
if( k!=i )
{ R[0]=R[i];
R[i]=R[k];
R[k]=R[0];
}
}
}
void insertSort( Etp R[], int n )//這個是插入排序
{ int i,j;
for( i=2; i<=n; i++)
{
R[0]=R[i];
j=i-1;
while( count++,R[j].key>R[0].key ) R[j+1]=R[j--];
R[j+1]=R[0];
count++;
}
}
void sift( Etp R[], int i, int m)//堆排序中的步驟
{ int k=2*i;
R[0]=R[i];
while( k<=m )
{ if( count++, k+1<=m && R[k+1].key>R[k].key) k++;
if( count++,R[0].key<R[k].key ) R[i]=R[k];
else break;
i=k;
k=2*i;
}
R[i]=R[0];
}
void heapSort( Etp R[], int n )//這個是堆排序
{ int j;
for( j=n/2; j>=1; j--) sift( R, j, n);
for( j=n; j>=2; j--)
{ R[0]=R[1];
R[1]=R[j];
R[j]=R[0];
sift( R, 1, j-1 );
}
}
int main()//主函數的進入口
{
readData( R, n );//讀取數據
bubberSort1( R, n );//調用遞歸冒泡排序
printData( R, n);//顯示數據

readData( R, n );//讀取數據
selectSort( R, n );//調用選擇排序
printData( R, n);//顯示數據

readData( R, n );//讀取數據
insertSort( R, n );//調用插入排序
printData( R, n);//顯示數據

readData( R, n );//讀取數據
heapSort( R, n );//調用堆排序
printData( R, n);//顯示數據
return 0;
}
//誒·~注釋完我總算看出來了,難道你要我解釋各個排序的過程?
//那你還不如直接或者看書,你要是不理解原理是不可能看懂過程的。
//注釋也只是語句的解釋,但是過程的含義是無法描述的

㈦ 用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語言代碼怎麼畫程序流程圖