有关C语言数组的问题!给位大神都进来看一下哈!

作者&投稿:壤时 (若有异议请与网页底部的电邮联系)
用C语言求两个数的最小公倍数?!各位大神进来看一下下哈!~

说实话,我还真看不懂你写的到底是什么。
#include

void main()
{
int a,b,c;
int k,t;
printf("input two number:");
scanf("%d %d",&k,&t);
a = k;
b = t;
c = a%b;
while ( c>0 )
{
a = b;
b = c;
c = a%b;
}
a = k*t/b;
printf("最小公倍数为:%d
",a);
}

fputs("s",fp);
这句是说将“s”字符串写入fp,而非s数组,因为传数组首地址不是这么传的,这么穿成了传常量指针了;
应该是这样
fputs(s,fp);
同样的,后面的 fputs("a",fp); 也应改为:
fputs(a,fp);
&s[0]等价于s,而非“s”,后者为一个常量(虽然数组首地址是为常量指针,但是意思不同)

看这个样子,之所以会用到二维数组,是为了存放平年和闰年的每一个月的天数。a[2][13]也可以是a[2][12](a[2][13]两个数组的第一个都是存放0,a[2][12]两个数组存放的是第一个月份的天数)
用 flag=0,就是平年,flag=1,就是闰年。
判断是不是闰年,就是:flag=(year%4==0&&year%100!=0)||year%400==0;
至于是第几天,只要这个月之前的所有天数相加,然后再加上是多少号,就能得到了
了解?

#include <stdio.h>

int main()
{
int day, month, year, sum, leap;

printf("\nPlease input year, month, day\n");
scanf("%d %d %d",&year, &month, &day);

switch(month)
{
case 1:sum = 0 ; break;
case 2:sum = 31; break;
case 3:sum = 59; break;
case 4:sum = 90; break;

case 5:sum = 120; break;
case 6:sum = 151; break;
case 7:sum = 181; break;
case 8:sum = 212; break;

case 9:sum = 243; break;
case 10:sum = 273; break;
case 11:sum = 304; break;
case 12:sum = 334; break;
default:printf("data error"); break;
}
sum = sum +day;

if(year%400 == 0 || (year%4 == 0 && year%100 != 0))
leap = 1;
else
leap = 0;
if(leap == 1 && month > 2)
sum ++;
printf("It is the %dth day.\n" , sum);
}

我没用过二维数组,我是直接打印:Console.wrieLinr("时间"+date.Time.now+";"+date.Time.now.millisecond)
date是编译工具里的,后缀也是工具里的


关于C语言变量和数组的声明问题
首先声明变量了是有内存分配的。如果定义数组后可以得到连续的内存分配(有时候特别占用空间)。所以C语言出了链表(可以不连续的村一组数据)。下面是C语言内存分配特性,可以参考。1、C中内存分为四个区 栈:用来存放函数的形参和函数内的局部变量。由编译器分配空间,在函数执行完后由编译器自动释放。

有关C语言初始化数组的问题
经过上面的定义和初始化后,a[0]=0,a[1]=1,…,a[9]=9。(2)初始化时可以只对一部分元素赋初值。例如:static int a[10]={0,1,2,3,4};定义的数组有10个元素,但只对其中前5个元素赋了初值,后5个元素初值为0。(3)如果想使一个数组的元素值全部为0,可以用下面的...

关于C语言的问题。
两个题都比较基础 2.定义二维数组,第一个维数可以省略,编译器会根据你提供的初始化数据自动确定 初始化给出了9个数据,第二个维数是3,所以第一个维数是9\/3=3 所以这个定义相当于:int m[3][3]={1,4,7,2,5,8,3,6,9};k的值为2,for循环中i的值从0到2,所以printf语句输出的值为...

C语言中数组和指针的问题。
数组是数组,指针是指针。a是a,a[0]是a[0]。只不过在作为sizeof、&的操作数等有限几个左值上下文之外的场合数组a会退化(隐式转换,结果的类型是元素的指针类型,丢弃了数组类型中的长度)成指向首个元素的指针&a[0],所以容易造成误解。先考虑LZ最后的表述。注意C语言中对象可以理解为被占据的...

关于c语言多维数组问题
我很赞同你的理解,你学得挺扎实。你的3个问题都很好👍👍下面只是我个人的一些看法:1、关于二维数组的表示方式,c语言从没有见过a[0..m][0..n]这种表示方法,因为语言本身的原因,造成a[m][n]数组不含有a[m][n]这个元素,很奇特吧!所以明确的表达方式是:int a[m][n],...

关于C语言的二维数组作为函数参数的问题?
所谓二维数组,实际上是指向数组的指针,比如:int n=2,m=3;int arr[n][m];实际上相当于:int n=2,m=3;int (*arr)[m];所以,传递二维数组作为参数,实际上就是传递了一个指针。将形参的类型定义成int*,再在函数内部转换回指向数组的指针就行了,比如:void f(int *p,int row,int ...

C语言,数组输入遇到问题求大神指教:哪里错了,如何改正,为什么会出现...
scanf的格式加'\\n',含义特殊,不是输入一个回车,而是输入完一个数字后,必须等待一个非空格、制表符、回车的输入,程序才会继续。所以你那样写,第一次循环输入2回车,不会进入下一次循环,而是等待再次输入,然后你输入3的时候2被存储在元素1中,进入下一个循环,已经有3了还要等待输入,于是你输入...

c语言,关于sizeof(数组名)的问题
当数组名作为函数参数传递后,“退化”为指针,sizeof自然也就不能得到数组的长度,只是得到一个指针的长度而已。你的试验代码里,数组名并没有作为函数参数传递过,他还是一个数组名,所以sizeof还是能得到数组的长度。

C语言的一个关于数组的问题.为什么输出结果不一样???
array[j]!='\\0'是一个不确定条件,因为数组中没有这个值,所以j会一直加,直到遇到空,然而哪里有空,谁也不知道。

c语言数组的问题 比如定义了一个数组a[7];那么a[0],a[1]与它什么关系...
a[0]和a[1]是数组里面的元素比如说a[7]={1,2,3,4,5,6,7};a[0]就是1 a[1]就是2 但是要注意不能越界,比如a[7]是错误的,因为访问下标从0开始的,最大只能是a[6]

察雅县18765161769: 关于C语言数组的问题 -
张汤那素: a,在这里是一个局部变量,这里的 { 0 } 是为了将 数组 a 的所有元素初始化为0,如果不初始化数组a里的元素将是一个些随机的值 .

察雅县18765161769: C语言代码.数组问题 -
张汤那素: #include int main() { int a[100];// 所有学生成绩数组 int b[100];//不及格成绩数组 int n,i,j,t; int count=0; int lowscore=0;//不及格人数 while(scanf("%d",&n)&&n>0) { a[count] = n; count++; } int max=a[0],min=a[0]; for(i=0;i { if(max max = a[i]; // 获...

察雅县18765161769: C语言关于数组的问题 -
张汤那素: #include//载入标准输入输出库 main() //主函数,作为c程序的入口函数,从这里开始.{ char *s,c[80]; //创建一个字符型的指针,一个字符型的数组 s=c; //将指针指向这个数组的开头.(数组名等于指向数组开头的指针) gets(s); //从键...

察雅县18765161769: c语言关于数组方面的问题
张汤那素: (1)#include&lt;iostream&gt; using namespace std; int main(void) { int a[10],min,temp; cout&lt;&lt;"输入10个整数"&lt;&lt;endl; for(int i=0;i&lt;10;++i) cin&gt;&gt;a[i]; for(i=0;i&lt;10;++i) for(int j=1;j&lt;10;++j) if(a[j]&lt;a[i]){min=j;} temp=a[min];a[min]=a[...

察雅县18765161769: 一道C语言数组的题,求C高手帮忙 -
张汤那素: #include main() { int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; //定义了一个10个元素的数组,每个元素int类型,还定义了一个p指针. p=a; //p指针指向数组a printf (“%x\n”,p); //输出把p的地址以十六进制显示,printf (“%x\n”,p+9);//p+9表示移动9个int类型...

察雅县18765161769: C语言数组问题 -
张汤那素: 首先是为了效率,C语言设计出来就是为了编写原本由汇编语言编写的应用程序,因此非常注重效率,能够快速运行是至关重要的.假如执行数组的有效性检查,那么每次访问数组的元素都要检查数组是否越界,虽然一次两次对于效率的损失很少,但是当程序需要频繁的访问数组时,积少成多,带来的效率损失是很可观的.其次带来了灵活性,指针和数组大多数时候是通用的,如果检查这个的话指针的功能就大大减弱了.C++继承了C语言的效率和灵活性,所以C++也不检查数组越界.当然,抱有这种想法的人很多,C语言为什么不检查数组越界,为什么不能这样,为什么不能那样,于是有了java,C#.

察雅县18765161769: C语言的数组编程题,求大神解答? -
张汤那素: #include <stdio.h> #include <stdlib.h> #include <string.h>int main(void) {int *array;int n,i,j,z,s=0,q=0;int result[10]={0}; //存放众数printf("请输入数组元素数量\r\n");printf("n=");scanf("%d",&n);array=(int *)malloc(n*sizeof(int));...

察雅县18765161769: c语言有关数组的问题 -
张汤那素: 这个问题很简单的,这个程序的功能就是找出不想等的几个数,主要实现就在这几个for循环上,for (i=0 ;i< 10-n ;i++)//遍历整个数组 { c=a [i] ;//把第i个数组元素赋值给c f...

察雅县18765161769: C语言关于数组的基础知识 -
张汤那素: c[2]指的是 c[2]这个数组的首地址 一般定义了一个字符数组 str[100] 后,直接写 str 表示该数组的首地址.而访问一个字符数组,也可以通过首地址直接访问.

察雅县18765161769: c语言数组求助 -
张汤那素: 第一题:#include void main(){ int i,j; float a[4][5],b[4]={0,0,0,0}; for(i=0;ifor(j=0;j{ scanf("%f",&a[i][j]); b[i]+=a[i][j]; } for(i=0;iprintf("%f ",b[i]); }第二题:#include #include void main(){ int i,n,num=0; char str[80]; gets(str);n=strlen(str); for(i=0;iif((int)str[i]%10==3) num++; printf("%d",num); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网