include <stdio.h>前少了#
谢谢指出,已改正:)
1、
#include<stdio.h>
int main(void)
{
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++)
printf("%d\t",i*j);
printf("\n");
}
return 0;
}
2、#include<stdio.h>
int diamond(int n,char c)
{
int i,j,v,t;
t=n/2;
for(i=1;i<=t;i++){
for(j=1;j<=t+1-i;j++)
printf(" ");
for(v=1;v<=2*i-1;v++)
printf("%c",c);
printf("\n");
}
for(i=t+1;i>=1;i--){
for(j=0;j<=t-i;j++)
printf(" ");
for(v=1;v<=2*i-1;v++)
printf("%c",c);
printf("\n");
}
return 0;
}
int is_even(int n)
{
if (n%2==0)
return 1;
else
return 0;
}
int main(void)
{
int num;
char ch;
printf("Please input a num and a char:\n");
scanf("%d %c",&num,&ch);
if(is_even(num)||num<=0){
printf("The num is error!Please input again\n");
scanf("%d %c",&num,&ch);
}
diamond(num,ch);
return 0;
}
#include <stdio.h>
void diamond(int n, char c)
{
int A = n/2;
int x, y;
for (x=0; x<n; x++)
{
for (y=0; y<n; y++)
{
if (y >= A-x && y >= x-A && y <= 3*A-x && y <= x+A )
printf("%c", c);
else
printf(" ");
}
printf("\n");
}
}
int main(int argc, char *argv[])
{
int n;
char c;
if ( 3 != argc )
{
printf("usage: diamond odd_number char\n");
return 1;
}
sscanf(argv[1], "%u", &n);
if ( n <= 0 || n%2 != 1 )
{
printf("the number must be odd and great than zero\n");
return 2;
}
c = *(argv[2]+0);
diamond(n, c);
return 0;
}
小九九
#include <stdio.h>
int main(void)
{
int i, j;
for (i=1; i<=9; i++) {
for (j=1; j<=i; j++)
printf("%d\t", i*j);
printf("\n");
}
return 0;
}#include <stdio.h>
int diamond(int n, char c)
{
int b = n/2; /* the number of blank */
int x, y;
if(n%2 == 0)
{
printf("Are you mad, man? Mr. Song teaches us the only leagl number is odd\n");
return 1;
}
for (x=0; x<n; x++)
{
for (y=0; y<n; y++)
{
if (y >= b && y < n-b)
printf("%c", c);
else
printf(" ");
}
(x>=n/2) ? b++ : b--; /* blanks decrement in the upper graph, increment in the lower graph */
printf("\n");
}
return 0;
}
int main(int argc, char *argv[])
{
diamond(14, '&');
return 0;
}
jackdaw高人,看不懂! ~~~~~~
第二题:打印菱形
#include <stdio.h>
void print_diamond(int c){
int line_pos, num; // 每一行的打印位置和个数
int i;
int mid = c / 2;
for(i = 0; i < c; i++){
if(i <= mid){
line_pos = mid - i;
num = i * 2 + 1;
}else{
line_pos = i - mid;
num = c - (i - mid) * 2;
}
int j;
for(j = 0; j < line_pos; j++) printf("%c\t", ' ');
for(j = 0; j < num; j++) printf("%c\t", '*');
printf("\n");
}
}
int main(void)
{
int c;
scanf("%d", &c);
print_diamond(c);
return 0;
}看来我的解法是最麻烦的咯!
#include <stdio.h>
#include <math.h>
int abs(int);
void diamond(int i, char c)
{
int outputChar[2] = {' ', c};
int flag = -1; /*start position flag*/
int falsePointer = 0; /*define char print pointer*/
int totalFalse = -1;
for(int a = 0; a < i; a++)
{
if( i%2 == 0 && a == i-1)
/*printf("wrong args");
return;*/
break;
flag = ( ((i-1)/2 > a)?(1):(-1) ) * ((i-1)/2 - a); /*define the start position*/
totalFalse = i - abs((((i + 1)/2)*2)-2*(a+1));
falsePointer = -flag;
for(int b = 0; b < i; b++)
{
printf("%c ",outputChar[(totalFalse+falsePointer++)/totalFalse == 1]);
}
printf("\n");
}
printf("\n");
return;
}
int main(void)
{
diamond(7,'*');
printf("Hi vivienne!\n\n");
return 0;
}#include <stdio.h>
void diamond (int x,char y)
{
int a=x/2;
int b,c;
for (;a>=0;a--){
for (b=a;b>=1;b--)
printf (" ");
for (c=x-a*2;c>=1;c--)
printf ("%c",y);
printf ("\n");
}
x=x-2,a=0;
for (;a<=x/2;a++){
for (b=a;b>=0;b--)
printf (" ");
for (c=x-a*2;c>=1;c--)
printf ("%c",y);
printf ("\n");
}
}
int main (void)
{
int f=29;
char g='*';
if (f%2==0)
printf ("illegal input,please check it again!\n");
else
diamond (f,g);
return 0;
}
老师您看还可以压缩优化一下么?void print_diamond(int input)
{
if(if_even(input))
{
printf("Input Error");
}
else
{
int i,j,begin, end;
begin=end=(input+1)/2-1;
for(i=0; i<input; i++)
{
for(j=0; j<input; j++)
{
if (j<begin || j>end)
printf("\t");
else
printf("*\t");
}
printf("\n");
if(i<((input+1)/2-1))
{
begin=begin-1;
end=end+1;
}
else
{
begin=begin+1;
end=end-1;
}
}
}
}
int if_even(int input)
{
if (input%2==0)
{
return 1;
}
else
{
return 0;
}
}2. :
void diamond(int n, char character)
{
int i, j;
int num_line = 1;
for (i = 1; i <= n; i++) {
for (j = 1; j <= (n - num_line) / 2; j++)
printf("\t");
for (j = 1; j <= num_line; j++)
printf("%c\t", character);
if (i <= n / 2)
num_line = num_line + 2;
else
num_line = num_line - 2;
printf("\n");
}
}#include <stdio.h>
void diamond(int n,char ch);
int main(int argc,char **argv)
{
int n;
char ch;
printf("请输入一个整数,且是奇数:");
scanf("%d %c",&n,&ch);
diamond(n,ch);
return 0;
}
void diamond(int n,char ch)
{
int i,j,k;
int mid = n / 2;
for(i=0; i<= mid; i++){
for(k = (n/2)-i;k >=0;k--)
{
printf("\t");
}
for(j =0; j < (2*i+1); j++){
printf("%c\t",ch);
}
printf("\n");
}
int x,y,z;
for(x=mid; x>0; x--){
for(z=0;z<mid-x+2;z++){
printf("\t");
}
for(y=0;y<2*x-1;y++){
printf("%c\t",ch);
}
printf("\n");
}
}
小九九
#include <stdio.h>
int main(void)
{
int i,j;
for (i=1;i<=9;i++)
{
for (j=1;j<=9;j++)
{
printf("%d\t",i*j);
if (i==j)
break;
}
printf("\n");
}
return 0;
}
看到楼上各位朋友写的和我自己写的,真是自愧不如呀。
写复杂了。
[code]
#include <stdio.h>
int frame99(void);
int main(void)
{
if(frame99())
return 1;
return 0;
}
int frame99(void)
{
int i,j;
for( i = 1 ; i <=9 ; i++ )
{
for( j = 1 ; j <= 9 ; j++ )
{
if( i - j < 0 )
{
printf("\t");
}
else
{
printf("%d \t", i * j);
}
}
printf("\n");
}
return 0;
}
[/code]足足想了两个晚上,想不出来不罢休阿。。
有参考过别人的代码。但完全没有一条语句是抄袭的。
一直在纠结倒序和正序的分解,后来看到别人的一篇文章就完全开窍了。。
草稿的话我足足写了5页纸。
写出各个数列的关系,然后再仔细思量一番才有今天的结果阿。。
[code]
#include <stdio.h>
int frame99(void);
int diamond(int i , char c);
int Get_Char(int i, char n);
int main(void)
{
int i;
scanf( "%d" , &i );
if( frame99() )
{
printf( "\n" );
}
if( diamond( i , '*' ) );
return 0;
}
int frame99(void)
{
int i,j;
for( i = 1 ; i <=9 ; i++ )
{
for( j = 1 ; j <= 9 ; j++ )
{
if( i - j < 0 )
{
printf("\t");
}
else
{
printf("%d \t", i * j);
}
}
printf("\n");
}
return 1;
}
int diamond(int i , char c)
{
int m , s ;
if( i % 2 != 0 )
{
for( m = 0 ; m <= i ; m ++ )
{
if( m % 2 != 0 )
{
Get_Char( m , c );
printf( "\n" );
}
else
{
Get_Char( ( i - m ) / 2 + 1 , ' ' );
}
}
for( s = i - 1 ; s >= 0 ; s -- )
{
if( s % 2 != 0 )
{
Get_Char( s , c );
printf( "\n" );
}
else
{
Get_Char( ( i - s ) / 2 + 2 , ' ' );
}
}
}
else
{
printf( "请输入奇数" );
}
return 1;
}
int Get_Char(int i, char n )
{
for( ; i >= 1 ; i -- )
{
printf("%c ", n );
}
return 1;
}
[/code]如果我之用一个变量,会不会不够标准?
int diamond(int i , char c)
{
int m ;
if( i % 2 != 0 )
{
for( m = 0 ; m <= i ; m ++ )
{
if( m % 2 != 0 )
{
Get_Char( m , c );
printf( "\n" );
}
else
{
Get_Char( ( i - m ) / 2 + 1 , ' ' );
}
}
for( m = i - 1 ; m >= 0 ; m -- )
{
if( m % 2 != 0 )
{
Get_Char( m , c );
printf( "\n" );
}
else
{
Get_Char( ( i - m ) / 2 + 2 , ' ' );
}
}
}
else
{
printf( "请输入奇数" );
}
return 1;
}
int Get_Char(int i, char n )
{
for( ; i >= 1 ; i -- )
{
printf("%c ", n );
}
return 1;
}#include <stdio.h>
int diamond(int input, char sharp)
{
int i;
int ix;
int iy;
int itmp;
i = 0;
ix = 0;
iy = 0;
itmp = 0;
if ( 0 == input || 0 == (input % 2 ) )
{
printf("Your input number is error!\n");
}
else
{
for ( i = 1; i <= input; i++ )
{
iy = ( i > ( input + 1 ) / 2 ) ? ( ( input - i ) * 2 + 1 ):( i * 2 - 1);
ix = (input - iy)/2;
for ( itmp = 0; itmp < ix + iy; itmp++ )
{
if ( itmp < ix)
{
printf(" ");
}
else
{
printf("%c", sharp);
}
}
printf("\n");
}
}
return 0;
}
int main(void)
{
int input_num;
char input_sharp;
printf("Please input a number and a sharp:");
scanf("%d,%c", &input_num, &input_sharp);
diamond(input_num, input_sharp);
return 0;
}#include<stdio.h>
#include<math.h>
void diamond(int);
int main()
{
int n;
printf("Please enter a odd number n=");
scanf("%d",&n);
if(n%2==0)
printf("Error input!");
diamond(n);
return 0;
}
void diamond(int n)
{
int i,j,k;
for(i=0;i<n;i++)
{
for(j=0;j<abs(n/2-i);j++)
printf("\t");
for(k=0;k<n-2*abs(n/2-i);k++)
printf("*\t");
printf("\n");
}
}http://blog.chinaunix.net/u4/124133/showart_2441558.html
#include <stdio.h>
#include <math.h>
void diamond(int n, char s)
{
if (!(n % 2)){
printf("%d is not an odd number!\n", n);
return;
}
int i, j;
int mid = (n + 1) / 2;
for (i = 1; i <= n; i ++){
for(j = 1; j<=n; j++) {
if (abs(mid - i) + abs(mid - j) < mid)
printf("%c", s);
printf("\t");
}
printf("\n");
}
}/*
* =====================================================================================
* Filename: diamond-1.c
* Description: 编写函数diamond打印一个菱形
* 问题摘自 http://learn.akae.cn/media/ch06s05.html
* =====================================================================================
*/
#include <stdio.h>
#include <stdlib.h>
void diamond(int n, char x)
{
if (n % 2 == 0) {
printf("wrong number\n");
return;
}
int i, j;
for (i = (-n / 2); i < (n / 2 + 1); ++i) {
for (j = 0; j < n; ++j) {
if (j < 2 * abs(i)) {
if (j % 2 == 0)
printf(" ");
else
printf("\t");
} else
printf("%c\t", x);
}
printf("\n");
}
}
int main(void)
{
diamond(5, '&');
return 0;
}
//习题二答案:
#include<stdio.h>
int is_even(int n){
return !n%2;
}
void rhombug(int n,char c){
if(is_even(n)){
return;
}
int middle = (n+1)/2;
int i;
int printNum;
int printIndex;
for(i=1; i<=n; ++i){
int j;
int num = 0;
if(i <= middle){
printIndex = middle + 1 - i;
printNum = 2 * i -1;
}else{
printIndex += 1;
printNum -= 2;
}
for(j=1;j<=n;j++){
if(j<printIndex){
printf("\t");
}else{
if(num++ < printNum){
printf("\t%c",c);
}else{
break;
}
}
}
printf("\n");
}
}
int main(void){
rhombug(9,'*');
return 0;
}
#include <stdio.h>
int main()
{
int i, j;
for(i = 1; i <= 9; i++)
{
for(j = 1; j <= i; j++)
{
printf("%d\t", i*j);
}
printf("\n");
}
return 0;
}#include <stdio.h>
int diamond(int n,char c)
{
int i,j,v,t;
t=n/2;
for(i=1;i<=t;i++){ /*打印上半部分*/
for(j=1;j<=t+1-i;j++)
printf(" ");
for(v=1;v<=2*i-1;v++)
printf("%c",c);
printf("\n");
}
for(i=t+1;i>=1;i--){ /*打印下半部分*/
for(j=0;j<=t-i;j++)
printf(" ");
for(v=1;v<=2*i-1;v++)
printf("%c",c);
printf("\n");
}
return 0;
}
int is_even(int n)/*判断是否为偶数*/
{
if(n%2==0)
return 1;
else
return 0;
}
int main(void)
{
int n;char c;
printf("Please input an number and a char:\n");
scanf("%d,%c",&n,&c);
if(is_even(n)||n<=0){
printf("ERROR!Positive odd please!Input again:\n");
scanf("%d,%c",&n,&c);
}
diamond(n,c);
return 0;
}
int main(void)
{
int i = 0, j = 0;
for(i = 1; i <= 9; ++i)
{
for(j = 1; j <= i; ++j)
{
if(1 == j) {
printf("(%d)", j * i);
}
printf("%d\t", i * j);
}
printf("\n");
}
return 0;
}#include <stdio.h>
#include <math.h>
int main(void)
{
void diamond(int n, char c);
int n;
char c;
scanf("%d %c", &n, &c);
if (n % 2 ==0)
printf ("please 奇数\n");
else
diamond(n, c);
return 0;
}
void diamond(int n, char c)
{
int i, j, k;
for (i = 1; i <= n; ++i) {
for (k = 1; k <= abs(i - (n + 1)/2); ++k) {
printf("\t");
}
for (j = 1; j <= n - 2 * abs(i - (n + 1)/2); ++j) {
printf("%c\t", c);
}
printf("\n");
}
}
#include <stdio.h>
#include <math.h>
int diamond(int odd, char symbol);
int main(void)
{
diamond(1, '#');
diamond(3, '*');
diamond(5, '+');
diamond(4, '&');
return 0;
}
int diamond(int odd, char symbol)
{
int i, j;
if(!(odd % 2))
{
printf("The first parameter must be odd number and be greater than zero, such as 3, 5, 7 ,9 ...");
return 1;
}
for(i = odd / -2; i <= odd / 2; i++)
{
for(j = odd / -2; j <= odd / 2; j++)
{
if(abs(i) + abs(j) <= odd / 2) printf("%c\t", symbol);
else printf("\t");
}
printf("\n");
}
return 0;
}#include <stdio.h>
#include <math.h>
int diamond(int odd, char symbol);
int main(void)
{
diamond(1, '#');
diamond(3, '*');
diamond(5, '+');
diamond(4, '&');
return 0;
}
int diamond(int odd, char symbol)
{
int i, j;
if(!(odd % 2) || odd <= 0)
{
printf("The first parameter must be odd number and be greater than zero, such as 3, 5, 7 ,9 ...");
return 1;
}
for(i = odd / -2; i <= odd / 2; i++)
{
for(j = odd / -2; j <= odd / 2; j++)
{
if(abs(i) + abs(j) <= odd / 2) printf("%c\t", symbol);
else printf("\t");
}
printf("\n");
}
return 0;
}
补充对ODD的判断小99程序,第二个正在研究当中,楼上的各种算法是否过于复杂了,没有看的欲望啊
#include<stdio.h>
void main(){
int i,j;
for(i=1;i<=9;i++)
for(j=1;j<=i;j++)
{
printf("%d ",i*j);
printf("\n");
}
}
这样应该就可以完成小99的输出了第二个程序刚研究出来,供参考
#include<stdio.h>
int diamod(int n,char c){
int x,y,b;
b=n/x;
for(x=0;x<n;x++){
for(y=o;y<n;y++){
if(y>=b&&y<n-b)
printf("%c",c);
else
printf("");
}
if(x>=n/2)
b--;
else
b++;
}
}
int is_odd(int n){
if(n%2==0)
return 1;
else
ruturn 0;
}
int main(void){
int n;
char c;
pintf("input a number and a char:");
scanf("%d %c",&n &c);
if((is_odd(n))||(n<=0))
{printf("ARE YOU CARZY?");
return 0;}
diamod(n,c);
return 0;
}/*
06.5.1
打印的小九九
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
*/
#include <stdio.h>
int main(void)
{
int i ;
int j ;
for(i = 1; i <= 9; i++)
{
for(j = 1; j <= 9; j++)
{
printf("%d\t", i*j) ;
}
printf("\n") ;
}
int x ;
int y ;
for(x = 1; x <= 9; x++)
{
for(y = 1; y <= x; y++)
{
printf("%d\t", x*y) ;
}
printf("\n") ;
}
return 0 ;
}
/*
06.5.2
编写函数diamond打印一个菱形。如果调用diamond(3, '*')则打印:
*
* * *
*
如果调用diamond(5, '+')则打印:
+
+ + +
+ + + + +
+ + +
+
如果用偶数做参数则打印错误提示。
*/
#include <stdio.h>
int diamond(int x, char y)
{
int i ;
int j ;
int k = 0 ;
int temp = 0 ;
for(i = 1; i <= x; i++)
{
for(j = 1; j <= x; j++)
{
if( (j >= (x / 2 + 1) - k ) && ( j <= (x / 2 + 1) + k) )
{
printf("%c\t", y) ;
}
else
{
printf("\t") ;
}
}
printf("\n") ;
if(k <= x / 2 && temp == 0)
{
k++ ;
}
else
{
k-- ;
}
if(k == x / 2)
{
temp = 1 ;
}
}
return 0 ;
}
int main(void)
{
int x ;
char y ;
printf("Please input how many colums/rows it is.\n") ;
printf("Number=") ;
scanf("%d", &x) ;
getchar() ;
if(x%2==0)
{
printf("It should be a odd number.\n") ;
return 1 ;
}
printf("Please input what symbol it is.\n") ;
printf("Symbol=") ;
scanf("%c", &y) ;
printf("y=%c", y) ;
diamond(x, y) ;
return 0 ;
}
偶数报错就不写了
#include<stdio.h>
int nchar(int n,char a)
{
int i;
for (i=0;i<n;i++)
{
printf("%c",a);
}
return 0;
}
int n2char(int n,char a1,char a2)
{
int i;
for (i=0;i<n;i++)
{
printf("%c%c",a1,a2);
}
return 0;
}
int diamond(int n,char a)
{
int i,j;
for(i=1;i<=(n+1)/2;i++)
{
nchar(((n-1)/2-i+1),'\t');
n2char((2*(i-1)+1),a,'\t');
printf("\n");
}
for (j=(n-1)/2;j>0;j--)
{
nchar(((n-1)/2-j+1),'\t');
n2char((2*(j-1)+1),a,'\t');
printf("\n");
}
return 0;
}
int main(void)
{
diamond(5,'+');
return 0;
}#include <stdio.h>
#include <stdlib.h>
int main(){
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
printf("%d ",i*j);
}
printf("\t \n");
}
system("pause");
}如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!