当前位置:首页 » 编程语言 » 对下列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语言代码怎么画程序流程图