用C语言编写程序:
试试:
#include#include#include#includeint main(){char str[100];int a[50],*pa=a,ndigit,i,j,k,s;printf("input a string:
");gets(str);for(s=0,j=0,k=0,i=strlen(str)-1;i>=0;i--){if(str[i]>='0' && str[i] 0){*(pa+j++)=s;s=0;k=0;}if(i==0 && k>0)*(pa+j++)=s;}ndigit=j--;printf("There are %d numbers in this line.They are:
",ndigit);for(j;j>=0;j--)printf("%d ",*(pa+j));getch();return 0;}祝你成功 !
程序大概就这么一个框架,单条件检索的输入和判断没有写出来,跟第一个一样的框架
unsigned index1,index2_1,index2_2,switch2_3;
void fun(void)
{
printf("图书馆文献检索系统:
");
printf("1:文献录入、增加、删除、修改
");
printf("2:单条件检索
");
printf("3:组合检索
");
printf("4:其他检索功能
");
printf("请输入数字选择功能...
");
index1=getchar();
switch(inedx1)
{
case '1':
printf("1:文献录入
");
printf("2:文献增加
");
printf("3:文献删除
");
printf("4:文献修改
");
index2_1=getchar();
switch(index2_1)
{
case '1':
//在此插入文献录入的函数
break;
case '2':
//在此插入文献增加的函数
break;
case '3':
//在此插入文献删除的函数
break;
case '4':
//在此插入文献修改的函数
break;
default :
break;
}
break;
case '2'://单条件检索
break;
case '3'://组合条件检索
break;
case '4'://其他功能
break;
default :
break;
}
}
struct student
{
int num;//学号
char name[10];//姓名
int score[3];//3门成绩
float average;//平均分
};
void enter(struct student s[],int n);//输入学生信息
void sort(struct student s[],int n);//平均分排序
void print(struct student s[],int n);//显示排名
int main()
{
int n;//班级学生人数
struct student stu[70];//n<70
printf("输入班级学生人数n :");
scanf("%d",&n);
enter(stu,n);
sort(stu,n);
print(stu,n);
return 0;
}
void enter(struct student s[],int n)
{
int i,j,sum=0;
printf("请输入 %d 个学生信息:",n);
for(i=0;i<n;i++)
{
printf("请输入第 %d 个学生的 学号 姓名 :",i+1);
scanf("%d %s",&s[i].num,&s[i].name);
printf("请输入第 %d 个学生的3门成绩 :",i+1);
sum=0;
for(j=0;j<3;j++)
{
scanf("%d",&s[i].score[j]);
sum=sum+s[i].score[j];
}
s[i].average=sum/3.0;
}
}
void sort(struct student s[],int n)
{
int i,j,p;
struct student temp;
for(i=0;i<n-1;i++)
{
p=i;
for(j=i+1;j<n;j++)
if(s[j].average>s[p].average)
p=j;
if(p!=i)
{
temp=s[i];
s[i]=s[p];
s[p]=temp;
}
}
}
void print(struct student s[],int n)
{
int i,j,m=1;//m代表名次
printf("\n 名次表:\n");
printf("学号\t姓名\t科目1\t科目2\t科目3\t平均分\t名次\n");
for(i=0;i<n;i++)
{
printf("%d\t%s\t",s[i].num,s[i].name);
for(j=0;j<3;j++)
printf("%d\t",s[i].score[j]);
printf("%4.2f\t %d\n",s[i].average,m++);
}
}
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define LEN sizeof(struct student)
struct student
{
char num[6], name[20], sex[3];//定义学号、姓名、性别
float math, english, politics, chinese, sum;//定义数学、英语、**、语文、总分
struct student *next;
};
int n;//全局变量,用于记录每个班级学生人数
void menu()
{
system("cls");//清屏
printf("-------------------------------------------------------------------------------");
printf("\n 学生数据管理系统\n");
printf("\n [0]退出\n");
printf("\n [1]创建学生数据\n");
printf("\n [2]添加学生数据\n");
printf("\n [3]删除学生数据\n");
printf("\n [4]查询\n");
printf("-------------------------------------------------------------------------------");
}
// 等待用户按回车后回到主菜单
void to_menu()
{
char c1, c2;
printf("\n\n\n按回车键返回主菜单...");
scanf("%c%c",&c1,&c2);//第一个字符吸收上次的确认回车键
menu();
}
//排序
struct student *sort(struct student *head)
{
struct student *first, *tail, *p_min, *min, *p;//分别是排列后的有序链的表头指针、排列后的有序链的表尾指针、保留键值更小的前驱借点的指针、存储最小节点、当前比较的节点
first = NULL;
while(head != NULL) //在链表中找键值最小的节点
{
for(p = head, min = head;p->next != NULL;p = p = p->next)//遍历链表中的节点,找出此时最小的节点
{
if((strcmp(p->next->num, min->num)) < 0)//找到一个比当前min小的节点
{
p_min = p;//保存找到节点的前驱节点:显然p->next的前驱节点是p。
min = p->next;//保存键值更小的节点。
}
}
if(first == NULL)/*如果有序链表目前还是一个空链表*/
{
first = min;/*第一次找到键值最小的节点。*/
tail = min;/*注意:尾指针让它指向最后的一个节点。*/
}
else /*有序链表中已经有节点*/
{
tail->next = min;/*把刚找到的最小节点放到最后,即让尾指针的next指向它。*/
tail = min;/*尾指针也要指向它。*/
}
if(min == head) /*如果找到的最小节点就是第一个节点*/
{
head = head->next; /*显然让head指向原head->next,即第二个节点,就OK*/
}
else /*如果不是第一个节点*/
{
p_min->next = min->next; /*前次最小节点的next指向当前min的next,这样就让min离开了原链表。*/
}
}
if(first != NULL) /*循环结束得到有序链表first*/
{
tail->next = NULL;/*单向链表的最后一个节点的next应该指向NULL*/
}
head = first;
return head;
}
//打印
void list(struct student *head, char c_name[20])
{
struct student *p;
p = head;
system("cls");
printf("\n---------------------------[%s]学生成绩表----------------------------\n",c_name);
printf("\n\t学号\t姓名\t性别\t数学\t英语\t**\t语文\t总分\n");
while(p != NULL)
{
printf("\n\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",p->num,p->name,p->sex,p->math,p->english,p->politics,p->chinese,p->sum);
p = p->next;
}
printf("\n班级共%d名学生!",n);
}
//保存
void save_data(struct student *head,char c_name[20])
{
FILE *fp;
struct student *p;
p = head;
if((fp = fopen(c_name,"wb")) == NULL)
{
printf("\n不能保存指定文件!");
exit(0);
}
while(p)//当next等于NULL时表明已经是最后一块数据,退出
{
fwrite(p, sizeof(struct student), 1, fp);
p = p->next;
}
fclose(fp);
list(head, c_name);
}
//载入
struct student *load_data(char c_name[20])
{
FILE *fp;
struct student *p, *last, *head;//p工作指针、last最后一项指针、head头指针
if((fp = fopen(c_name,"rb")) == NULL)
{
printf("\n不能打开指定文件!");
return NULL;//如果文件不存在或无法打开返回空地址
}
head = (struct student *)malloc(LEN);
last = head;
while(!feof(fp))
{
p = (struct student *)malloc(LEN);
if((fread(p, sizeof(struct student), 1, fp)) == 1)
{
last->next = p;
last = p;
}
}
fclose(fp);
last->next = NULL;//表示文件结束
return head = head->next;
}
void add_data()
{
FILE *fp;
struct student *p1,*p2,*head;
char c_name[20];//存放班级名
char ch1, ch2;//判定是否继续输入学生信息
n = 0;
printf("\n请输入班级名:");
scanf("%s",c_name);
//fp= fopen(c_name,"wt");//创建班级数据文件
//head = NULL;
while(ch2 != '0')
{
n++;
if(n == 1)
{
p1 = (struct student *)malloc(LEN);
printf("\n学号:");
scanf("%s",p1->num);
printf("\n姓名:");
scanf("%s",p1->name);
printf("\n性别:");
scanf("%s",p1->sex);
printf("\n数学成绩:");
scanf("%f",&p1->math);
printf("\n英语成绩:");
scanf("%f",&p1->english);
printf("\nC语言成绩:");
scanf("%f",&p1->politics);
printf("\n语文成绩:");
scanf("%f",&p1->chinese);
p1->sum = p1->math + p1->english + p1->politics + p1->chinese;
printf("\n学号\t姓名\t性别\t数学\t英语\t**\t语文\t总分\n");
printf("------------------------------------------------------------\n");
printf("%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",p1->num, p1->name, p1->sex, p1->math, p1->english, p1->politics, p1->chinese, p1->sum);
head = p1;
p1->next = NULL;
LOOP1: printf("\n按0结束,回车继续输入!\n");
printf("\n请输入:");
scanf("%c%c",&ch1,&ch2);
if( ch2 != '0' && ch2 != '\n')//判断如果输入的字符不为0或回车,报错并从新输入
{
printf("\n输入错误!请从新输入!");
goto LOOP1;
}
}
else
{ p2 = p1;
p1 = (struct student *)malloc(LEN);
printf("\n学号:");
scanf("%s",p1->num);
printf("\n姓名:");
scanf("%s",p1->name);
printf("\n性别:");
scanf("%s",p1->sex);
printf("\n数学成绩:");
scanf("%f",&p1->math);
printf("\n英语成绩:");
scanf("%f",&p1->english);
printf("\C语言成绩:");
scanf("%f",&p1->politics);
printf("\n语文成绩:");
scanf("%f",&p1->chinese);
p1->sum = p1->math + p1->english + p1->politics + p1->chinese;
printf("\n学号\t姓名\t性别\t数学\t英语\t**\t语文\t总分\n");
printf("------------------------------------------------------------\n");
printf("%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",p1->num, p1->name, p1->sex, p1->math, p1->english, p1->politics, p1->chinese, p1->sum);
p2->next = p1;
LOOP2: printf("\n按0结束,回车继续输入!\n");
printf("\n请输入:");
scanf("%c%c",&ch1,&ch2);
if( ch2 != '0' && ch2 != '\n')//判断如果输入的字符不为0或回车,报错并从新输入
{
printf("\n输入错误!请从新输入!");
goto LOOP2;
}
}
}
p1->next= NULL;
save_data(head,c_name);
}
//添加数据
void insert()
{
char c_name[20];
struct student *fun;//用于判断要打开的文件是否存在
struct student *p, *head;
LOOP3 : printf("\n请输入要插入数据的班级名:");
scanf("%s",c_name);
fun = load_data(c_name);
if(fun == NULL)
{
printf("\n请从新输入!");
goto LOOP3;
}
head = fun;//把头指针赋给head
p = (struct student *)malloc(LEN);//开辟存储单元
printf("\n学号:");
scanf("%s",&p->num);
printf("\n姓名:");
scanf("%s",&p->name);
printf("\n性别:");
scanf("%s",&p->sex);
printf("\n数学成绩:");
scanf("%f",&p->math);
printf("\n英语成绩:");
scanf("%f",&p->english);
printf("\n**:");
scanf("%f",&p->politics);
printf("\n语文成绩:");
scanf("%f",&p->chinese);
p->sum = p->math + p->english + p->politics + p->chinese;
p->next = head;
head = p;
head = sort(head);
n++;
save_data(head, c_name);
}
void main()
{
char fun;
menu();
while(1)
{
printf("请输入功能号[0-4]:");
scanf("%c",&fun);
switch(fun)
{
case '0': break;
case '1':
{
add_data();
to_menu();
break;
}
case '2':
{
insert();
break;
}
}
if(fun == 0)
{
break;
}
}
}
给你一个模板,你可以稍微的修改就可以了!这个已经跟你的很像了!!
#include<stdio.h>
#include<string.h>
void main()
{
char a[10][80],t[80];
int i,j;
for(i=0;i<10;i++)
gets(a[i]);
for(i=0;i<10;i++)
for(j=0;j<10-i-1;j++)
if(strcmp(a[j],a[j+1])<0)
{
strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
printf("after sorted:\n");
for(i=0;i<10;i++)
puts(a[i]);
}
按要求编写c语言程序
\/\/ 这里需要根据具体需求编写代码 } \/\/ 主函数 void main() { Initialize(); \/\/ 初始化 while (1) { \/\/ 检测按键状态并调用相应处理函数 \/\/ 这里需要根据具体需求编写代码 \/\/ 休眠逻辑 \/\/ 设定工作一段时间后自动进入休眠状态 \/\/ 这里需要根据具体需求编写代码 } } 这个程序是一个基本的...
如何编写一个C语言的程序?
如果您想在没有编译器的电脑上编写 C 语言程序,可以使用在线编程环境。这些环境通常提供一个网页界面,允许您在浏览器中编写、编译和运行 C 代码。有许多不同的在线编程环境可供选择,例如:Repl.it CodeChef Jdoodle 使用在线编程环境的步骤通常是:在网站上注册一个帐户。创建一个新的 "项目"。选择 ...
用c语言编程如何实现求和的程序代码?
1、首先把头文件,main函数写好#include<stdio.h> main(),如下图所示。2、之后需要定义几个变量,一个存放和,一个从1开始到100,如下图所示。3、之后书写for循环,首先给i赋值为1,其中如果要求200以内和把数字100改为200即可。4、然后写for循环里面的内容,sum=sum+i;把每个i的值加到sum...
c语言编写流程图
流程图:c语言代码:include <stdio.h> int main(){ int i,sum=0;for(i=1;i<=100;i++)sum+=i;printf("%d\\n",sum);return 0;}
如何编写C语言程序?
2.快捷键“CTRL+N”建立新源代码。3.输入源代码,下面给出最简单的Hello,world源代码:include <stdio.h> int main( ){ printf("Hello,World\\n");return 0;} 4.按下F11编译并且运行源代码,得到运行结果:5.点击任意键返回源代码编辑界面可以继续进行开发,接下来就是C语言语法的学习了。
编写程序,输出个位十位百位
c语言:1.简介:C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的...
C语言编写程序:
include<stdio.h>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++) ...
用C语言写程序求s。s=3\/(2^2)-5\/(4^4)+7\/(6^6)……+[(-1)^(n-1)]*...
用c语言编写程序:输入n,求 1-1\/2+1\/3-1\/4+..+1\/(2*n-1)-1\/(2*n)include<stdio.h>int main(){int i,n; double s=0; for(i=1;i<=n+n;i++) if(i%2)s+=1.0\/i; else s-=1.0\/i; printf("%lf\\n",s); return 0;} include<stdio.h> include<math...
用c语言编写一程序实现如下功能:输入1、2、3、4、5、6、70(分别对应星 ...
C语言实现输入1到7的数字,输出对应是星期几,参考代码如下: #include "stdio.h" int main() { int d; const char wd[7][3]= {"一","二","三","四","五","六","日"}; scanf("%d",&d); printf("星期%s",wd[d-1]); return 0; } 本回答被网友采纳 已赞过 已踩过< 你对这个回答的...
用C语言编写一个简单程序,有哪些步骤,可以举一个例子详细讲解下吗?_百 ...
\/\/接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,叫主函数,他是整个程序的入口函数,程序所有的功能实现都要在这个函数中体现。但是这个函数有且仅有一个 int main(){ \/\/这是main函数的函数体,要实现什么功能,就把实现功能的语句写到这里面 \/\/比如我要实现打印HelloWorld字符...
范很跳骨: #include<stdio.h> void main() {int num;scanf("%d",&num);switch(num/10) { case 10: case 9:printf("A");break; case 8:printf("B");break; case 7:printf("C");break; case 6:printf("D");break; default:printf("E");break; }}
江陵县18048554339: 用C语言编程序?
范很跳骨: # include <stdio.h> void main() { char a[20],b[20]; printf("输入第一个字符串\n"); scanf("%s",a); printf("输入第二个字符串\n"); scanf("%s",b); for(int i=0;a[i]!='\0' && b[i]!='\0';i++){ if(a[i]!=b[i]){ printf("第一个不同字符的ASCII码之差%d\n",a[i]-b[i]); printf("符号位置下标为:%d\n",i); return; } } printf("找不到第一个不同字符"); }
江陵县18048554339: 用C语言编写一段程序 - ?
范很跳骨: //=== #include //--- void count(char a[100],int b[27],int c[27],int i) { int j; for(j=0;j='a'&&a[j]<='z') //统计各小写字母的个数 { b[a[j]-'a']++; } else if(a[j]>='A'&&a[j]<='Z') //统计各大写字母的个数 { c[a[j]-'A']++; } else //统计其他字符的个数 c[26]++; } } //-- void ...
江陵县18048554339: 用C语言编写程序?
范很跳骨: #include <stdio.h> main() { int i,j,n=10,a[17][17]={0}; for(i=0;i<n;i++) a[i][0]=1; /*第一列全置为一*/ for(i=1;i<n;i++) for(j=1;j<=i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];/*每个数是上面两数之和*/ for(i=0;i<n;i++) /*输出杨辉三角*/ { for(j=0;j<=i;j++) printf("%5d",a[i][j]); printf("\n"); } getch(); }
江陵县18048554339: 用C语言编一程序?
范很跳骨: #include<stdio.h> #include<string.h> char *fx(char *str) { int len=strlen(str); int i; char t; for(i=0; i<len/2; i++) { t=str[i]; str[i]=str[len-i-1]; str[len-i-1]=t; } return str; } int main() { char s[128]; printf("请输入字符串: "); scanf("%s",s); printf("逆序后的字符串: %s\n",fx(s)); return 0; }
江陵县18048554339: C语言编写程序?
范很跳骨: 首先把这个字符串倒序 然后同原来的相比 strcmp() 如果返回值是0,就表示是回文..
江陵县18048554339: 用c语言写一个程序 - ?
范很跳骨: #include int main(void) { long number; long water; long pay; printf("请输入居民人口数量:"); scanf("%ld",&number);water=(((long)number/3)*14*15-((long)number/3)*14*2); pay=(long)number/3*300; printf("water=%ld(升/每天)\npay=%ld(元)\n",water,pay); return 0; }
江陵县18048554339: 运用C语言编写程序 - ?
范很跳骨: #include<stdio.h> #include<math.h> void main() {int i,j,t;for (i = 1;i < 9;i++)//千位不可能是0,故从1开始.for (j = 0;j < 9;j++){t = i * 1100 + j * 11;//t的千位百位为i,十位个位为jif ((int)sqrt(t) == sqrt(t))//强制转换 根号t 为整形(即舍去小数部分),若他们相减为0,则意味着 根号t 的小数部分为0,即t是一个完全平方数.{printf("%d\n",t);break;}} }
江陵县18048554339: C语言编写程序?
范很跳骨: #include <stdio.h> #include <conio.h> #include <string.h> int main(void) { char s[1000]; int i; FILE *ou; printf("请输入字符串: "); gets(s); for (i = 0; i < strlen(s); i++) { if (s[i] >= 'a' && s[i] <= 'z') { s[i] -= 32; } } printf("转换后字符串: %s\n", ...
江陵县18048554339: c语言编程 - ?
范很跳骨: 1,C语言都有共同的主函数框架,变量和函数如果头文件里没有或程序员没有编写,你是用不了的,想用就必须自己编写.例如,如果程序员没有编写printf()函数,你就要自己编写才能使用.2,变量都必须先定义才能使用,函数都必须先定义或声明才能使用,象printf()等系统函数已经被程序员定义好了,所以能直接用.3,书写程序时必须遵照C语言的语法结构.记住以上3条,再把各函数和变量类型的特点记熟,对于C语言你基本就及格了.其实,只要你多练习,形成编程习惯,你会发现所有C语音语句的共同点,那时候你就不需要书本了.