1. 新手求助c语言的指针问题~~
一个指针是指向一个地址的,而*p就是他指向的那个地址也就是k的值
&k就是k这个值的地址。
*s=k这种情况下s最早是指向m的,你也就是给m赋值信脊型。所以m就变成了5而s还是指向了野运m
s=&k这种情况下s最早是指向m的,但是你后来又给s赋值k这个值的地滑猜址,所以m的值并没有变
而s此时是指向k的
求采纳
2. C语言新手求助
area=sqrt(s*(s-a)*s(s-b)*s(s-c));
应该是area=sqrt(s*(s-a)*s*(s-b)*s*(s-c));
C语言燃缺帆和皮雹扮祥数学上不一样,乘法不能省略*号
3. C语言新手求助!!!急!!!
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
10个人围成一圈,编号依次从1到10.从编号为1的人开始从1到3报数,凡报数是3的人退出圈子.编写程序输出依次出列的人的编号伏州.(用选择,循环语句以及数组知识编写)
解析:
新手当然要照顾了 所以一个代码一个代码的给你加注释。。
看明白了最好自己在做一边
这题有很多做法 给你一个最好理解的例子吧 但是这个代码的效率。。。。。
代码如下:
#include <stdio.h>/*头文件*/
#define M 10 /*宏定义 可直接改变圈的大小*/
#define N 3 /*可定义 从1数到 几 退出这个圈子*/
void main()/*主函数*/
{
int a[M];/*定义数组*/
int i;/*用做循环等*/
int x = 1; /*数到几*/
int y = 0;/*最近M次循环里有多少个人已经出去这个圈*/
int k = 1;/*while的开关变量*/
for(i=0; i<M; i++)/*给数组赋值*/
{
a[i] = i+1;
}
while(k)
{
for(i=0; i<M; i++)/*M个为一组按照下标过滤*/
{
if(a[i] == 0)/*判断这个a[i]位置上的人是否已经出圈*/
{
y++;/*如果出圈变量加一*/
continue;/*退出本次循环*/困袭
}
if(x == N)/*a[i]上的人没有出圈 而且正好数到N*/
{
printf("%d ",a[i]);/*显示这个人的编号*/
a[i] = 0;/*用0代替 代表已经出圈*/
x = 1;/*数 数重新从1 开始*/
}
else/*a[i]上的人没有出圈 但还没有数到N*/
{
x++;/*继续数下一个数*/
}
}
if(y == M)/*如果M个为一组全都已经出圈 代表圈里已经没有人了*/
{
k = 0;/*退出while循环程序结束*/
}
else/*圈里还有人*/
{
y = 0;/*把y置0待下次for循环时重新计数*/
}
}
printf("\n");/*可有可无*/
getch();/*可有可无*/
}
结果为
3 6 9 2 7 1 8 5 10 4
你可以更改程序中的M N的数字来缺尺蔽改变要求。
多做做题有好处 ,祝你快点进步。!
由于网络对对齐的处理非常差 所以你可以到这里看代码
bababian/photozoom.sl?pictureid=&size=6&viewID=DB4A5B6DABA0D***********D07C8135UR
如果看不清 请右键 另存后在看 。
网络 老岩 gabmyd@126
4. c语言新手求助谢谢了
1)第一高拆薯个scanf中多了个双引号
scanf("x=%d",&x");
改为御慎
scanf("x=%d",&x);
2)
scanf("x=%d",&x);这种格式你输入的时候戚者需要先输入x=然后才输入x的整数值
改为
printf("x=");
scanf("%d",&x);
5. 新手C语言求助一道题。
for(c=getchar();getchar()!=’#’;c=getchar())
输入12345#后,首先进入for循环要执行第一个c=getchar()给c赋初始值,即为第一个字符'1',c=‘1’,而后进行第二个表达式getchar()!='#'的判断,此时getchar()得到的字符是'2'满足条件但没给c赋值,c还是等于'1',后执行putchar(c),后执行下一次循环,先执行第三个表达式c=getchar(),给c赋值,盯坦此时c='3',然后再进行第二个表达式getchar()!='#'的判断,此时getchar()得到的是'4',满足循环执行条件执行putchar(c),后再执行第三个表达凯租桐式c=getchar(),此时c='5',再执行第二个表达式getchar()!='#',这时的getchar()已经为'#'号,所以不型正满足循环执行条件了,不再执行putchar(c),尽管此时c中的值是'5'也不会输出了
6. c语言的矩阵乘法问题 初学者求助
//矩阵乘法属于线性代数;矩阵乘法的原理不难,只要原理搞请,代码很好写的
#include<stdio.h>
/*功能为计算给定的矩阵a(m行n列)和矩阵b(n行t列)的乘积矩阵c*/
void f(int a[3][4], int b[4][3], int c[3][3], int m, int n, int t) {
//矩阵乘法:前行乘后列
//矩阵a的行(m)作为矩阵c的行
//矩阵b的列(t)作为矩阵c的列
for (int i = 0; i < m; i++) {//新矩阵m行
for (int j = 0; j < t; j++) {//新矩阵t列
int sum=0;
for (int k = 0; k < n; k++) {
sum += (a[i][k] * b[k][j]);//行列对应相乘,然后累加
}
c[i][j]=sum;
}
}
}
/* 请在这里填写答案 */
/*
1 2 3 4
2 3 4 5
3 4 5 6
1 2 3
2 3 4
3 4 5
4 5 6
*/
int main() {
int i, j, a[3][4], b[4][3], c[3][3];
for (i = 0; i < 3; i++)
for (j = 0; j < 4; j++)
scanf("%d", &a[i][j]);
for (i = 0; i < 4; i++)
for (j = 0; j < 3; j++)
scanf("%d", &b[i][j]);
f(a, b, c, 3, 4, 3);
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++)
printf("%5d", c[i][j]);
printf(" ");
}
}