C语言编写程序:

C语言编写程序:,第1张

#include<stdioh>

struct stu

{char stuID[20];

 char stuName[20];

 int stuScore;

};

int main( )

{struct stu scoreArray[5],t;

 int i,j;

 for(i=0;i<5;i++)

   scanf("%s%s%d",scoreArray[i]stuID,scoreArray[i]stuName,

     &scoreArray[i]stuScore);

 for(i=0;i<4;i++)

   for(j=0;j<4-i;j++)

     if(scoreArray[j]stuScore<scoreArray[j+1]stuScore)

     {t=scoreArray[j];

      scoreArray[j]=scoreArray[j+1];

      scoreArray[j+1]=t;

 }

 for(i=0;i<5;i++)

   printf("%s\t%s\t%d\n",scoreArray[i]stuID,scoreArray[i]stuName,

     scoreArray[i]stuScore);

 return 0;

}

C语言中,程序文件本身是文本格式,如果只是查看代码的话,可以这样做:打开记事本,使用文件中的“打开”菜单。在d出的对话框中选择文件类型为“所有文件”,然后再浏览到程序文件,点击打开。但是如果需要在编译器环境中进行调试或编译等 *** 作,则必须使用编译器,编译器必须使用与C语言文件在编写时使用的环境要求,不同的编译器提供的库函数不同,不能混用。

高效率:说到程序,运行效率是不可避免的话题。如何提高效率,一是 最准确的算法,二是 一些小的细节,打个比方:for(int i=;i<strGetLength();i++)  就这个循环的判定条件而言,完全可以改成int len=strGetLength(), for(int i=0;i<len;i++);不要小巧这个改懂,如果你的字符串str很长的话,也会影响效率的,因为每循环一次就要调用一次函数GetLength。

#include <stdioh>

#include <stdlibh>

/

主函数main中输入一组(10个)C语言成绩值到数组score[ ]中,

并输出如图所示的主菜单,根据不同的选择调用相应函数,编

写函数分别实现:

1- 输出平均值

2- 排序成绩

3- 输出比平均值低的成绩和个数

4- 输出及格率

5- 查找成绩

6- 添加成绩

0- 结束程序

/

//1、平均成绩函数

double AveScores(double [], double);

double AveScores(double score[], double count)

{

int i;

double sums = 0;

double average;

for(i = 0; i < count; i++)

{

sums += score[i];

}

average = sums / count;

return average;

}

//排序成绩函数由小到大

void SortScores(double [], int);

void SortScores(double score[], int count)

{

int i, j;

double temp;

for(i = 0; i < count; i++)

{

for(j = 0; j < count - i - 1; j++)

{

if(score[j] > score[j + 1])

{

temp = score[j + 1];

score[j + 1] = score[j];

score[j] = temp;

}

}

}

}

//输出比平均值低的成绩个数

double LowAve (double [], int, double);

double LowAve (double score[], int count, double average)

{

int i= 0;

double countlow = 0;

for(i = 0; i < count; i++)

{

if(score[i] < average)

{

countlow++;

}

}

return countlow;

}

//查找成绩

void FindScore(double [], int);

void FindScore(double score[], int count)

{

int i;

int index;

double input;

printf("请输入要查找的成绩");

scanf("%lf", &input);

for(i = 0; i < count; i++)

{

if(score[i] == input)

{

printf("找到了!此成绩在第%d个\n",i);

}

}

}

//添加成绩

int AddScore(double [], int);

int AddScore(double score[], int count)

{

int i = 0;

printf("请用户输入要添加的成绩:");

while(scanf("%lf", &score[i + count]) != 1 || &score[i + count] < 0)

{

fflush(stdin);

printf("请重新输入正数:");

}

count++;

return count;

}

int main()

