c语言初学者请教一下各位 请问一下 哪错了

2024-04-27

1. c语言初学者请教一下各位 请问一下 哪错了

你的是错的 
例如 a = 8  b = 8-a = 0
但是题目有要求 : a的最小“合发数”也必须是正整数,即其值至少是1;

因此 a = 8  b = 80 才行

c语言初学者请教一下各位 请问一下 哪错了

2. 请问这段C语言哪里错了?

看得出你想求输入的最大的值。
不过有一些错误:

首先在scanf之前要声明变量,即:
int a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;
k和i也要用int来声明,声明为整形变量。

其次你想循环执行,可以,不过ai和ak是变量,不能按自己所想来认为k能直接带进去变成a1,a2...,如果想循环,那么就要设置一个数组a[10],这样a[k]就可以表示k=1到10所表示的你输入的内容,例如:int k=2;,则a[k]=a[2]=你这个程序里面的想要输入的a3(数组的变量声明是从下标1开始,使用变量是从0开始,所以a[0]是你所想输入的a1,以此类推)。

然后就是把其它相关内容修改一下。循环格式也差一点点。

附代码:

#include 
int main()
{
int a[10];//声明时,输入几个就填几个:输入10个,就写a[10].
int k=1,i=0,max;
while(i<=9)
{
scanf("%d",&a[i]);//使用的时候都要从a[0]开始用,一直到a[9]。
i++;
}
max=a[0];//先假定第一个数是最大的,然后挨个比较
while(k<=9)
{
if(a[k]>=max)//每次都和之前的最大的数进行比较,
max=a[k];//大的话就赋值,
k++;//不大的话就直接跳过执行k++。
}
printf("%d",max);
return 0;
}

3. C语言的几个问题,请高手指教

分类:  电脑/网络 >> 程序设计 >> 其他编程语言 
   问题描述: 
  
 1.在C语言中,char型数据在内存中的存储形式是_____.
 
 A)补码 B)反码 C)原码 D)ASCII码
 
 答案是D,但是在某些资料中说到“数据在内存中是以补码形式存放的”,这使我有些迷惑不解,请各位不吝指教。
 
 2.表达式18/2*sqrt(4.0)/8的数据类型为_____
 
  
 
 A)int B)float C)double D)不确定
 
 答案是C,我不清楚,为什么不能是B选项。
 
 3.已知 int K=7,x=12
 
  求:
 
  1. x%=(k%=5)
 
 2. x%=k-k%5
 
 3. x%=(k-k%5)
 
 4. (x%=k)-(k%5=5)
 
 4.设变量n为float型,m为int型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是____
 
 A) n=(n*100+0.5)/100.0
 
 B) m=n*100+0.5,n=m/100.0
 
 C) n=n*100+0.5/100.0
 
 D) n=(n/100+0.5)*100.0
 
 答案是B,请问A,C,D错在哪里
 
 谢谢各位前辈指教,后辈谢谢了。
 
   解析: 
  
 1 概念模糊。补码,反码,原码; 在汇编书上称为机器数的“码制”,大部分机器使用补码制。ASCII码其实是一种字符代码,通用的。一台计算机的码制是不能改变的,他是计算机的硬件属性。ASCII码是软件属性,在ASCII码中,32H代表的是空格键,你也可以设计一种接口程序,让32H代表别的字符。C语言中,Char的存储类型是:“占用一个字节的类型”(就叫字节型吧),机器数的码制是补码,存储的数值所代表的字符符合ASCII规则。
 
 2 sqrt()函数的存储类型是double型。(可查看数学函数表)
 
 3 这个没营养哦,(1)x=0 k=2 (2)x=0 k=7 (3) x=2 k=7 (4) Error!
 
 4 建议你复习数据类型一章吧,
 
 A 的效果仅仅是数值加大了0.5/100,
 
 B 的正确,输出n仍然有六位小数点,但是,充千分位开始,后面的都是零。
 
 C 明显错误,数值n很明显的加大了100多倍。
 
 D 数值加大了0.5*100
 
 功夫呀......

C语言的几个问题,请高手指教

4. c语言,想问一下哪里出错了?

这是因为在C语言中,两个整数的商仍是一个整数,所以,任何“真分数”的除法,在C语言中所得到的商都是0。所以,在你的程序中,循环体中,除了第一项,1/1=1外,1/2=0,1/6=0,1/24=0,……,所以最后的结果就是1.000000
下面已经给出了最小修改的方案,1.0/……,这样系统在做除法时,会把分母也转换为浮点数,然后做除法,就能得到正确答案了。最好的方法是,把int fact(int n)改为double fact(int n)
并把int m=1;改为double m=1;float t,u;改为double t,u;

