从键盘输入一个大于1小于10的整数,然后在屏幕上打印出方阵,例如输入5,输出的结果如下: 1 1 1 1 1 1 2

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-03
急求答案,谁会做这些C语言的题啊?

建议 买本计算机二级上机辅导书,上面都有例题。看看就会了。

/*你的程序写的没有错误,就是
b=a[0];
c=a[n-1];
应该写在赋值之后,就是写在我之前帮你修改的之后 &
帮你在原来的基础上改好了
*/
#include
int main(void)
{
int index1,index2,b,c,i,n,a[10];
//添加了
printf("请输入一个1到10的正整数:");
scanf("%d",&n);
index1=0;
index2=n-1;
for(i=0; i<n; i++){

printf("赋值a[%d]:",i);
scanf("%d",&a[i]);
}
//这两个语句应该写在赋值之后
b=a[0];
c=a[n-1];
//---------打印交换之前数组
for(i=0; i<n; i++)
printf("%d ",a[i]);
printf("
");
//---------------------
for(i=1; i<n; i++)
if(a[i]<b)
{
b=a[i];
index1=i;
}
a[index1]=a[0];
a[0]=b;
for(i=0; i<n-1; i++)
if(a[i]>c)
{
c=a[i];
index2=i;
}
a[index2]=a[n-1];
a[n-1]=c;
for(i=0; i<n; i++)
printf("%d ",a[i]);
printf("
");
return 0;
}

printf("%d ",(r<(num-r+1)?r:(num-r+1))<(c<(num-c+1)?c:(num-c+1))?
(r<(num-r+1)?r:(num-r+1)):(c<(num-c+1)?c:(num-c+1)));
按照顺序来说吧,
r<(num-r+1)?r:(num-r+1) //每一行的中间那个数,以num的一半为分界点
c<(num-c+1)?c:(num-c+1)//每一列中间那个数
对于大的?:则是输出较小的那个值。
比如num =5
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
看第三行
r<(num-r+1)?r:(num-r+1) ,r的值=3
对内部的for(c=1;c<=num;c++)
如果c=1,那么c<(num-c+1)?c:(num-c+1),c的值为1,比r的值小,因此取c的值1.
如果c的值比r的值大,则取r的值。
如第二行第三列的2
下面依次类推

  • 从键盘输入一个大于1小于10的整数,然后在屏幕上打印出方阵,例如输入5...
    答:printf("%d ",(r<(num-r+1)?r:(num-r+1))<(c<(num-c+1)?c:(num-c+1))?(r<(num-r+1)?r:(num-r+1)):(c<(num-c+1)?c:(num-c+1)));按照顺序来说吧,r<(num-r+1)?r:(num-r+1) //每一行的中间那个数,以num的一半为分界点 c<(num-c+1)?c:(num-c+1)...
  • ...||-编写程序,从键盘输入一个小于 10 的正整数n,求 1+12+123+12...
    答:请输入一个小于10的正整数n: 31+12+123的和为:136 表示1+12+123 的结果为 136。
  • /*设计程序,实现从键盘任意输入一个小于十的正整数x,在屏幕上显示x的阶...
    答:{ int x,y;printf("请输入一个小于10的正整数:");y=1;scanf("%d",&x);while(x!= 0){ y = y * x ;x = x - 1 ;} printf("\nx的阶乘为");printf("%d",y);return 0;} 首选用%d,不是%f,其次是while语句不要用分号!!!友情提示:编程中最好不要出现中文!
  • c语言如何实现从键盘输入一个整数,求其大于、小于、等于或等于最大值...
    答:C语言从键盘输入任意的10个整数,从中找出最大值和最小值的具体步骤如下:1、首先输入 include<stdio.h> int main(){ int arr[10] = {0};int i = 0;int max = 0;int min = 0;printf("请输入10个整数:");2、然后输入 for (i = 0; i < sizeof(arr)/ sizeof(arr[0]); i+...
  • 输入一个正整数 n (1<n<=10),再输入 n 个整数,将它们从大到小排序后输 ...
    答:include <iostream> using namespace std;int A[10];int cmp(const void * a , const void * b){ return *(int*) a - *(int*)b;} int main(){ int n;cin >> n;for (int i = 0; i < n; i++)cin >> A[i];// qsort(A , n , sizeof(int) , cmp);for (int ...
  • 求一个c语言程序,n由键盘输入(n为不大于10的整数)。 S=(n… (…+(6...
    答:void main(){ int n,i,s;s=1;printf("please input n:");scanf("%d",&n);for(i=2;i<=n;i++){ if(i%2==0)s=s*i;else s=s+i;} printf("the result is: %d\n",s);} 这种数组题要学着找规律,然后用循环很简单的,建议把教材上的程序都敲敲,自己再多思考,不难的 ...
  • 输入一个正整数n(1 <n≤10),再输入n 个整数,将最小值与第一个数交换...
    答:{ int a[10];int n,i,min,max,t;printf("Input n: ");scanf("%d",&n);printf("Input %d integers: ",n);for(i=0;i<n;i++)scanf("%d",&a[i]);min=max=0;printf("After swapped: ");for(i=1;i<n;i++){if(a[i]>a[max])max=i;if(a[i]<a[min])min=i;} t...
  • 从键盘输入一个1~99之间的整数,要求输出该数字的发音(用拼音表示)如...
    答:{ char sound[10][5]={"yi","er","san","si","wu","liu","qi","ba","jiu","shi"};int x,y;printf("请输入数值(1-99):");scanf("%d",&x);if(x<1||x>99)printf("ERROR!超出范围。\n");else if(x<10)printf("%s\n",sound[x-1]);else if(x==10)printf("%s\...
  • 求从键盘上输入任何一个整数,判断该数是否在数组a[10]={1,2,3,4,5...
    答:{ int shu,i,b,flag=0;int a[10]={1,2,3,4,5,6,7,8,9,10};printf("请输入任意一个整数\nshu=");scanf("%d",&shu);for(i=0;i<10;i++){ b=a[i];if(shu==b){ flag=1;printf("该数的下标是a[%d]",i);} } if(flag!=1&&shu!=a[9]){ printf("不存在该数")...
  • 编写一个程序,要求从键盘输入10个整数,然后采用冒泡排序法,按降序排序...
    答:当需要编写一个程序,从键盘接收10个整数并采用冒泡排序法进行降序排列时,可以参考以下步骤。首先,创建一个长度为10的数组a[],用户依次输入这10个整数。排序过程从数组的第一个元素开始,通过两两比较,如果前一个数小于后一个数,就将它们交换位置。由于是降序排列,所以每次比较都是将较小的数向后...