{

int i, j;

int index; //数组元素下标

int choice; //用户选择

double average; //平均成绩

double temp; //临时变量

int count = 10; //成绩个数最多支持100个

double countlow; //低于平均成绩的个数

double score[100] = {76, 68, 98, 87, 71, 65, 49, 54, 80, 61};

double lowScore[100]; //用来存放低于平均成绩的数组

do

{

printf("\n");

printf("1、输出平均值\n");

printf("2、排序成绩\n");

printf("3、输出比平均值低的成绩和个数\n");

printf("4、输出及格率\n");

printf("5、查找成绩\n");

printf("6、添加成绩\n");

printf("0、结束程序\n");

printf("\n");

printf("请选择功能:");

while(scanf("%d", &choice) != 1 || choice < 0 || choice > 6)

{

fflush(stdin);

printf("请重新输入0-6的数字:");

}

switch(choice)

{

case 1://1- 输出平均值

average = AveScores(score,count);

printf("平均成绩为%2lf\n", average);

break;

case 2://2- 排序成绩

SortScores(score,count);

printf("排序后成绩为:\n");

for(i = 0; i < count; i++)

{

printf("第%d个成绩:\t",i + 1);

printf("%2lf\n",score[i]);

}

break;

case 3://3- 输出比平均值低的成绩和个数

for(i = 0; i < count; i++)

{

lowScore[i] = score[i];

}

SortScores(lowScore,count);

average = AveScores(score, count);

countlow = LowAve(lowScore,count,average);

printf("低于平均成绩的个数为%0lf\n", countlow);

for(i = 0; i < countlow; i++)

{

printf("第%d个低于平均的成绩:\t",i + 1);

printf("%2lf\n",lowScore[i]);

}

break;

case 4://4- 输出及格率

average = AveScores(score, count);

countlow = LowAve(score,count,average);

printf("及格率为:%2lf%%%\n",100 - countlow / count 100);

break;

case 5://5- 查找成绩

FindScore(score,count);

break;

case 6://6- 添加成绩

count = AddScore(score,count);

break;

}

}while(choice != 0);

return 0;

}

我们编写C程序一般都是用Tubro C编辑器,那么如何用VC2010编写C程序呢?下面我给大家分享一下。

工具/材料

VC2010

01

首先打开VC2010编辑器,新建一个Win32应用程序,如下图所示

02

接下来在d出的界面中选择控制台程序类型,如下图所示

03

建好程序以后,就可以打开程序文件,在主函数文件中导入stdioh文件,如下图所示

04

最后在主函数中编写相应的程序功能即可,如下图所示

应该多给几个例子,n=10的时候如何处理?得到10,110,210,1210等等?

若是这样的,试试下面程序:

/

用c语言编写一个程序:对于一个自然数n(n<=50),统计具有下列数字的个数,

并输出所有符合条件的数字:自然数n,在n的左边加上一个自然数,

但该自然数不能超过原数的一半;继续按此规则进行处理,直到不能加自然数为止。

例如当n=6时,符合条件条件的是:6,16,26,36,126,136共6个;

当n=5时,符合条件的是:5,15,25,125(0也是自然数,所以要加上本身)。。。

/

#include

<stdioh>

#include

<stdlibh>

int

g_count=0;

void

fun(int

n,int

d,int

b)

{

int

i;

printf("%8d

",d);

g_count++;

if(g_count%8==0)

printf("\n");

for(i=1;i<=n/2;i++)

{

fun(i,ib+d,b10);

}

}

void

result(int

n)

{

int

t=n,d=n,b=10;

printf("result:\n");

g_count=0;

while(t>=10)

{

t/=10;

b=10;

}

fun(n,d,b);

printf("\ntotal

%d

numbers\n\n",g_count);

}

int

main()

{

int

n;

printf("input

n(n<=50):\n");

while(scanf("%d",&n)!=EOF)

{

if(n>=0&&n<=50)

result(n);

printf("input

n(n<=50):\n");

}

return

0;

}

我这,若是放开n的限制,n=200的时候,计算花掉20多秒吧,总共205658个。

n=300的话,算了几分钟都没结束。估计也得使用long

long数据类型了。使用递归不是最快的,重复计算多。

百度推荐也不求真相?有误导了吧。

对于楼主新补充的提升,我的程序是这样做的,满足你的要求。

以上就是关于C语言编写程序:全部的内容,包括:C语言编写程序:、如何编写C语言程序、用C语言编写一个程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10065078.html

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

发表评论

登录后才能评论

评论列表(0条)

保存