用C语言编写程序解决问题,并画出相应的流程图

用C语言编写程序解决问题,并画出相应的流程图,第1张

#include <stdioh>

#include <stdlibh>

#include <stringh>

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语言初学者,写出的东西可能不太专业。如下:

一。流程图

1定义2个整形变量i和sum。

2i赋值1,sum赋值0

3sum的值等于本身的值加上i的值,然后i的值加1

4如果i得值小于或等于100则执行步骤3。

5最后sum的值就是1+2+3++100的值

二。源程序

void

main()

{

int

i,sum;

for(i=1,sum=0;i<=100;i++)

sum=sum+i;

printf("1+2+3++100=%d\n\n\n",sum);

}

小提示:

如果求1+2+3++n的值,只需将程序中的100该为n的值即可。

以下是求解任意两个平方的C语言代码和流程图:

```c

#include <stdioh>

#include <mathh>

int main()

{

double a, b, result;

printf("Enter two numbers to find their squares:\n");

scanf("%lf %lf", &a, &b);

result = pow(a, 2) + pow(b, 2);

printf("The sum of squares is: %2lf", result);

return 0;

}

```

流程图如下:

```

START

|

|__> Prompt user to enter two numbers

| |

| |__> Read the two numbers from user (a, b)

|

|__> Calculate the sum of squares (result = a^2 + b^2)

| |

| |__> Calculate a^2 and b^2 using pow() function

|

|__> Display the result to the user

|

END

```

流程图中用到了三个基本 *** 作:输入、计算、输出,分别用矩形框表示。箭头表示程序的执行流程。

#include<stdioh>void main(){

int a,b,x;

printf("Please input a b x values:");

scanf("%d %d %d",&a,&b,&x);

printf("a=%d,b=%d,x=%d",a,b,x);

if(a>1&&b==0){

x=x/a;

printf("x=%d",x);

}else{

printf("x=%d",x);

if(a==2||x>1){

x=x+1;

printf("x=%d",x);

}else {

printf("x=%d",x);

}

}

}

流程图菱形表示判断,y表示yes,n表示no

具体的变化条件要怎么写楼主自己定了,不清楚留言说明

C语言在程序设计中需要使用流程图是一种程序简化的方法,属于结构化程序设计环节。

早期的非结构化语言中都有go to语句,它允许程序从一个地方直接跳转到另一个地方去。

执行这样做的好处是程序设计十分方便灵活,减少了人工复杂度,但其缺点也是十分突出的,一大堆跳转语句使得程序的流程十分复杂紊乱,难以看懂也难以验证程序的正确性,如果有错,排起错来更是十分困难。这种转来转去的流程图所表达的混乱与复杂,正是软件危机中程序人员处境的一个生动写照。而结构化程序设计,就是要把这团乱麻理清。

经过研究,人们发现,任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构这三种基本结构组成,因此,我们构造一个算法的时候,也仅以这三种基本结构作为“建筑单元”,遵守三种基本结构的规范,基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。正因为整个算法都是由三种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证,易于纠错,这种方法,就是结构化方法。遵循这种方法的程序设计,就是结构化程序设计。

流程图(Flow Chart):使用图形表示算法的思路是一种极好的方法,可以用多种软件来绘制,连Windows附带的画图也可以。

下面简要描述一些常见的流程图绘制软件:

1Visio是当今最优秀的绘图软件之一,它将强大的功能和易用性完美结合,可广泛应用于电子、机械、通信、建筑、软件设计和企业管理等众多领域。

2power designer是一款比较不错的画流程图软件。

3框图宝(MyFlowChart)是youfabao的在线流程图软件,可以在线绘制流程图,简单易用,基于云计算,数据永不丢失。

4visual graph专业图形系统:此系统为图形控件,在NET开发平台下可以灵活应用,delphi中也可以使用。简单易用,业内应用较广泛。

5Word附带的绘图功能。

6Windows附带的画图。

如果想将一个C语言程序变成2个流程图,首先要根据C程序的功能,找出程序中最重要的步骤,以及它们之间的逻辑关系,并将其转换成符合流程图表达方式的指令。然后,在流程图的绘制工具上绘制出对应的流程图,就可以实现将C语言程序变为2个流程图的需求。

以上就是关于用C语言编写程序解决问题,并画出相应的流程图全部的内容,包括:用C语言编写程序解决问题,并画出相应的流程图、将C语言转成流程图、c语言画出求解任意两个平方的流程图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9356851.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存