C语言求教。一个小小的编程问题,在线等 一个小小的C语言程序?

作者&投稿:於融 (若有异议请与网页底部的电邮联系)
用X、Y、Z作为三重循环,大致如下:(循环变量还可以优化)

定义x,y,z,count为整形。

for(x=1;x<50;x++)

for(y=1;y<50;y++)

for(z=1;z<50;z++)
{
int m=x*10+y*5+z;
int n=x+y+z;
if(m==100 && n==50)
{
输出X,Y,Z
count++;
}
}
输出count。

#include<stdio.h>
main()
{
int x, y, z, count=0;
for (x=1;x<10;x++){
for (y=1;y<18;y++){
for (z=1;z<=85; z++){
if (10 * x + 5 * y + z == 100){
count++;
printf("x=%d, y=%d, z=%d
", x, y ,z);
}
}
}
}
printf("count=%d
",count);
}


#include <stdio.h>

void main()
{
int x,y,z,count=0;
for (x=1;x<10;x++)
for(y=1;y<20;y++)
for(z=1;z<100;z++)
if((10*x+5*y+z==100)&&(x+y+z==50))
{printf("x=%d,y=%d,z=%d\n",x,y,z);
count++;
printf("count=%d",count);
}
}

c语言小小小小小小小小小小小小问题~

int a[30]
对它的可以操作的数据是a[0]...a[29]
最简单的修改是
int a[31]

你出错的原因是,int a[30];
a的范围是a[0] 到 a[0]+30*4 -1 的内存地址。
共120字节。每个int 4字节。
a[30]的内存地址是 a[0]+30*4 到 a[0]+30*4+3 的地址。
应该是 b[]的第一个int.
因为没有对b赋初值,所以可能是任何值。结果也会变来变去。

C语言是限制很松的语言。甚至 a[-1]编译时都不会报错误。
一定要小心。

不是2倍。
你试试下面几个输入:
1. abc回车。 结果是4个字符
2. abcd回车。 结果是5个字符

原因是,getchar()会把回车符也读取进去,所以,输出结果会比预想的多1.

C语言求教。一个小小的编程问题,在线等
答:定义x,y,z,count为整形。 for(x=1;x<50;x++) for(y=1;y<50;y++) for(z=1;z<50;z++) { int m=x*10+y*5+z; int n=x+y+z; if(m==100 && n==50) { 输出X,Y,Z count++; } }输出count。 本回答由提问者推荐 举报| 答案纠错 | 评论 1 5 poor...

新手编程的小问题
答:C语言被设计成一个比它的前辈更精巧、更简单的版本,它适于编写系统级的程序,比如操作系统。在此之前,操作系统是使用汇编语言编写的,而且不可移植。C语言是第一个使得系统级代码移植成为可能的编程语言。 C语言支持结构化编程,也就是说C的程序被编写成一些分离的函数呼叫(调用)的集合,这些呼叫是自上而下运行,而不...

求教一道c语言编程题:输入三个整数,从大到小排序,并输出这三个数
答:include<stdio.h>i++) /2;void main(){ int i,j,a[3];} for(i=0;i>,*p[0],*p[1],*p[3]),*x;for(i=0;for(i=0;*p[j]){ x=p[i],*p[1];if(p[j]>p[j+1]) // } printf("%d"i<2;i++){ for(j=i+1;p[j+1]=x;void main(){ int i,j,a[3];%d,%d...

C语言求教,一个小小的程序
答:回答:第二个程序其实也没有太大问题,如果你的输入没错(输入时注意逗号),那么你把 int y=1;放到scanf语句前面试试... 有的编译环境必须严格遵守“必须在函数开头定义变量”,这时候中途就不可以定义变量的... 在我这里,第二个程序就完全可以运行。 祝你成功!

一个小小的C语言或者C++的编程,求帮忙
答:include <iostream>#include <ctime>#include <cstdlib>using namespace std;double getRand(double a, double b){return (b - a) * (double)rand() / RAND_MAX + a;}int main(int argc, char *argv[]){double a, b; int m = 0, n = 100000;srand(time(NULL));printf("a = ")...

C语言的小小问题,大家都进来看看
答:首先计算机运算全是通过2进制进行的,所以把16进制(0x 代表这个数是16进制的)转换成2进制,那么f 就是 1111 0xfff1 2进制表现就是 1111 1111 1111 0001 c语言基础教程书上都有这么一课,就是位运算,"|","&", 等等操作符。当表现一个对象有几种属性时候,它可以并列拥有几种属性,比如一件...

C语言编程求教!!!
答:1、把int改为float;2、三个%d改成连续的三个%f,不要留空格;3、这个错误在6行中都存在,把句首的“("”和句尾部的“")”全部去掉,只保留句末的分号(;)即可;4、把%d换成%.2f,一共有六个需要更改;5、把&f前面的&去掉,只留下f,也是有6个&需要去掉。程序应该能正常运行了。如果...

C语言编程题求教,给定一个整型数组A和整数N,求A中N个数相加的和的最大...
答:include<stdio.h>#include<stdlib.h>static int a[100], A, N;int f(int x){int i, flag, max=0;for(i=0; i<A; i++)if(a[i]>=max) {max=a[i]; flag = i;}a[flag] = -1;if(x==1) return max;return max+f(x-1);}int main(){int i=0;A=10; N=3;srand(...

C语言编程题求教---输入一个数让它逆序输出(详情见后)
答:把 for(j=1;j<=6;j++){ renum=renum*10+num%10;num=num/10;if(num==0)break;} 改为 while(num != 0){ renum=renum*10+num%10;num=num/10;} 简单来说,for循环适合于知道次数的循环,while适合不知道次数但知道结束条件的循环 ...

一道C语言编程问题
答:你对 *max 进行了初始化,*max = a[0];这是对的,但是*d你却没有对他进行初始化,那么解决的方案是在*max = a[0];这就话下面添加一句:*d = 0;这样应该就对了。小小的温馨提示,以后写代码的时候不要写main 而是写成 int main(){ /* add your code */ return 0;} ...