用数组保存。定义一个数组。
如:int a[6]={1,2,3,4,5,6}
然后输出
for(i=0i<6i++){
printf("%d",a[i])}
代码如下:
#include<stdio.h>
int main(){
int a[6]={1,2,3,4,5,6}
int i
for(i=0i<=5i++)
printf("%d\n",a[i])
}
扩展资料
保存方法二如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp
char in
fp = fopen("test.txt","w")
printf("请输入一个字符串(以!结束):\n")
while((in=getchar()) != '!')
{
if(in <='z' &&in >= 'a')
{
in -= 32
}
fputc(in,fp)
}
fclose(fp)
return 0
}
数据库是用来存入数据的仓库。用户可以对文件中的数据进行新增、查询、更新、删除等操作。但是C语言和数据库是两个东西,他们之间的关系就是C语言可以用来开发数据库管理软件,也可以通过C语言借助于SQL语句来操作数据库。
C语言普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。具体体现在以下三个方面:
其一,广泛性。C 语言的运算范围的大小直接决定了其优劣性。C 语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C 语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。
其二,简洁性。9 类控制语句和32个KEYWORDS是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的操作,提高其工作效率,同 时还能够支持高级编程,避免了语言切换的繁琐。
扩展资料
数据库架构
1、内层:最接近实际存储体,亦即有关数据的实际存储方式。
2、外层:最接近用户,即有关个别用户观看数据的方式。
3、概念层:介于两者之间的间接层。
参考资料来源:百度百科--数据库
/*size_a,pa——指向数组a的有效末端
ma——a的最大容量,必须大于na
n=12——求n的阶
p——求阶乘时的当前乘数
*/
#include
#define
Ma
10000
int
pa/*指向数组a的有效末端*/
int
p=2
int
memory_over=0
union
data
{
unsigned
long
int
b
struct
{unsigned
l:16
unsigned
h:16
}m
}a[Ma]
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
算法说明1:考虑到result比较长,我用a[Ma].b来存储n!的result,每一位a[pa].b能存储4位10进制数字。
因为我定义的数组是静态的,所以Ma应该足够大。
ps:其实只用定义一个unsigned
long
int
b[Ma]就可以了(直接用b[pa]代替a[pa].b),但是我考虑到可能会访问每一结点b[pa]的高16位(a[pa].m.h)和低16位(a[pa].m.l),但是的我考虑是多余的!!不用像我这样定义这么复杂的共用体!!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
unsigned
int
cashe
unsigned
int
carry
void
main()
{
unsigned
int
n/*求n的阶*/
void
facto(unsigned
int
n)
printf("Input
n:")
scanf("%u",&n)
/*=================开始求阶乘!=============*/
a[0].b=1/*初始化*/
facto(n)
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
算法说明2:上面这句直接调用facto(n)来求n!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*========================以下是显示最后结果====================================*/
if(memory_over==0)
{printf("the
result
include
%dNO:\n",pa+1)
printf("%u",a[pa--].m.l)
for(pa>=0pa--)
printf("%04u",a[pa].m.l)
printf("\n")
}
getch()
}
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
算法说明2:求阶函数facto(n)说明:
这个函数会不断地调用multiple(),它的作用是每被调用一次就使得a[pa].b与阶数p相乘一次,直到乘完n为止!
{multiple()
p++/*每一轮乘一个阶数p*/
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void
facto(unsigned
int
n)
{void
multiple()
pa=0
while(pa<Ma-1&&p<=n)/*容量限制*/
{multiple()
p++/*每一轮乘一个阶数p*/
}
if(p<=n)
{printf("memory
out!\n")memory_over=1}/*如果当前的存储结果的数组a[Ma]不够用!应提高Ma*/
}
/*==============================================================================
算法说明3:乘法函数multiple()说明:负责a[pa].b与阶数p相乘。
a[pa].b有很多结点,a[0].b、a[1].b、a[2].b、a[3].b、a[4].b、。。。
当然是从低结点a[0].b开始不断与p相乘,产生的“进位”加到高位a[1].b,直到a[pa].b*p为止!
随着结果数值增大,pa个结点的a[].b可能容纳不下结果,所以如果a[pa].b与p相乘后还有“进位”carry,就扩大pa,并把carry放入到新增加的结点:
if(carry>0)
a[++pa].b=carry
===================================================================================*/
void
multiple()
{int
i=0
carry=0
while(i<=pa)/*i指向当前处理的元素a[i],每一轮用一个位与阶数p相乘*/
{a[i].b=a[i].b*p+carry/*计算结果,要考虑来自低位的进位*/
carry=a[i].b/10000/*计算进位*/
a[i].b=a[i].b%10000/*计算余数*/
i++
}
if(carry>0)
a[++pa].b=carry
}