5. C语言,这个错哪里了?

1、switch括号里是表达式或整数或字符(字符在内存中也是整形数ASCII码)。
2、case后面要跟整形常量,包括字符和枚举常量。
如非要用switch,可改成如下代码:

#include 
#include 
int main()
{
    int x;
    printf("请输入分数:");
    scanf("%d",&x);
    switch(x/10)// switch(表达式):表达式那里也可以写整形或字符,但不能是浮点数
    {
        case 9:printf("A\n");break;//case后面是整型常量(int,char,enum常量)
        case 8:printf("B\n");break;
        case 7:printf("C\n");break;
        case 6:printf("D\n");break;
        case 5:printf("E\n");break;
        default:printf("请输入正确的分数:");
    }
    system("pause");
    return 0;
}
//ps:条件判断可用if,话说X>=60和x<=60区间重复了。
//另外你在default中提示再次输入,但程序后面直接结束了,想连续执行,至少外围再套个循环。

C语言,这个错哪里了?

6. 请教一下C语言问题。。。。急急急。。。

第一题
GB2312编码为16位,ASCII吗为8位
CB F5; D0 B4 ; CA C7; D6 B8;这是4个汉字,都是16位
50; 43 这是两个英文,各8为
汉字都是以字母开头的4个16进制的,英文都是2个16进制的,以数字开头
http://www.knowsky.com/resource/gb2312tbl.htm 这个是gb2312的中文表
第二题
K=M*M+1
因为前面#define  M  N+1这里不是(N+1)
就是不改变代入
所以K=M*M+1=N+1*N+1+1=2+1*2+1+1=6

7. 求助一个c语言问题?

二进制11111111代表-127,是按原码规则来算。若按补码规则,二进制11111111算出来是-1。
文中说的是10000000代表-128。
详细描述如下:

[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
计算机将第1位作为符号位,0表示正数,1表示负数。
原码:原码很好理解,第1位是符号位,其余位表示数值。
反码:
(1)正数:正数反码是其本身。
(2)负数:去掉原码符号位,其余位按位取反。
补码:
(1)正数:正数补码是其本身。
(2)负数:在反码基础上加1。
由上述定义可知:
[+0] = [00000000]原 = [00000000]反 = [00000000]补
[-0] = [10000000]原 = [11111111]反 = [00000000]补
既然+0和-0的补码一致,所以只需保留一个(+0和-0原码不同,注意看符号位)。
这样一来,“[-0] = [10000000]原”相当于没有使用,于是规定:“[10000000]”为-128。
既然是“规定”,就不能按原码、反码、补码的规则计算了。设计计算机时就在硬件中设置为:10000000代表-128。
之所以引入补码,是为了消除减法,用加负数来替代减法运算,这样让CPU设计更简单。

求助一个c语言问题?

8. 请教C语言的问题

你这个程序有好几处问题啊,下面一点一点说的吧:

1:printf
("f(%d,%d)=%ld\n",sum_power(n,k));这一句中引号里面有三个输出位置,而括号内只有一个变量

              
可以将其改成printf
("f(%d,%d)=%ld\n",n,k,sum_power(n,k));

2:printf
("f(%d,%d)=%ld\n",sum_power(n,k));还是这一句,你调用了sum_power(n,k)这个函数,而在这之前你并没有定义或申明这个函数,解决办法有两种:(1)把sum_power(n,k)的函数定义放在主函数前面(2)在调用函数之前申明一下,你可以在int
k,
n;后面加一句int
sum_power(int,int);,这两种方法哪种都可以。

3:
int
sum_power(n,k)定义函数时如果带有参量,要说明参量类型即:
int
sum_power(int
n,int
k)

4:getch();这一句没看出也有多大用,可能是用来使界面停留在程序运行界面上吧,不过这个函数我不知道对不对,我在书上只见到getchar()这个函数

5:if(n==1) 
sum_power(1,k)=1;这句中有一个赋值语句,等号左边不能是函数,只能是变量,可以改成:

 int
sum_power(n,k)
 {long
int
s;

if(n==1) 
s=1;
 else
s=pow(n,k)+sum_power(n-1,k);
 return
s;}
综合上面的几点,下面给你一个完整的程序:

#include
#include
void
main()
{
int
k,
n;

long
int
sum_power(int,int);

printf("Please
input
n
and
k\n");
scanf
("%d%d",&n,&k);
printf
("f(%d,%d)=%ld\n",n,k,sum_power(n,k));
getchar();}
long 
int
sum_power(int
n,int
k)
 {long
int
s;

if(n==1) s=1;
 else
s=pow(n,k)+sum_power(n-1,k);
 return
s;}
最新文章
热门文章
推荐阅读