‘壹’ c语言:这个程序怎么才能正序输出和逆序输出
//这个是你创建链表的问题,注意你的头指针不能移动,你的这个有点像双向链表了。还是这样写比较好,如下,注意链表结束后要至null
linklist
createlist_l(linklist
l,int
n)
{
int
i;
linklist
p=null,p2=l;
for(i=n;i>0;i--)
{
p=(linklist)malloc
(sizeof(lnode));
scanf("%d",&p->data);
p2->next=p;
p2=p2->next;
}
p2->next=null;
return
l;
}
‘贰’ C语言编程:输入一个整数并能逐位正序或反位输出,用递归完成。
一、问题分析:
要把整数逐位输出,无论正序还是反序,都需要将各个位分离。
在C中的做法就是,通过对10取余,取出个位,然后通过除以10,起到“移位”的效果。
二、算法设计:
1、输入要处理的整数;
2、取出各位;
3、递归调用,以当前值除以10为参数;
4、当值为0时退出。
正序和反序输出,取决于递归调用和输出的位置关系。
三、参考代码:
正序:
#include<stdio.h>
voidfunc(intn)
{
intv;
if(n==0)return;//到0结束。
v=n%10;//取出个位。
func(n/10);//递归调用
printf("%d",v);//输出。
}
intmain()
{
intn;
scanf("%d",&n);//输入。
func(n);//调用函数,正序输出各个位。
return0;
}
反序:
#include<stdio.h>
voidfunc(intn)
{
intv;
if(n==0)return;//到0结束。
v=n%10;//取出个位。
printf("%d",v);//输出。
func(n/10);//递归调用
}
intmain()
{
intn;
scanf("%d",&n);//输入。
func(n);//调用函数,正序输出各个位。
return0;
}
‘叁’ c语言正序和倒序输出数
错误的地方太多了。
1:数组的下标是从0开始的
int number[10],
定义一个10元素的数组,则下标只能是从0-9,不会出现 number[10]=??这种情况,出现就越界了。
2:printf("you entered %d \n",number[i]);
你输入用了循环输入10个数,你输出一个数组,就想一次输出??也需要循环一个一个输出啊!!
3:逆序的问题
while (i<=10)
{
number[i]=number[11-i];
i=i+1;
}
先不管下标的问题对不对,你这样以后 :假设number就三个元素
1 2 3
则number[0] = number[2] = 3了。number[1]=number[1]=2 number[2]=number[0]=3 这样还对吗??你把number[0]的值给弄丢了。
‘肆’ C语言中,自定义一个含有5个元素的数组,使用指针输入元素的值,实现正序倒序输出每一个元素
#include<stdio.h>
#define N 5
void main() { int a[N],i,*p;
p=a; for ( i=0;i<N;i++,p++ ) scanf("%d",p);
p=a; for ( i=0;i<N;i++,p++ ) printf("%d ",*p); printf("\n");
p--; for ( i=0;i<N;i++,p-- ) printf("%d ",*p); printf("\n");
}
‘伍’ c语言正序输出每个数字
#include<stdio.h>
#include<math.h>
main()
{
printf("please input a number below 6 numbers:");
int n;
scanf("%d",&n);
int a=10,b=1;
while((n/a)>=1)
{
a=a*10;
b++;
}
if(b>5)printf("below 6 numbers!");
else printf("This is a %d numbers number\n",b);
// 加一个int m=n;
for(;n>0;)
{
printf("%d ",n%10);
n = n/ 10;
} // 这个for循环改成
for(;m>0;)
{
printf("%d ",m%10);
m = m/ 10;
}
printf("\n");
for(;n>0,b>0;)
{
printf("%d ",n/pow(10,b));
n=n-pow(10,b);
b--;
}
printf("\n");
}
先试试?
‘陆’ c语言如何输入一个正整数N,再输入N个整数,按从小到大的顺序输出
#include<stdio.h>
void main(){
int num[10000],i,j,temp,N,count=0;
//确定数组num的实际大小
printf("请输入一个大于0的整数:");
scanf("%d",&N);
//限制数字n的值在0到10000之间
while(N<=0||N>=10000){
printf("你输入的数字不在0到10000之间,请重新输入!\n\n");
printf("请输入一个大于0的整数:");
scanf("%d",&N);
}
//输入数组num中的所有数
for(i=0;i<N;){
printf("请输入第%d个数:",(i+1));
scanf("%d",&num[i]);
if(num[i]<0){ //使数组num中的元素值都大于等于0
printf("必须输入一个大于等于0的数!\n\n");
}else{
i++;
}
}
//使用冒泡排序来使得数组的元素值从小到大排序
for(i=0;i<N;i++){
for(j=0;j<N-i-1;j++){
if(num[j]>num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
//输出排序数组中所有元素的值,这里我使用每行10个来换行输出
printf("数组num从小到大的排序是:\n");
for(i=0;i<N;i++){
count++;
if(count!=0&&count%10!=0&&count!=N){
printf("%d,",num[i]);
}else {
printf("%d\n",num[i]);
}
}
}
‘柒’ C语言:用while循环正序输出一个整数。我是初学,请大神帮忙写下。
#include<stdio.h>
intmain()
{
inti=1;
while(i<=10)
{
printf("%d",i);
i++;
}
return0;
}
这里是输出地1-10
‘捌’ c语言 输入一行字符串,先正序输出,再倒序输出。
#include<stdio.h>
#include<string.h>
main()
{
chara[100];
inti;
gets(a);
puts(a);
for(i=strlen(a)-1;i>=0;i--)
printf("%c",a[i]);
}
您好,很高兴为您解答,流星不死为您答疑解惑
如果本题还有不懂的地方请追问,望采纳我的回答。
祝楼主学习进步。
上面的代码可以直接复制到编译器里,带换行。
‘玖’ c语言中如何实现输入一个整数实现倒序输出
1、新建一个工程和.c文件,输入头文件和主函数